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

Unified Diff: third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp

Issue 2266443002: Optimize posting of WTF::Closure and improve scheduler test mocks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cut back to just the WTF::Closure fix plus the scheduler test mock refactor. Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp
diff --git a/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp b/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp
index e22914e9a181d0035045c1175ea535c398d16dc0..52dc94c6829f64bd91e2c43daf913b0013a0c89b 100644
--- a/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp
+++ b/third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurfaceTest.cpp
@@ -231,134 +231,11 @@ private:
std::unique_ptr<ImageBuffer> m_imageBuffer;
};
-namespace {
-
-// The following test helper class installs a mock platform that provides a mock WebThread
-// for the current thread. The Mock thread is capable of queuing a single non-delayed task
-// and registering a single task observer. The run loop exits immediately after running
-// the single task.
-
-class CurrentThreadPlatformMock : public TestingPlatformSupport {
-public:
- CurrentThreadPlatformMock() { }
- WebThread* currentThread() override { return &m_currentThread; }
-
- void enterRunLoop() { m_currentThread.enterRunLoop(); }
-private:
- class MockWebTaskRunner : public WebTaskRunner {
- public:
- MockWebTaskRunner() : m_task(0) { }
- ~MockWebTaskRunner() override { }
-
- void postTask(const WebTraceLocation&, Task* task) override
- {
- EXPECT_EQ((Task*)0, m_task);
- m_task = task;
- }
-
- void postDelayedTask(const WebTraceLocation&, Task*, double delayMs) override { NOTREACHED(); };
-
- bool runsTasksOnCurrentThread() override
- {
- NOTREACHED();
- return true;
- }
-
- std::unique_ptr<WebTaskRunner> clone() override
- {
- NOTREACHED();
- return nullptr;
- }
-
- double virtualTimeSeconds() const override
- {
- NOTREACHED();
- return 0.0;
- }
-
- double monotonicallyIncreasingVirtualTimeSeconds() const override
- {
- NOTREACHED();
- return 0.0;
- }
-
- base::SingleThreadTaskRunner* taskRunner() override
- {
- NOTREACHED();
- return nullptr;
- }
-
- Task* m_task;
- };
-
- class CurrentThreadMock : public WebThread {
- public:
- CurrentThreadMock() : m_taskObserver(0) { }
-
- ~CurrentThreadMock() override
- {
- EXPECT_EQ((WebTaskRunner::Task*)0, m_taskRunner.m_task);
- }
-
- WebTaskRunner* getWebTaskRunner() override
- {
- return &m_taskRunner;
- }
-
- bool isCurrentThread() const override { return true; }
-
- PlatformThreadId threadId() const override
- {
- NOTREACHED();
- return 0;
- }
-
- void addTaskObserver(TaskObserver* taskObserver) override
- {
- EXPECT_EQ(nullptr, m_taskObserver);
- m_taskObserver = taskObserver;
- }
-
- void removeTaskObserver(TaskObserver* taskObserver) override
- {
- EXPECT_EQ(m_taskObserver, taskObserver);
- m_taskObserver = 0;
- }
-
- WebScheduler* scheduler() const override
- {
- NOTREACHED();
- return nullptr;
- }
-
- void enterRunLoop()
- {
- if (m_taskObserver)
- m_taskObserver->willProcessTask();
- if (m_taskRunner.m_task) {
- m_taskRunner.m_task->run();
- delete m_taskRunner.m_task;
- m_taskRunner.m_task = 0;
- }
- if (m_taskObserver)
- m_taskObserver->didProcessTask();
- }
-
- private:
- MockWebTaskRunner m_taskRunner;
- TaskObserver* m_taskObserver;
- };
-
- CurrentThreadMock m_currentThread;
-};
-
-} // anonymous namespace
-
#define CALL_TEST_TASK_WRAPPER(TEST_METHOD) \
{ \
- CurrentThreadPlatformMock ctpm; \
+ TestingPlatformSupportWithMockScheduler testingPlatform; \
Platform::current()->currentThread()->getWebTaskRunner()->postTask(BLINK_FROM_HERE, WTF::bind(&RecordingImageBufferSurfaceTest::TEST_METHOD, WTF::unretained(this))); \
- ctpm.enterRunLoop(); \
+ testingPlatform.runUntilIdle(); \
}
TEST_F(RecordingImageBufferSurfaceTest, testEmptyPicture)

Powered by Google App Engine
This is Rietveld 408576698