Chromium Code Reviews| Index: runtime/vm/dart_api_impl_test.cc |
| =================================================================== |
| --- runtime/vm/dart_api_impl_test.cc (revision 43426) |
| +++ runtime/vm/dart_api_impl_test.cc (working copy) |
| @@ -3580,6 +3580,51 @@ |
| } |
| +TEST_CASE(IsolateSetCheckedMode) { |
| + const char* kScriptChars = |
| + "int bad1() {\n" |
| + " int foo = 'string';\n" |
| + " return foo;\n" |
| + "}\n" |
| + "\n" |
| + "int good1() {\n" |
| + " int five = 5;\n" |
| + " return five;" |
| + "}\n" |
| + "\n" |
| + "int bad2() {\n" |
| + " int foo = 'string';\n" |
| + " return foo;\n" |
| + "}\n" |
| + "\n" |
| + "int good2() {\n" |
| + " int five = 5;\n" |
| + " return five;" |
| + "}\n" |
| + "\n"; |
| + Dart_Handle result; |
| + |
| + // Create a test library and Load up a test script in it. |
| + Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); |
| + Dart_IsolateSetCheckedMode(true); |
| + |
| + result = Dart_Invoke(lib, NewString("bad1"), 0, NULL); |
| + EXPECT_ERROR(result, "Unhandled exception:\n" |
| + "type 'String' is not a subtype of type 'int' of 'foo'"); |
| + |
| + result = Dart_Invoke(lib, NewString("good1"), 0, NULL); |
| + EXPECT_VALID(result); |
| + |
| + Dart_IsolateSetCheckedMode(false); |
|
regis
2015/02/03 22:23:17
As shown by this test, you cannot flip the isolate
|
| + |
| + result = Dart_Invoke(lib, NewString("bad2"), 0, NULL); |
| + EXPECT_VALID(result); |
| + |
| + result = Dart_Invoke(lib, NewString("good2"), 0, NULL); |
| + EXPECT_VALID(result); |
| +} |
| + |
| + |
| TEST_CASE(DebugName) { |
| Dart_Handle debug_name = Dart_DebugName(); |
| EXPECT_VALID(debug_name); |