Index: test/cctest/test-mark-compact.cc |
diff --git a/test/cctest/test-mark-compact.cc b/test/cctest/test-mark-compact.cc |
index a01c5dfae3aa40bce96ac62b0eb02b620479a0fc..626df16617128ca371283b4657d97e2fe4a407d3 100644 |
--- a/test/cctest/test-mark-compact.cc |
+++ b/test/cctest/test-mark-compact.cc |
@@ -310,6 +310,7 @@ static void WeakPointerCallback(v8::Isolate* isolate, |
handle->Dispose(isolate); |
} |
+ |
TEST(ObjectGroups) { |
FLAG_incremental_marking = false; |
CcTest::InitializeVM(); |
@@ -560,10 +561,31 @@ TEST(BootUpMemoryUse) { |
if (v8::internal::Snapshot::IsEnabled()) { |
CHECK_LE(delta, 3100 * 1024); |
} else { |
- CHECK_LE(delta, 3400 * 1024); |
+ CHECK_LE(delta, 3450 * 1024); |
} |
} |
} |
} |
+ |
+intptr_t ShortLivingIsolate() { |
+ v8::Isolate* isolate = v8::Isolate::New(); |
+ { v8::Isolate::Scope isolate_scope(isolate); |
+ v8::Locker lock(isolate); |
+ v8::HandleScope handle_scope; |
+ v8::Local<v8::Context> context = v8::Context::New(isolate); |
+ CHECK(!context.IsEmpty()); |
+ } |
+ isolate->Dispose(); |
+ return MemoryInUse(); |
+} |
+ |
+ |
+TEST(RegressJoinThreadsOnIsolateDeinit) { |
+ intptr_t size_limit = ShortLivingIsolate() * 2; |
+ for (int i = 0; i < 10; i++) { |
+ CHECK_GT(size_limit, ShortLivingIsolate()); |
+ } |
+} |
+ |
#endif // __linux__ and !USE_SIMULATOR |