| Index: test/cctest/test-api.cc
|
| diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
| index 1433b7bed6b86a6a1a664818e34bb47c786618de..234e8cee598197473e6f7abbbea73675a0b77111 100644
|
| --- a/test/cctest/test-api.cc
|
| +++ b/test/cctest/test-api.cc
|
| @@ -36,6 +36,7 @@
|
| #include <unistd.h> // NOLINT
|
| #endif
|
|
|
| +#include "include/libplatform/libplatform.h"
|
| #include "include/v8-util.h"
|
| #include "src/api.h"
|
| #include "src/arguments.h"
|
| @@ -88,6 +89,11 @@ using ::v8::Value;
|
| } \
|
| THREADED_TEST(Name)
|
|
|
| +#define ENSURE_TASKS_HAVE_BEEN_RUN(isolate) \
|
| + while (v8::platform::PumpMessageLoop(v8::internal::V8::GetCurrentPlatform(), \
|
| + (isolate))) \
|
| + ;
|
| +
|
|
|
| void RunWithProfiler(void (*test)()) {
|
| LocalContext env;
|
| @@ -3275,6 +3281,7 @@ TEST(TwoPassPhantomCallbacks) {
|
| }
|
| CHECK_EQ(static_cast<int>(kLength), instance_counter);
|
| CcTest::heap()->CollectAllGarbage();
|
| + ENSURE_TASKS_HAVE_BEEN_RUN(isolate);
|
| CHECK_EQ(0, instance_counter);
|
| }
|
|
|
| @@ -3293,6 +3300,7 @@ TEST(TwoPassPhantomCallbacksNestedGc) {
|
| array[15]->MarkTriggerGc();
|
| CHECK_EQ(static_cast<int>(kLength), instance_counter);
|
| CcTest::heap()->CollectAllGarbage();
|
| + ENSURE_TASKS_HAVE_BEEN_RUN(isolate);
|
| CHECK_EQ(0, instance_counter);
|
| }
|
|
|
| @@ -6806,6 +6814,7 @@ THREADED_TEST(GCFromWeakCallbacks) {
|
| v8::WeakCallbackType::kParameter);
|
| object.handle.MarkIndependent();
|
| invoke_gc[outer_gc]();
|
| + ENSURE_TASKS_HAVE_BEEN_RUN(isolate);
|
| CHECK(object.flag);
|
| }
|
| }
|
|
|