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); |