Chromium Code Reviews| Index: third_party/WebKit/Source/core/workers/WorkerThreadTest.cpp |
| diff --git a/third_party/WebKit/Source/core/workers/WorkerThreadTest.cpp b/third_party/WebKit/Source/core/workers/WorkerThreadTest.cpp |
| index 03322ed79abe776de72eb3681954f70dd6d74a2a..105f93d07fd5725ae576ba6363697b9b6419d56b 100644 |
| --- a/third_party/WebKit/Source/core/workers/WorkerThreadTest.cpp |
| +++ b/third_party/WebKit/Source/core/workers/WorkerThreadTest.cpp |
| @@ -33,14 +33,19 @@ void waitForSignalTask(WorkerThread* workerThread, WaitableEvent* waitableEvent) |
| } // namespace |
| -class WorkerThreadTest : public ::testing::Test { |
| +class WorkerThreadTest : public ::testing::TestWithParam<ThreadHeapMode> { |
| public: |
| + WorkerThreadTest() |
| + { |
| + m_threadHeapMode = GetParam(); |
| + } |
| + |
| void SetUp() override |
| { |
| m_loaderProxyProvider = wrapUnique(new MockWorkerLoaderProxyProvider()); |
| m_reportingProxy = wrapUnique(new MockWorkerReportingProxy()); |
| m_securityOrigin = SecurityOrigin::create(KURL(ParsedURLString, "http://fake.url/")); |
| - m_workerThread = wrapUnique(new WorkerThreadForTest(m_loaderProxyProvider.get(), *m_reportingProxy)); |
| + m_workerThread = wrapUnique(new WorkerThreadForTest(m_loaderProxyProvider.get(), *m_reportingProxy, m_threadHeapMode)); |
| m_lifecycleObserver = new MockWorkerThreadLifecycleObserver(m_workerThread->getWorkerThreadLifecycleContext()); |
| } |
| @@ -115,9 +120,18 @@ protected: |
| std::unique_ptr<MockWorkerReportingProxy> m_reportingProxy; |
| std::unique_ptr<WorkerThreadForTest> m_workerThread; |
| Persistent<MockWorkerThreadLifecycleObserver> m_lifecycleObserver; |
| + ThreadHeapMode m_threadHeapMode; |
|
nhiroki
2016/09/21 05:32:59
const
keishi
2016/09/21 09:16:11
Done.
|
| }; |
| -TEST_F(WorkerThreadTest, ShouldScheduleToTerminateExecution) |
| +INSTANTIATE_TEST_CASE_P(MainThreadHeap, |
| + WorkerThreadTest, |
| + ::testing::Values(MainThreadHeapMode)); |
| + |
| +INSTANTIATE_TEST_CASE_P(PerThreadHeap, |
| + WorkerThreadTest, |
| + ::testing::Values(PerThreadHeapMode)); |
| + |
| +TEST_P(WorkerThreadTest, ShouldScheduleToTerminateExecution) |
| { |
| using ThreadState = WorkerThread::ThreadState; |
| MutexLocker dummyLock(m_workerThread->m_threadStateMutex); |
| @@ -139,7 +153,7 @@ TEST_F(WorkerThreadTest, ShouldScheduleToTerminateExecution) |
| m_workerThread->setExitCode(dummyLock, ExitCode::GracefullyTerminated); |
| } |
| -TEST_F(WorkerThreadTest, AsyncTerminate_OnIdle) |
| +TEST_P(WorkerThreadTest, AsyncTerminate_OnIdle) |
| { |
| expectReportingCalls(); |
| start(); |
| @@ -156,7 +170,7 @@ TEST_F(WorkerThreadTest, AsyncTerminate_OnIdle) |
| EXPECT_EQ(ExitCode::GracefullyTerminated, getExitCode()); |
| } |
| -TEST_F(WorkerThreadTest, SyncTerminate_OnIdle) |
| +TEST_P(WorkerThreadTest, SyncTerminate_OnIdle) |
| { |
| expectReportingCalls(); |
| start(); |
| @@ -169,7 +183,7 @@ TEST_F(WorkerThreadTest, SyncTerminate_OnIdle) |
| EXPECT_EQ(ExitCode::SyncForciblyTerminated, getExitCode()); |
| } |
| -TEST_F(WorkerThreadTest, AsyncTerminate_ImmediatelyAfterStart) |
| +TEST_P(WorkerThreadTest, AsyncTerminate_ImmediatelyAfterStart) |
| { |
| expectReportingCallsForWorkerPossiblyTerminatedBeforeInitialization(); |
| start(); |
| @@ -185,7 +199,7 @@ TEST_F(WorkerThreadTest, AsyncTerminate_ImmediatelyAfterStart) |
| EXPECT_EQ(ExitCode::GracefullyTerminated, exitCode); |
| } |
| -TEST_F(WorkerThreadTest, SyncTerminate_ImmediatelyAfterStart) |
| +TEST_P(WorkerThreadTest, SyncTerminate_ImmediatelyAfterStart) |
| { |
| expectReportingCallsForWorkerPossiblyTerminatedBeforeInitialization(); |
| start(); |
| @@ -201,7 +215,7 @@ TEST_F(WorkerThreadTest, SyncTerminate_ImmediatelyAfterStart) |
| EXPECT_TRUE(ExitCode::GracefullyTerminated == exitCode || ExitCode::SyncForciblyTerminated == exitCode); |
| } |
| -TEST_F(WorkerThreadTest, AsyncTerminate_WhileTaskIsRunning) |
| +TEST_P(WorkerThreadTest, AsyncTerminate_WhileTaskIsRunning) |
| { |
| const long long kForceTerminationDelayInMs = 10; |
| setForceTerminationDelayInMs(kForceTerminationDelayInMs); |
| @@ -226,7 +240,7 @@ TEST_F(WorkerThreadTest, AsyncTerminate_WhileTaskIsRunning) |
| EXPECT_EQ(ExitCode::AsyncForciblyTerminated, getExitCode()); |
| } |
| -TEST_F(WorkerThreadTest, SyncTerminate_WhileTaskIsRunning) |
| +TEST_P(WorkerThreadTest, SyncTerminate_WhileTaskIsRunning) |
| { |
| expectReportingCallsForWorkerForciblyTerminated(); |
| startWithSourceCodeNotToFinish(); |
| @@ -237,7 +251,7 @@ TEST_F(WorkerThreadTest, SyncTerminate_WhileTaskIsRunning) |
| EXPECT_EQ(ExitCode::SyncForciblyTerminated, getExitCode()); |
| } |
| -TEST_F(WorkerThreadTest, AsyncTerminateAndThenSyncTerminate_WhileTaskIsRunning) |
| +TEST_P(WorkerThreadTest, AsyncTerminateAndThenSyncTerminate_WhileTaskIsRunning) |
| { |
| const long long kForceTerminationDelayInMs = 10; |
| setForceTerminationDelayInMs(kForceTerminationDelayInMs); |
| @@ -257,7 +271,7 @@ TEST_F(WorkerThreadTest, AsyncTerminateAndThenSyncTerminate_WhileTaskIsRunning) |
| EXPECT_EQ(ExitCode::SyncForciblyTerminated, getExitCode()); |
| } |
| -TEST_F(WorkerThreadTest, Terminate_WhileDebuggerTaskIsRunningOnInitialization) |
| +TEST_P(WorkerThreadTest, Terminate_WhileDebuggerTaskIsRunningOnInitialization) |
| { |
| EXPECT_CALL(*m_reportingProxy, didLoadWorkerScriptMock(_, _)).Times(1); |
| EXPECT_CALL(*m_reportingProxy, didCreateWorkerGlobalScope(_)).Times(1); |
| @@ -320,7 +334,7 @@ TEST_F(WorkerThreadTest, Terminate_WhileDebuggerTaskIsRunningOnInitialization) |
| EXPECT_EQ(ExitCode::GracefullyTerminated, getExitCode()); |
| } |
| -TEST_F(WorkerThreadTest, Terminate_WhileDebuggerTaskIsRunning) |
| +TEST_P(WorkerThreadTest, Terminate_WhileDebuggerTaskIsRunning) |
| { |
| expectReportingCalls(); |
| start(); |