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

Unified Diff: vm/dart_api_impl_test.cc

Issue 8673002: - Refactor the isolate callback mechanism to also include creation of the (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
Patch Set: '' Created 9 years, 1 month 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
« no previous file with comments | « vm/dart_api_impl.cc ('k') | vm/isolate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: vm/dart_api_impl_test.cc
===================================================================
--- vm/dart_api_impl_test.cc (revision 1955)
+++ vm/dart_api_impl_test.cc (working copy)
@@ -13,7 +13,6 @@
namespace dart {
-
#if defined(TARGET_ARCH_IA32) // only ia32 can run execution tests.
UNIT_TEST_CASE(ErrorHandles) {
@@ -24,8 +23,8 @@
" }\n"
"}\n";
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope();
+ TestIsolateScope __test_isolate__;
+
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
Dart_Handle instance = Dart_True();
@@ -59,30 +58,22 @@
EXPECT(Dart_IsError(Dart_ErrorGetStacktrace(instance)));
EXPECT(Dart_IsError(Dart_ErrorGetStacktrace(error)));
EXPECT_VALID(Dart_ErrorGetStacktrace(exception));
-
- Dart_ExitScope();
- Dart_ShutdownIsolate();
}
#endif
UNIT_TEST_CASE(Dart_Error) {
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope();
+ TestIsolateScope __test_isolate__;
Dart_Handle error = Dart_Error("An %s", "error");
EXPECT(Dart_IsError(error));
EXPECT_STREQ("An error", Dart_GetError(error));
-
- Dart_ExitScope();
- Dart_ShutdownIsolate();
}
UNIT_TEST_CASE(Null) {
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope(); // Enter a Dart API scope for the unit test.
+ TestIsolateScope __test_isolate__;
Dart_Handle null = Dart_Null();
EXPECT_VALID(null);
@@ -91,15 +82,11 @@
Dart_Handle str = Dart_NewString("test");
EXPECT_VALID(str);
EXPECT(!Dart_IsNull(str));
-
- Dart_ExitScope(); // Exit the Dart API scope.
- Dart_ShutdownIsolate();
}
UNIT_TEST_CASE(IsSame) {
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope(); // Enter a Dart API scope for the unit test.
+ TestIsolateScope __test_isolate__;
bool same = false;
Dart_Handle five = Dart_NewString("5");
@@ -132,17 +119,13 @@
EXPECT_VALID(Dart_IsSame(class1, class2, &same));
EXPECT(!same);
}
-
- Dart_ExitScope(); // Exit the Dart API scope.
- Dart_ShutdownIsolate();
}
#if defined(TARGET_ARCH_IA32) // only ia32 can run execution tests.
UNIT_TEST_CASE(ObjectEquals) {
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope(); // Enter a Dart API scope for the unit test.
+ TestIsolateScope __test_isolate__;
bool equal = false;
Dart_Handle five = Dart_NewString("5");
@@ -160,16 +143,12 @@
// Different objects.
EXPECT_VALID(Dart_ObjectEquals(five, seven, &equal));
EXPECT(!equal);
-
- Dart_ExitScope(); // Exit the Dart API scope.
- Dart_ShutdownIsolate();
}
#endif
UNIT_TEST_CASE(BooleanValues) {
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope(); // Enter a Dart API scope for the unit test.
+ TestIsolateScope __test_isolate__;
Dart_Handle str = Dart_NewString("test");
EXPECT(!Dart_IsBoolean(str));
@@ -191,15 +170,11 @@
result = Dart_BooleanValue(val2, &value);
EXPECT_VALID(result);
EXPECT(!value);
-
- Dart_ExitScope(); // Exit the Dart API scope.
- Dart_ShutdownIsolate();
}
UNIT_TEST_CASE(BooleanConstants) {
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope(); // Enter a Dart API scope for the unit test.
+ TestIsolateScope __test_isolate__;
Dart_Handle true_handle = Dart_True();
EXPECT_VALID(true_handle);
@@ -217,15 +192,11 @@
result = Dart_BooleanValue(false_handle, &value);
EXPECT_VALID(result);
EXPECT(!value);
-
- Dart_ExitScope(); // Exit the Dart API scope.
- Dart_ShutdownIsolate();
}
UNIT_TEST_CASE(DoubleValues) {
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope(); // Enter a Dart API scope for the unit test.
+ TestIsolateScope __test_isolate__;
const double kDoubleVal1 = 201.29;
const double kDoubleVal2 = 101.19;
@@ -240,9 +211,6 @@
result = Dart_DoubleValue(val2, &out2);
EXPECT_VALID(result);
EXPECT_EQ(kDoubleVal2, out2);
-
- Dart_ExitScope(); // Exit the Dart API scope.
- Dart_ShutdownIsolate();
}
@@ -259,10 +227,8 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Create a test library and Load up a test script in it.
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
@@ -302,18 +268,14 @@
NULL);
EXPECT_VALID(result);
EXPECT(!Dart_IsNumber(result));
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
#endif
UNIT_TEST_CASE(IntegerValues) {
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope(); // Enter a Dart API scope for the unit test.
+ TestIsolateScope __test_isolate__;
const int64_t kIntegerVal1 = 100;
const int64_t kIntegerVal2 = 0xffffffff;
@@ -351,15 +313,11 @@
result = Dart_IntegerValueHexCString(val3, &chars);
EXPECT_VALID(result);
EXPECT(!strcmp(kIntegerVal3, chars));
-
- Dart_ExitScope(); // Exit the Dart API scope.
- Dart_ShutdownIsolate();
}
UNIT_TEST_CASE(ArrayValues) {
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope(); // Enter a Dart API scope for the unit test.
+ TestIsolateScope __test_isolate__;
const int kArrayLength = 10;
Dart_Handle str = Dart_NewString("test");
@@ -393,15 +351,11 @@
EXPECT_VALID(result);
EXPECT_EQ(i, value);
}
-
- Dart_ExitScope(); // Exit the Dart API scope.
- Dart_ShutdownIsolate();
}
UNIT_TEST_CASE(IsString) {
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope(); // Enter a Dart API scope for the unit test.
+ TestIsolateScope __test_isolate__;
uint8_t data8[] = { 'o', 'n', 'e', 0xFF };
@@ -447,9 +401,6 @@
EXPECT(Dart_IsString(ext32));
EXPECT(!Dart_IsString8(ext32));
EXPECT(!Dart_IsString16(ext32));
-
- Dart_ExitScope(); // Exit the Dart API scope.
- Dart_ShutdownIsolate();
}
@@ -469,10 +420,8 @@
"}";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Create a test library and Load up a test script in it.
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
@@ -574,10 +523,7 @@
// Check if we get an exception when accessing beyond limit.
result = Dart_ListGetAt(ListAccessTestObj, 4);
EXPECT(Dart_IsError(result));
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
#endif // TARGET_ARCH_IA32.
@@ -586,7 +532,8 @@
// Unit test for entering a scope, creating a local handle and exiting
// the scope.
UNIT_TEST_CASE(EnterExitScope) {
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
+
Isolate* isolate = Isolate::Current();
EXPECT(isolate != NULL);
ApiState* state = isolate->api_state();
@@ -604,7 +551,6 @@
}
Dart_ExitScope();
EXPECT(scope == state->top_scope());
- Dart_ShutdownIsolate();
}
@@ -612,7 +558,7 @@
UNIT_TEST_CASE(PersistentHandles) {
const char* kTestString1 = "Test String1";
const char* kTestString2 = "Test String2";
- Dart_CreateIsolate(NULL, NULL);
+ TestCase::CreateTestIsolate();
Isolate* isolate = Isolate::Current();
EXPECT(isolate != NULL);
ApiState* state = isolate->api_state();
@@ -678,7 +624,7 @@
// Test that we are able to create a persistent handle from a
// persistent handle.
UNIT_TEST_CASE(NewPersistentHandle_FromPersistentHandle) {
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
Isolate* isolate = Isolate::Current();
EXPECT(isolate != NULL);
@@ -699,8 +645,6 @@
Dart_Handle result = Dart_BooleanValue(obj2, &value);
EXPECT_VALID(result);
EXPECT(value);
-
- Dart_ShutdownIsolate();
}
@@ -708,7 +652,7 @@
// Ensure that the local handles get all cleaned out when exiting the
// scope.
UNIT_TEST_CASE(LocalHandles) {
- Dart_CreateIsolate(NULL, NULL);
+ TestCase::CreateTestIsolate();
Isolate* isolate = Isolate::Current();
EXPECT(isolate != NULL);
ApiState* state = isolate->api_state();
@@ -775,7 +719,7 @@
// zone for the scope. Ensure that the memory is freed when the scope
// exits.
UNIT_TEST_CASE(LocalZoneMemory) {
- Dart_CreateIsolate(NULL, NULL);
+ TestCase::CreateTestIsolate();
Isolate* isolate = Isolate::Current();
EXPECT(isolate != NULL);
ApiState* state = isolate->api_state();
@@ -821,14 +765,14 @@
UNIT_TEST_CASE(Isolates) {
// This test currently assumes that the Dart_Isolate type is an opaque
// representation of Isolate*.
- Dart_Isolate iso_1 = Dart_CreateIsolate(NULL, NULL);
+ Dart_Isolate iso_1 = TestCase::CreateTestIsolate();
EXPECT_EQ(iso_1, Isolate::Current());
Dart_Isolate isolate = Dart_CurrentIsolate();
EXPECT_EQ(iso_1, isolate);
Dart_ExitIsolate();
EXPECT(NULL == Isolate::Current());
EXPECT(NULL == Dart_CurrentIsolate());
- Dart_Isolate iso_2 = Dart_CreateIsolate(NULL, NULL);
+ Dart_Isolate iso_2 = TestCase::CreateTestIsolate();
EXPECT_EQ(iso_2, Isolate::Current());
Dart_ExitIsolate();
EXPECT(NULL == Isolate::Current());
@@ -857,7 +801,7 @@
UNIT_TEST_CASE(SetMessageCallbacks) {
- Dart_Isolate dart_isolate = Dart_CreateIsolate(NULL, NULL);
+ Dart_Isolate dart_isolate = TestCase::CreateTestIsolate();
Dart_SetMessageCallbacks(&MyPostMessageCallback, &MyClosePortCallback);
Isolate* isolate = reinterpret_cast<Isolate*>(dart_isolate);
EXPECT_EQ(&MyPostMessageCallback, isolate->post_message_callback());
@@ -885,10 +829,8 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Create a test library and Load up a test script in it.
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
@@ -948,10 +890,7 @@
EXPECT_VALID(result);
result = Dart_IntegerValue(result, &value);
EXPECT_EQ(40, value);
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -972,10 +911,8 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Load up a test script which extends the native wrapper class.
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
@@ -1035,10 +972,7 @@
EXPECT_VALID(result);
result = Dart_IntegerValue(result, &value);
EXPECT_EQ(40, value);
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -1070,9 +1004,8 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
const int kNumNativeFields = 4;
// Create a test library.
@@ -1107,10 +1040,7 @@
EXPECT_EQ(Utils::RoundUp(((kNumNativeFields + 2) * kWordSize) + kWordSize,
kObjectAlignment),
cls.instance_size());
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -1131,10 +1061,8 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Create a test library and Load up a test script in it.
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
@@ -1148,10 +1076,7 @@
// "NativeFieldsWrapper" and there is no definition of it either
// in the dart code or through the native field injection mechanism.
EXPECT(Dart_IsError(result));
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -1173,9 +1098,8 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
const int kNumNativeFields = 2;
// Load up a test script in the test library.
@@ -1202,10 +1126,7 @@
EXPECT_EQ(Utils::RoundUp(((kNumNativeFields + 2) * kWordSize) + kWordSize,
kObjectAlignment),
cls.instance_size());
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -1227,10 +1148,8 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Load up a test script in the test library.
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
@@ -1247,9 +1166,7 @@
"native fields class, but library '%s' has no native resolvers",
TestCase::url());
EXPECT_STREQ(Dart_GetError(expected_error), Dart_GetError(result));
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -1341,9 +1258,8 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
const int kNumNativeFields = 4;
// Create a test library.
@@ -1368,10 +1284,7 @@
// Now access and set various instance fields of the returned object.
TestNativeFields(retobj);
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -1391,10 +1304,8 @@
" return obj;\n"
" }\n"
"}\n";
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Load up a test script in the test library.
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars,
native_field_lookup);
@@ -1409,10 +1320,7 @@
// Now access and set various instance fields of the returned object.
TestNativeFields(retobj);
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -1436,10 +1344,9 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
DARTSCOPE(Isolate::Current());
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
// Create a test library and Load up a test script in it.
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
@@ -1497,10 +1404,7 @@
EXPECT(Dart_IsError(result));
result = Dart_SetNativeInstanceField(retobj, kNativeFld0, 400);
EXPECT(Dart_IsError(result));
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -1514,10 +1418,8 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Create a test library and Load up a test script in it.
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
@@ -1554,10 +1456,7 @@
EXPECT_VALID(result);
result = Dart_IntegerValue(result, &value);
EXPECT_EQ(13, value);
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -1569,10 +1468,8 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Create a test library and Load up a test script in it.
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
@@ -1597,10 +1494,7 @@
EXPECT(Dart_IsError(result));
EXPECT_STREQ("Specified field is not found in the class",
Dart_GetError(result));
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -1622,10 +1516,9 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
DARTSCOPE(Isolate::Current());
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
// Create a test library and Load up a test script in it.
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
@@ -1657,10 +1550,7 @@
result = Dart_InvokeDynamic(retobj, Dart_NewString("method1"), 0, NULL);
EXPECT(Dart_IsError(result));
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -1691,10 +1581,9 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
DARTSCOPE(Isolate::Current());
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
// Create a test library and Load up a test script in it.
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
@@ -1741,10 +1630,7 @@
result = Dart_InvokeClosure(retobj, 1, dart_arguments);
EXPECT(Dart_IsError(result));
EXPECT(Dart_ErrorHasException(result));
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -1781,7 +1667,8 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
+
Isolate* isolate = Isolate::Current();
EXPECT(isolate != NULL);
ApiState* state = isolate->api_state();
@@ -1820,7 +1707,6 @@
Dart_ExitScope(); // Exit the Dart API scope.
EXPECT_EQ(size, state->ZoneSizeInBytes());
}
- Dart_ShutdownIsolate();
}
@@ -1849,9 +1735,8 @@
" }"
"}";
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope();
Dart_Handle lib = TestCase::LoadTestScript(
kScriptChars,
reinterpret_cast<Dart_NativeEntryResolver>(gnac_lookup));
@@ -1868,10 +1753,7 @@
result = Dart_IntegerValue(result, &value);
EXPECT_VALID(result);
EXPECT_EQ(3, value);
-
- Dart_ExitScope();
}
- Dart_ShutdownIsolate();
}
@@ -1880,8 +1762,8 @@
"class DoesExist {"
"}";
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope();
+ TestIsolateScope __test_isolate__;
+
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
// Lookup a class that does exist.
@@ -1893,9 +1775,6 @@
EXPECT(Dart_IsError(cls));
EXPECT_STREQ("Class 'DoesNotExist' not found in library 'dart:test-lib'.",
Dart_GetError(cls));
-
- Dart_ExitScope();
- Dart_ShutdownIsolate();
}
@@ -1912,10 +1791,8 @@
"}\n";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Create a test library and Load up a test script in it.
Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
@@ -1976,16 +1853,12 @@
// Check that error is returned if null is passed as a class argument.
result = Dart_ObjectIsType(null, null, &is_instance);
EXPECT(Dart_IsError(result));
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
UNIT_TEST_CASE(NullReceiver) {
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope(); // Enter a Dart API scope for the unit test.
+ TestIsolateScope __test_isolate__;
{
DARTSCOPE(Isolate::Current());
@@ -2009,8 +1882,6 @@
EXPECT(Dart_IsError(result));
EXPECT(Dart_ErrorHasException(result)); */
}
- Dart_ExitScope(); // Exit the Dart API scope.
- Dart_ShutdownIsolate();
}
@@ -2030,8 +1901,7 @@
" return 12345;"
"}";
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope();
+ TestIsolateScope __test_isolate__;
Dart_Handle url = Dart_NewString(TestCase::url());
Dart_Handle source = Dart_NewString(kScriptChars);
@@ -2088,9 +1958,6 @@
EXPECT_STREQ("Dart_LoadScript: "
"A script has already been loaded from 'dart:test-lib'.",
Dart_GetError(result));
-
- Dart_ExitScope();
- Dart_ShutdownIsolate();
}
@@ -2098,17 +1965,13 @@
const char* kScriptChars =
")";
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope();
+ TestIsolateScope __test_isolate__;
Dart_Handle url = Dart_NewString(TestCase::url());
Dart_Handle source = Dart_NewString(kScriptChars);
Dart_Handle result = Dart_LoadScript(url, source, library_handler);
EXPECT(Dart_IsError(result));
EXPECT(strstr(Dart_GetError(result), "unexpected token ')'"));
-
- Dart_ExitScope();
- Dart_ShutdownIsolate();
}
@@ -2120,8 +1983,7 @@
"#library('library1.dart');"
"#import('library2.dart');";
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope();
+ TestIsolateScope __test_isolate__;
// Create a test library and Load up a test script in it.
Dart_Handle url = Dart_NewString(TestCase::url());
@@ -2157,9 +2019,6 @@
EXPECT(Dart_IsError(result));
EXPECT_STREQ("Dart_LookupLibrary: library 'noodles.dart' not found.",
Dart_GetError(result));
-
- Dart_ExitScope();
- Dart_ShutdownIsolate();
}
@@ -2167,8 +2026,7 @@
const char* kLibrary1Chars =
"#library('library1_name');";
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope();
+ TestIsolateScope __test_isolate__;
Dart_Handle url = Dart_NewString("library1_url");
Dart_Handle source = Dart_NewString(kLibrary1Chars);
@@ -2197,9 +2055,6 @@
const char* cstr = NULL;
EXPECT_VALID(Dart_StringToCString(result, &cstr));
EXPECT_STREQ("library1_url", cstr);
-
- Dart_ExitScope();
- Dart_ShutdownIsolate();
}
@@ -2209,8 +2064,7 @@
const char* kLibrary2Chars =
"#library('library2_name');";
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope();
+ TestIsolateScope __test_isolate__;
Dart_Handle error = Dart_Error("incoming error");
Dart_Handle result;
@@ -2259,9 +2113,6 @@
result = Dart_LibraryImportLibrary(lib1, lib2);
EXPECT_VALID(result);
-
- Dart_ExitScope();
- Dart_ShutdownIsolate();
}
@@ -2270,8 +2121,7 @@
const char* kLibrary1Chars =
"#library('library1_name');";
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope();
+ TestIsolateScope __test_isolate__;
Dart_Handle error = Dart_Error("incoming error");
Dart_Handle result;
@@ -2319,9 +2169,6 @@
EXPECT_STREQ(
"Dart_LoadLibrary: library 'library1_url' has already been loaded.",
Dart_GetError(result));
-
- Dart_ExitScope();
- Dart_ShutdownIsolate();
}
@@ -2330,17 +2177,13 @@
"#library('library1_name');"
")";
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope();
+ TestIsolateScope __test_isolate__;
Dart_Handle url = Dart_NewString("library1_url");
Dart_Handle source = Dart_NewString(kLibrary1Chars);
Dart_Handle result = Dart_LoadLibrary(url, source);
EXPECT(Dart_IsError(result));
EXPECT(strstr(Dart_GetError(result), "unexpected token ')'"));
-
- Dart_ExitScope();
- Dart_ShutdownIsolate();
}
@@ -2352,8 +2195,7 @@
const char* kBadSourceChars =
")";
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope();
+ TestIsolateScope __test_isolate__;
Dart_Handle error = Dart_Error("incoming error");
Dart_Handle result;
@@ -2432,9 +2274,6 @@
source = Dart_NewString(kBadSourceChars);
result = Dart_LoadSource(lib, url, source);
EXPECT(Dart_IsError(result));
-
- Dart_ExitScope();
- Dart_ShutdownIsolate();
}
@@ -2472,8 +2311,7 @@
" static baz() native \"SomeNativeFunction3\";"
"}";
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope();
+ TestIsolateScope __test_isolate__;
Dart_Handle error = Dart_Error("incoming error");
Dart_Handle result;
@@ -2556,9 +2394,6 @@
EXPECT(Dart_IsError(result));
EXPECT(strstr(Dart_GetError(result),
"native function 'SomeNativeFunction3' cannot be found"));
-
- Dart_ExitScope();
- Dart_ShutdownIsolate();
}
@@ -2577,10 +2412,8 @@
"var foo;";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Create a test library and Load up a test script in it.
Dart_Handle url = Dart_NewString(TestCase::url());
Dart_Handle source = Dart_NewString(kScriptChars);
@@ -2603,10 +2436,7 @@
EXPECT_STREQ("Duplicate definition : 'foo' is defined in"
" 'library2.dart' and 'dart:test-lib'\n",
Dart_GetError(result));
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -2625,10 +2455,8 @@
"var foo;";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Create a test library and Load up a test script in it.
Dart_Handle url = Dart_NewString(TestCase::url());
Dart_Handle source = Dart_NewString(kScriptChars);
@@ -2648,10 +2476,7 @@
0,
NULL);
EXPECT_VALID(result);
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -2669,10 +2494,8 @@
"var foo;";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Create a test library and Load up a test script in it.
Dart_Handle url = Dart_NewString(TestCase::url());
Dart_Handle source = Dart_NewString(kScriptChars);
@@ -2695,10 +2518,7 @@
EXPECT_STREQ("Duplicate definition : 'foo' is defined in"
" 'library1.dart' and 'library2.dart'\n",
Dart_GetError(result));
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -2735,10 +2555,8 @@
"var fooC;";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Create a test library and Load up a test script in it.
Dart_Handle url = Dart_NewString(TestCase::url());
Dart_Handle source = Dart_NewString(kScriptChars);
@@ -2777,10 +2595,7 @@
EXPECT_STREQ("Duplicate definition : 'fooC' is defined in"
" 'libraryF.dart' and 'libraryC.dart'\n",
Dart_GetError(result));
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
@@ -2798,10 +2613,8 @@
"}";
Dart_Handle result;
- Dart_CreateIsolate(NULL, NULL);
+ TestIsolateScope __test_isolate__;
{
- Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
-
// Create a test library and Load up a test script in it.
Dart_Handle url = Dart_NewString(TestCase::url());
Dart_Handle source = Dart_NewString(kScriptChars);
@@ -2817,14 +2630,11 @@
0,
NULL);
EXPECT_VALID(result);
-
- Dart_ExitScope(); // Exit the Dart API scope.
}
- Dart_ShutdownIsolate();
}
-static void* RunLoopTest_InitCallback(void* data) {
+static bool RunLoopTestCallback(void* data, char** error) {
const char* kScriptChars =
"#import('builtin');\n"
"class MyIsolate extends Isolate {\n"
@@ -2849,25 +2659,28 @@
" });\n"
"}\n";
+ Dart_Isolate isolate = TestCase::CreateTestIsolate();
+ ASSERT(isolate != NULL);
Dart_EnterScope();
Dart_Handle url = Dart_NewString(TestCase::url());
Dart_Handle source = Dart_NewString(kScriptChars);
- Dart_Handle lib = Dart_LoadScript(url, source, library_handler);
+ Dart_Handle lib = Dart_LoadScript(url, source, TestCase::library_handler);
EXPECT_VALID(lib);
Dart_ExitScope();
- return NULL;
+ return true;
}
// Common code for RunLoop_Success/RunLoop_Failure.
static void RunLoopTest(bool throw_exception) {
- Dart_IsolateInitCallback saved = Isolate::InitCallback();
- Isolate::SetInitCallback(RunLoopTest_InitCallback);
- Dart_CreateIsolate(NULL, NULL);
- Dart_EnterScope();
+ Dart_IsolateCreateCallback saved = Isolate::CreateCallback();
+ Isolate::SetCreateCallback(RunLoopTestCallback);
+ RunLoopTestCallback(NULL, NULL);
+ Dart_EnterScope();
Dart_Handle lib = Dart_LookupLibrary(Dart_NewString(TestCase::url()));
EXPECT_VALID(lib);
+
Dart_Handle result;
Dart_Handle args[1];
args[0] = (throw_exception ? Dart_True() : Dart_False());
@@ -2883,7 +2696,7 @@
Dart_ExitScope();
Dart_ShutdownIsolate();
- Isolate::SetInitCallback(saved);
+ Isolate::SetCreateCallback(saved);
}
« no previous file with comments | « vm/dart_api_impl.cc ('k') | vm/isolate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698