Index: third_party/WebKit/Source/core/workers/DedicatedWorkerTest.cpp |
diff --git a/third_party/WebKit/Source/core/workers/DedicatedWorkerTest.cpp b/third_party/WebKit/Source/core/workers/DedicatedWorkerTest.cpp |
index 1a83feb69c5b63d275eeeff7d7bf7d78a176134b..2999b0624806a29ce65ca0a22dc6b6f9cb49ae9e 100644 |
--- a/third_party/WebKit/Source/core/workers/DedicatedWorkerTest.cpp |
+++ b/third_party/WebKit/Source/core/workers/DedicatedWorkerTest.cpp |
@@ -22,10 +22,11 @@ class DedicatedWorkerThreadForTest final : public DedicatedWorkerThread { |
public: |
DedicatedWorkerThreadForTest( |
WorkerLoaderProxyProvider* workerLoaderProxyProvider, |
- InProcessWorkerObjectProxy& workerObjectProxy) |
+ InProcessWorkerObjectProxy& workerObjectProxy, |
+ BlinkGC::ThreadHeapMode threadHeapMode) |
: DedicatedWorkerThread(WorkerLoaderProxy::create(workerLoaderProxyProvider), workerObjectProxy, monotonicallyIncreasingTime()) |
{ |
- m_workerBackingThread = WorkerBackingThread::createForTest("Test thread"); |
+ m_workerBackingThread = WorkerBackingThread::createForTest("Test thread", threadHeapMode); |
} |
WorkerOrWorkletGlobalScope* createWorkerGlobalScope(std::unique_ptr<WorkerThreadStartupData> startupData) override |
@@ -36,14 +37,14 @@ public: |
class InProcessWorkerMessagingProxyForTest : public InProcessWorkerMessagingProxy { |
public: |
- InProcessWorkerMessagingProxyForTest(ExecutionContext* executionContext) |
+ InProcessWorkerMessagingProxyForTest(ExecutionContext* executionContext, BlinkGC::ThreadHeapMode threadHeapMode) |
: InProcessWorkerMessagingProxy(executionContext, nullptr /* workerObject */ , nullptr /* workerClients */) |
{ |
workerObjectProxy().m_nextIntervalInSec = 0.1; |
workerObjectProxy().m_maxIntervalInSec = 0.2; |
m_mockWorkerLoaderProxyProvider = wrapUnique(new MockWorkerLoaderProxyProvider()); |
- m_workerThread = wrapUnique(new DedicatedWorkerThreadForTest(m_mockWorkerLoaderProxyProvider.get(), workerObjectProxy())); |
+ m_workerThread = wrapUnique(new DedicatedWorkerThreadForTest(m_mockWorkerLoaderProxyProvider.get(), workerObjectProxy(), threadHeapMode)); |
workerThreadCreated(); |
m_mockWorkerThreadLifecycleObserver = new MockWorkerThreadLifecycleObserver(m_workerThread->getWorkerThreadLifecycleContext()); |
@@ -124,12 +125,17 @@ private: |
using WaitUntilMode = InProcessWorkerMessagingProxyForTest::WaitUntilMode; |
-class DedicatedWorkerTest : public ::testing::Test { |
+class DedicatedWorkerTest : public ::testing::TestWithParam<BlinkGC::ThreadHeapMode> { |
public: |
+ DedicatedWorkerTest() |
+ : m_threadHeapMode(GetParam()) |
+ { |
+ } |
+ |
void SetUp() override |
{ |
m_page = DummyPageHolder::create(); |
- m_workerMessagingProxy = wrapUnique(new InProcessWorkerMessagingProxyForTest(&m_page->document())); |
+ m_workerMessagingProxy = wrapUnique(new InProcessWorkerMessagingProxyForTest(&m_page->document(), m_threadHeapMode)); |
m_securityOrigin = SecurityOrigin::create(KURL(ParsedURLString, "http://fake.url/")); |
} |
@@ -179,9 +185,18 @@ private: |
RefPtr<SecurityOrigin> m_securityOrigin; |
std::unique_ptr<DummyPageHolder> m_page; |
std::unique_ptr<InProcessWorkerMessagingProxyForTest> m_workerMessagingProxy; |
+ const BlinkGC::ThreadHeapMode m_threadHeapMode; |
}; |
-TEST_F(DedicatedWorkerTest, PendingActivity_NoActivity) |
+INSTANTIATE_TEST_CASE_P(MainThreadHeap, |
+ DedicatedWorkerTest, |
+ ::testing::Values(BlinkGC::MainThreadHeapMode)); |
+ |
+INSTANTIATE_TEST_CASE_P(PerThreadHeap, |
+ DedicatedWorkerTest, |
+ ::testing::Values(BlinkGC::PerThreadHeapMode)); |
+ |
+TEST_P(DedicatedWorkerTest, PendingActivity_NoActivity) |
{ |
const String sourceCode = "// Do nothing"; |
startWithSourceCode(sourceCode); |
@@ -194,7 +209,7 @@ TEST_F(DedicatedWorkerTest, PendingActivity_NoActivity) |
EXPECT_FALSE(workerMessagingProxy()->hasPendingActivity()); |
} |
-TEST_F(DedicatedWorkerTest, PendingActivity_SetTimeout) |
+TEST_P(DedicatedWorkerTest, PendingActivity_SetTimeout) |
{ |
// Start an oneshot timer on initial script evaluation. |
const String sourceCode = "setTimeout(function() {}, 50);"; |
@@ -209,7 +224,7 @@ TEST_F(DedicatedWorkerTest, PendingActivity_SetTimeout) |
EXPECT_FALSE(workerMessagingProxy()->hasPendingActivity()); |
} |
-TEST_F(DedicatedWorkerTest, PendingActivity_SetInterval) |
+TEST_P(DedicatedWorkerTest, PendingActivity_SetInterval) |
{ |
// Start a repeated timer on initial script evaluation, and stop it when a |
// message is received. |
@@ -234,7 +249,7 @@ TEST_F(DedicatedWorkerTest, PendingActivity_SetInterval) |
EXPECT_FALSE(workerMessagingProxy()->workerGlobalScopeMayHavePendingActivity()); |
} |
-TEST_F(DedicatedWorkerTest, PendingActivity_SetTimeoutOnMessageEvent) |
+TEST_P(DedicatedWorkerTest, PendingActivity_SetTimeoutOnMessageEvent) |
{ |
// Start an oneshot timer on a message event. |
const String sourceCode = |
@@ -262,7 +277,7 @@ TEST_F(DedicatedWorkerTest, PendingActivity_SetTimeoutOnMessageEvent) |
EXPECT_FALSE(workerMessagingProxy()->workerGlobalScopeMayHavePendingActivity()); |
} |
-TEST_F(DedicatedWorkerTest, PendingActivity_SetIntervalOnMessageEvent) |
+TEST_P(DedicatedWorkerTest, PendingActivity_SetIntervalOnMessageEvent) |
{ |
// Start a repeated timer on a message event, and stop it when another |
// message is received. |