Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(529)

Side by Side Diff: Source/WebKit/chromium/tests/ImageFrameGeneratorTest.cpp

Issue 15861022: Build WTF as dll in component build (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix AutoDrainedPool ctor and ThreadSpecificThreadExit exports Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 13 matching lines...) Expand all
24 */ 24 */
25 25
26 #include "config.h" 26 #include "config.h"
27 27
28 #include "core/platform/graphics/chromium/ImageFrameGenerator.h" 28 #include "core/platform/graphics/chromium/ImageFrameGenerator.h"
29 29
30 #include <gtest/gtest.h> 30 #include <gtest/gtest.h>
31 #include "MockImageDecoder.h" 31 #include "MockImageDecoder.h"
32 #include "core/platform/SharedBuffer.h" 32 #include "core/platform/SharedBuffer.h"
33 #include "core/platform/graphics/chromium/ImageDecodingStore.h" 33 #include "core/platform/graphics/chromium/ImageDecodingStore.h"
34 #include <wtf/Threading.h>
35 34
36 using namespace WebCore; 35 using namespace WebCore;
37 36
38 namespace { 37 namespace {
39 38
40 class ImageFrameGeneratorTest; 39 class ImageFrameGeneratorTest;
41 40
42 // Helper methods to generate standard sizes. 41 // Helper methods to generate standard sizes.
43 SkISize fullSize() { return SkISize::Make(100, 100); } 42 SkISize fullSize() { return SkISize::Make(100, 100); }
44 SkISize scaledSize() { return SkISize::Make(50, 50); } 43 SkISize scaledSize() { return SkISize::Make(50, 50); }
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 310
312 static void decodeThreadMain(void* arg) 311 static void decodeThreadMain(void* arg)
313 { 312 {
314 ImageFrameGenerator* generator = reinterpret_cast<ImageFrameGenerator*>(arg) ; 313 ImageFrameGenerator* generator = reinterpret_cast<ImageFrameGenerator*>(arg) ;
315 const ScaledImageFragment* tempImage = generator->decodeAndScale(fullSize()) ; 314 const ScaledImageFragment* tempImage = generator->decodeAndScale(fullSize()) ;
316 ImageDecodingStore::instance()->unlockCache(generator, tempImage); 315 ImageDecodingStore::instance()->unlockCache(generator, tempImage);
317 } 316 }
318 317
319 TEST_F(ImageFrameGeneratorTest, incompleteDecodeBecomesCompleteMultiThreaded) 318 TEST_F(ImageFrameGeneratorTest, incompleteDecodeBecomesCompleteMultiThreaded)
320 { 319 {
321 WTF::initializeThreading();
322 setFrameStatus(ImageFrame::FramePartial); 320 setFrameStatus(ImageFrame::FramePartial);
323 321
324 const ScaledImageFragment* tempImage = m_generator->decodeAndScale(fullSize( )); 322 const ScaledImageFragment* tempImage = m_generator->decodeAndScale(fullSize( ));
325 EXPECT_FALSE(tempImage->isComplete()); 323 EXPECT_FALSE(tempImage->isComplete());
326 EXPECT_EQ(1, m_frameBufferRequestCount); 324 EXPECT_EQ(1, m_frameBufferRequestCount);
327 EXPECT_EQ(0, m_decodersDestroyed); 325 EXPECT_EQ(0, m_decodersDestroyed);
328 ImageDecodingStore::instance()->unlockCache(m_generator.get(), tempImage); 326 ImageDecodingStore::instance()->unlockCache(m_generator.get(), tempImage);
329 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries()); 327 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries());
330 328
331 // Frame can now be decoded completely. 329 // Frame can now be decoded completely.
332 setFrameStatus(ImageFrame::FrameComplete); 330 setFrameStatus(ImageFrame::FrameComplete);
333 addNewData(); 331 addNewData();
334 ThreadIdentifier threadID = createThread(&decodeThreadMain, m_generator.get( ), "DecodeThread"); 332 ThreadIdentifier threadID = createThread(&decodeThreadMain, m_generator.get( ), "DecodeThread");
335 waitForThreadCompletion(threadID); 333 waitForThreadCompletion(threadID);
336 334
337 EXPECT_EQ(2, m_frameBufferRequestCount); 335 EXPECT_EQ(2, m_frameBufferRequestCount);
338 EXPECT_EQ(1, m_decodersDestroyed); 336 EXPECT_EQ(1, m_decodersDestroyed);
339 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries()); 337 EXPECT_EQ(1u, ImageDecodingStore::instance()->cacheEntries());
340 338
341 tempImage = m_generator->decodeAndScale(fullSize()); 339 tempImage = m_generator->decodeAndScale(fullSize());
342 EXPECT_TRUE(tempImage->isComplete()); 340 EXPECT_TRUE(tempImage->isComplete());
343 EXPECT_EQ(2, m_frameBufferRequestCount); 341 EXPECT_EQ(2, m_frameBufferRequestCount);
344 ImageDecodingStore::instance()->unlockCache(m_generator.get(), tempImage); 342 ImageDecodingStore::instance()->unlockCache(m_generator.get(), tempImage);
345 } 343 }
346 344
347 } // namespace 345 } // namespace
OLDNEW
« no previous file with comments | « Source/WebKit/chromium/tests/DeferredImageDecoderTest.cpp ('k') | Source/bindings/v8/ScriptController.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698