| Index: runtime/vm/isolate_reload_test.cc
|
| diff --git a/runtime/vm/isolate_reload_test.cc b/runtime/vm/isolate_reload_test.cc
|
| index 218ecb142b22f95fe02fb028b373967c8910ce9b..574384e405f8a2be5cdaacb488583f5306ae2e70 100644
|
| --- a/runtime/vm/isolate_reload_test.cc
|
| +++ b/runtime/vm/isolate_reload_test.cc
|
| @@ -31,7 +31,6 @@ int64_t SimpleInvoke(Dart_Handle lib, const char* method) {
|
| return integer_result;
|
| }
|
|
|
| -
|
| const char* SimpleInvokeStr(Dart_Handle lib, const char* method) {
|
| Dart_Handle result = Dart_Invoke(lib, NewString(method), 0, NULL);
|
| const char* result_str = NULL;
|
| @@ -40,14 +39,12 @@ const char* SimpleInvokeStr(Dart_Handle lib, const char* method) {
|
| return result_str;
|
| }
|
|
|
| -
|
| Dart_Handle SimpleInvokeError(Dart_Handle lib, const char* method) {
|
| Dart_Handle result = Dart_Invoke(lib, NewString(method), 0, NULL);
|
| EXPECT(Dart_IsError(result));
|
| return result;
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_FunctionReplacement) {
|
| const char* kScript =
|
| "main() {\n"
|
| @@ -70,7 +67,6 @@ TEST_CASE(IsolateReload_FunctionReplacement) {
|
| EXPECT_EQ(10, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_BadClass) {
|
| const char* kScript =
|
| "class Foo {\n"
|
| @@ -102,7 +98,6 @@ TEST_CASE(IsolateReload_BadClass) {
|
| EXPECT_EQ(4, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_StaticValuePreserved) {
|
| const char* kScript =
|
| "init() => 'old value';\n"
|
| @@ -130,7 +125,6 @@ TEST_CASE(IsolateReload_StaticValuePreserved) {
|
| SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_SavedClosure) {
|
| // Create a closure in main which only exists in the original source.
|
| const char* kScript =
|
| @@ -165,7 +159,6 @@ TEST_CASE(IsolateReload_SavedClosure) {
|
| EXPECT_STREQ("postapocalyptic!", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_TopLevelFieldAdded) {
|
| const char* kScript =
|
| "var value1 = 10;\n"
|
| @@ -189,7 +182,6 @@ TEST_CASE(IsolateReload_TopLevelFieldAdded) {
|
| EXPECT_STREQ("value1=10,value2=20", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_ClassFieldAdded) {
|
| const char* kScript =
|
| "class Foo {\n"
|
| @@ -219,7 +211,6 @@ TEST_CASE(IsolateReload_ClassFieldAdded) {
|
| EXPECT_EQ(44, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_ClassFieldAdded2) {
|
| const char* kScript =
|
| "class Foo {\n"
|
| @@ -251,7 +242,6 @@ TEST_CASE(IsolateReload_ClassFieldAdded2) {
|
| EXPECT_EQ(44, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_ClassFieldRemoved) {
|
| const char* kScript =
|
| "class Foo {\n"
|
| @@ -281,7 +271,6 @@ TEST_CASE(IsolateReload_ClassFieldRemoved) {
|
| EXPECT_EQ(44, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_ClassAdded) {
|
| const char* kScript =
|
| "main() {\n"
|
| @@ -306,7 +295,6 @@ TEST_CASE(IsolateReload_ClassAdded) {
|
| EXPECT_STREQ("hello from A", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_LibraryImportAdded) {
|
| const char* kScript =
|
| "main() {\n"
|
| @@ -328,7 +316,6 @@ TEST_CASE(IsolateReload_LibraryImportAdded) {
|
| EXPECT_EQ(4, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_LibraryImportRemoved) {
|
| const char* kScript =
|
| "import 'dart:math';\n"
|
| @@ -351,7 +338,6 @@ TEST_CASE(IsolateReload_LibraryImportRemoved) {
|
| EXPECT_ERROR(SimpleInvokeError(lib, "main"), "max");
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_LibraryDebuggable) {
|
| const char* kScript =
|
| "main() {\n"
|
| @@ -390,7 +376,6 @@ TEST_CASE(IsolateReload_LibraryDebuggable) {
|
| EXPECT_EQ(false, debuggable);
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_ImplicitConstructorChanged) {
|
| // Note that we are checking that the value 20 gets cleared from the
|
| // compile-time constants cache. To make this test work, "20" and
|
| @@ -424,7 +409,6 @@ TEST_CASE(IsolateReload_ImplicitConstructorChanged) {
|
| EXPECT_STREQ("saved:20 new:10", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_ConstructorChanged) {
|
| const char* kScript =
|
| "class A {\n"
|
| @@ -458,7 +442,6 @@ TEST_CASE(IsolateReload_ConstructorChanged) {
|
| EXPECT_STREQ("saved:20 new:10", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_SuperClassChanged) {
|
| const char* kScript =
|
| "class A {\n"
|
| @@ -490,7 +473,6 @@ TEST_CASE(IsolateReload_SuperClassChanged) {
|
| EXPECT_STREQ("(true/true, false/true)", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_Generics) {
|
| // Reload a program with generics without changing the source. We
|
| // do this to produce duplication TypeArguments and make sure that
|
| @@ -522,7 +504,6 @@ TEST_CASE(IsolateReload_Generics) {
|
| EXPECT_STREQ("Instance of 'B<A>'", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_TypeIdentity) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -554,7 +535,6 @@ TEST_CASE(IsolateReload_TypeIdentity) {
|
| EXPECT_STREQ("true", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_TypeIdentityGeneric) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -586,7 +566,6 @@ TEST_CASE(IsolateReload_TypeIdentityGeneric) {
|
| EXPECT_STREQ("true", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_TypeIdentityParameter) {
|
| const char* kScript =
|
| "import 'dart:mirrors';\n"
|
| @@ -620,7 +599,6 @@ TEST_CASE(IsolateReload_TypeIdentityParameter) {
|
| EXPECT_STREQ("true", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_MixinChanged) {
|
| const char* kScript =
|
| "class Mixin1 {\n"
|
| @@ -663,7 +641,6 @@ TEST_CASE(IsolateReload_MixinChanged) {
|
| SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_ComplexInheritanceChange) {
|
| const char* kScript =
|
| "class A {\n"
|
| @@ -753,7 +730,6 @@ TEST_CASE(IsolateReload_ComplexInheritanceChange) {
|
| SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_LiveStack) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -787,7 +763,6 @@ TEST_CASE(IsolateReload_LiveStack) {
|
| EXPECT_EQ(105, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_LibraryLookup) {
|
| const char* kImportScript = "importedFunc() => 'a';\n";
|
| TestCase::AddTestLib("test:lib1", kImportScript);
|
| @@ -829,7 +804,6 @@ TEST_CASE(IsolateReload_LibraryLookup) {
|
| EXPECT(Dart_IsError(result));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_LibraryHide) {
|
| const char* kImportScript = "importedFunc() => 'a';\n";
|
| TestCase::AddTestLib("test:lib1", kImportScript);
|
| @@ -860,7 +834,6 @@ TEST_CASE(IsolateReload_LibraryHide) {
|
| EXPECT_STREQ("a", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_LibraryShow) {
|
| const char* kImportScript =
|
| "importedFunc() => 'a';\n"
|
| @@ -878,7 +851,6 @@ TEST_CASE(IsolateReload_LibraryShow) {
|
| " return importedIntFunc();\n"
|
| "}\n";
|
|
|
| -
|
| Dart_Handle lib = TestCase::LoadTestScript(kScript, NULL);
|
| EXPECT_VALID(lib);
|
|
|
| @@ -907,7 +879,6 @@ TEST_CASE(IsolateReload_LibraryShow) {
|
| EXPECT_ERROR(SimpleInvokeError(lib, "mainInt"), "importedIntFunc");
|
| }
|
|
|
| -
|
| // Verifies that we clear the ICs for the functions live on the stack in a way
|
| // that is compatible with the fast path smi stubs.
|
| TEST_CASE(IsolateReload_SmiFastPathStubs) {
|
| @@ -924,7 +895,6 @@ TEST_CASE(IsolateReload_SmiFastPathStubs) {
|
| " return x + y;\n"
|
| "}\n";
|
|
|
| -
|
| Dart_Handle lib = TestCase::LoadTestScript(kScript, NULL);
|
| EXPECT_VALID(lib);
|
|
|
| @@ -934,7 +904,6 @@ TEST_CASE(IsolateReload_SmiFastPathStubs) {
|
| EXPECT_EQ(8, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| // Verifies that we assign the correct patch classes for imported
|
| // mixins when we reload.
|
| TEST_CASE(IsolateReload_ImportedMixinFunction) {
|
| @@ -972,7 +941,6 @@ TEST_CASE(IsolateReload_ImportedMixinFunction) {
|
| EXPECT_STREQ("mixin", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_TopLevelParseError) {
|
| const char* kScript =
|
| "main() {\n"
|
| @@ -993,7 +961,6 @@ TEST_CASE(IsolateReload_TopLevelParseError) {
|
| EXPECT_ERROR(lib, "unexpected token");
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_PendingUnqualifiedCall_StaticToInstance) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1033,7 +1000,6 @@ TEST_CASE(IsolateReload_PendingUnqualifiedCall_StaticToInstance) {
|
| EXPECT_STREQ("instance", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_PendingUnqualifiedCall_InstanceToStatic) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1073,7 +1039,6 @@ TEST_CASE(IsolateReload_PendingUnqualifiedCall_InstanceToStatic) {
|
| EXPECT_STREQ("static", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_PendingConstructorCall_AbstractToConcrete) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1123,7 +1088,6 @@ TEST_CASE(IsolateReload_PendingConstructorCall_AbstractToConcrete) {
|
| EXPECT_STREQ("okay", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_PendingConstructorCall_ConcreteToAbstract) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1173,7 +1137,6 @@ TEST_CASE(IsolateReload_PendingConstructorCall_ConcreteToAbstract) {
|
| EXPECT_STREQ("exception", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_PendingStaticCall_DefinedToNSM) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1220,7 +1183,6 @@ TEST_CASE(IsolateReload_PendingStaticCall_DefinedToNSM) {
|
| EXPECT_STREQ("exception", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_PendingStaticCall_NSMToDefined) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1267,7 +1229,6 @@ TEST_CASE(IsolateReload_PendingStaticCall_NSMToDefined) {
|
| EXPECT_STREQ("static", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_PendingSuperCall) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1311,7 +1272,6 @@ TEST_CASE(IsolateReload_PendingSuperCall) {
|
| EXPECT_EQ(11, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_TearOff_Instance_Equality) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1350,7 +1310,6 @@ TEST_CASE(IsolateReload_TearOff_Instance_Equality) {
|
| EXPECT_VALID(lib);
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_TearOff_Class_Identity) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1389,7 +1348,6 @@ TEST_CASE(IsolateReload_TearOff_Class_Identity) {
|
| EXPECT_VALID(lib);
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_TearOff_Library_Identity) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1424,7 +1382,6 @@ TEST_CASE(IsolateReload_TearOff_Library_Identity) {
|
| EXPECT_VALID(lib);
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_TearOff_List_Set) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1488,7 +1445,6 @@ TEST_CASE(IsolateReload_TearOff_List_Set) {
|
| EXPECT_VALID(lib);
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_DanglingGetter_Instance) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1547,7 +1503,6 @@ TEST_CASE(IsolateReload_DanglingGetter_Instance) {
|
| EXPECT_VALID(lib);
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_DanglingGetter_Class) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1608,7 +1563,6 @@ TEST_CASE(IsolateReload_DanglingGetter_Class) {
|
| EXPECT_VALID(lib);
|
| }
|
|
|
| -
|
| static void IsolateReload_DanlingGetter_LibraryReload(
|
| Dart_NativeArguments native_args) {
|
| const char* kImportScript2 = "var x;\n";
|
| @@ -1617,7 +1571,6 @@ static void IsolateReload_DanlingGetter_LibraryReload(
|
| DART_CHECK_VALID(TestCase::TriggerReload());
|
| }
|
|
|
| -
|
| static Dart_NativeFunction IsolateReload_DanlingGetter_LibraryNativeResolver(
|
| Dart_Handle name,
|
| int num_of_arguments,
|
| @@ -1625,7 +1578,6 @@ static Dart_NativeFunction IsolateReload_DanlingGetter_LibraryNativeResolver(
|
| return IsolateReload_DanlingGetter_LibraryReload;
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_DanglingGetter_Library) {
|
| const char* kImportScript =
|
| "var x;\n"
|
| @@ -1667,7 +1619,6 @@ TEST_CASE(IsolateReload_DanglingGetter_Library) {
|
| FLAG_support_deprecated_tearoff_syntax = false;
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_DanglingSetter_Instance) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1726,7 +1677,6 @@ TEST_CASE(IsolateReload_DanglingSetter_Instance) {
|
| FLAG_support_deprecated_tearoff_syntax = false;
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_DanglingSetter_Class) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1789,7 +1739,6 @@ TEST_CASE(IsolateReload_DanglingSetter_Class) {
|
| FLAG_support_deprecated_tearoff_syntax = false;
|
| }
|
|
|
| -
|
| static void IsolateReload_DanlingSetter_LibraryReload(
|
| Dart_NativeArguments native_args) {
|
| const char* kImportScript2 = "var x;\n";
|
| @@ -1798,7 +1747,6 @@ static void IsolateReload_DanlingSetter_LibraryReload(
|
| DART_CHECK_VALID(TestCase::TriggerReload());
|
| }
|
|
|
| -
|
| static Dart_NativeFunction IsolateReload_DanlingSetter_LibraryNativeResolver(
|
| Dart_Handle name,
|
| int num_of_arguments,
|
| @@ -1806,7 +1754,6 @@ static Dart_NativeFunction IsolateReload_DanlingSetter_LibraryNativeResolver(
|
| return IsolateReload_DanlingSetter_LibraryReload;
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_DanglingSetter_Library) {
|
| const char* kImportScript =
|
| "var x;\n"
|
| @@ -1848,7 +1795,6 @@ TEST_CASE(IsolateReload_DanglingSetter_Library) {
|
| FLAG_support_deprecated_tearoff_syntax = false;
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_TearOff_AddArguments) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1906,7 +1852,6 @@ TEST_CASE(IsolateReload_TearOff_AddArguments) {
|
| EXPECT_VALID(lib);
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_TearOff_AddArguments2) {
|
| const char* kScript =
|
| "import 'test:isolate_reload_helper';\n"
|
| @@ -1962,7 +1907,6 @@ TEST_CASE(IsolateReload_TearOff_AddArguments2) {
|
| EXPECT_VALID(lib);
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_EnumEquality) {
|
| const char* kScript =
|
| "enum Fruit {\n"
|
| @@ -1999,7 +1943,6 @@ TEST_CASE(IsolateReload_EnumEquality) {
|
| EXPECT_STREQ("yes", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_EnumIdentical) {
|
| const char* kScript =
|
| "enum Fruit {\n"
|
| @@ -2035,7 +1978,6 @@ TEST_CASE(IsolateReload_EnumIdentical) {
|
| EXPECT_STREQ("yes", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_EnumReorderIdentical) {
|
| const char* kScript =
|
| "enum Fruit {\n"
|
| @@ -2071,7 +2013,6 @@ TEST_CASE(IsolateReload_EnumReorderIdentical) {
|
| EXPECT_STREQ("yes", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_EnumAddition) {
|
| const char* kScript =
|
| "enum Fruit {\n"
|
| @@ -2107,7 +2048,6 @@ TEST_CASE(IsolateReload_EnumAddition) {
|
| SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_EnumToNotEnum) {
|
| const char* kScript =
|
| "enum Fruit {\n"
|
| @@ -2132,7 +2072,6 @@ TEST_CASE(IsolateReload_EnumToNotEnum) {
|
| EXPECT_ERROR(result, "Enum class cannot be redefined to be a non-enum class");
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_NotEnumToEnum) {
|
| const char* kScript =
|
| "class Fruit {\n"
|
| @@ -2158,7 +2097,6 @@ TEST_CASE(IsolateReload_NotEnumToEnum) {
|
| EXPECT_ERROR(result, "Class cannot be redefined to be a enum class");
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_EnumDelete) {
|
| const char* kScript =
|
| "enum Fruit {\n"
|
| @@ -2196,7 +2134,6 @@ TEST_CASE(IsolateReload_EnumDelete) {
|
| SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_EnumIdentityReload) {
|
| const char* kScript =
|
| "enum Fruit {\n"
|
| @@ -2255,7 +2192,6 @@ TEST_CASE(IsolateReload_EnumIdentityReload) {
|
| SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_ConstantIdentical) {
|
| const char* kScript =
|
| "class Fruit {\n"
|
| @@ -2293,7 +2229,6 @@ TEST_CASE(IsolateReload_ConstantIdentical) {
|
| EXPECT_STREQ("yes", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_EnumValuesToString) {
|
| const char* kScript =
|
| "enum Fruit {\n"
|
| @@ -2338,7 +2273,6 @@ TEST_CASE(IsolateReload_EnumValuesToString) {
|
| SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_DirectSubclasses_Success) {
|
| Object& new_subclass = Object::Handle();
|
| String& name = String::Handle();
|
| @@ -2395,7 +2329,6 @@ TEST_CASE(IsolateReload_DirectSubclasses_Success) {
|
| EXPECT_STREQ("BIterator", name.ToCString());
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_DirectSubclasses_GhostSubclass) {
|
| Object& new_subclass = Object::Handle();
|
| String& name = String::Handle();
|
| @@ -2454,7 +2387,6 @@ TEST_CASE(IsolateReload_DirectSubclasses_GhostSubclass) {
|
| EXPECT_STREQ("BIterator", name.ToCString());
|
| }
|
|
|
| -
|
| // Make sure that we restore the direct subclass info when we revert.
|
| TEST_CASE(IsolateReload_DirectSubclasses_Failure) {
|
| Object& new_subclass = Object::Handle();
|
| @@ -2522,7 +2454,6 @@ TEST_CASE(IsolateReload_DirectSubclasses_Failure) {
|
| EXPECT_STREQ("AIterator", name.ToCString());
|
| }
|
|
|
| -
|
| // Tests reload succeeds when instance format changes.
|
| // Change: Foo {a, b, c:42} -> Foo {c:42}
|
| // Validate: c keeps the value in the retained Foo object.
|
| @@ -2558,7 +2489,6 @@ TEST_CASE(IsolateReload_ChangeInstanceFormat0) {
|
| EXPECT_EQ(42, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| // Tests reload succeeds when instance format changes.
|
| // Change: Foo {} -> Foo {c:null}
|
| // Validate: c is initialized to null the retained Foo object.
|
| @@ -2626,7 +2556,6 @@ TEST_CASE(IsolateReload_ChangeInstanceFormat2) {
|
| EXPECT_EQ(24, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| // Tests reload succeeds when instance format changes.
|
| // Change: Foo {a, b, c:42, d} -> Foo {c:42, g}
|
| // Validate: c keeps the value in the retained Foo object.
|
| @@ -2667,7 +2596,6 @@ TEST_CASE(IsolateReload_ChangeInstanceFormat3) {
|
| EXPECT_EQ(3, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| // Tests reload succeeds when instance format changes.
|
| // Change: Bar {c:42}, Foo : Bar {d, e} -> Foo {c:42}
|
| // Validate: c keeps the value in the retained Foo object.
|
| @@ -2705,7 +2633,6 @@ TEST_CASE(IsolateReload_ChangeInstanceFormat4) {
|
| EXPECT_EQ(44, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| // Tests reload succeeds when instance format changes.
|
| // Change: Bar {a, b}, Foo : Bar {c:42} -> Bar {c:42}, Foo : Bar {}
|
| // Validate: c keeps the value in the retained Foo object.
|
| @@ -2745,7 +2672,6 @@ TEST_CASE(IsolateReload_ChangeInstanceFormat5) {
|
| EXPECT_EQ(44, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| // Tests reload fails when type parameters change.
|
| // Change: Foo<A,B> {a, b} -> Foo<A> {a}
|
| // Validate: the right error message is returned.
|
| @@ -2794,7 +2720,6 @@ TEST_CASE(IsolateReload_ChangeInstanceFormat7) {
|
| EXPECT_VALID(lib);
|
| }
|
|
|
| -
|
| // Regression for handle sharing bug: Change the shape of two classes and see
|
| // that their instances don't change class.
|
| TEST_CASE(IsolateReload_ChangeInstanceFormat8) {
|
| @@ -2833,7 +2758,6 @@ TEST_CASE(IsolateReload_ChangeInstanceFormat8) {
|
| EXPECT_STREQ("Instance of 'A' Instance of 'B'", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_ShapeChangeRetainsHash) {
|
| const char* kScript =
|
| "class A{\n"
|
| @@ -2865,7 +2789,6 @@ TEST_CASE(IsolateReload_ShapeChangeRetainsHash) {
|
| EXPECT_STREQ("true", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_StaticTearOffRetainsHash) {
|
| const char* kScript =
|
| "foo() {}\n"
|
| @@ -2892,12 +2815,10 @@ TEST_CASE(IsolateReload_StaticTearOffRetainsHash) {
|
| EXPECT_STREQ("true", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| static bool NothingModifiedCallback(const char* url, int64_t since) {
|
| return false;
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_NoLibsModified) {
|
| const char* kImportScript = "importedFunc() => 'fancy';";
|
| TestCase::AddTestLib("test:lib1", kImportScript);
|
| @@ -2930,7 +2851,6 @@ TEST_CASE(IsolateReload_NoLibsModified) {
|
| EXPECT_STREQ("fancy feast", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| static bool MainModifiedCallback(const char* url, int64_t since) {
|
| if (strcmp(url, "test-lib") == 0) {
|
| return true;
|
| @@ -2938,7 +2858,6 @@ static bool MainModifiedCallback(const char* url, int64_t since) {
|
| return false;
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_MainLibModified) {
|
| const char* kImportScript = "importedFunc() => 'fancy';";
|
| TestCase::AddTestLib("test:lib1", kImportScript);
|
| @@ -2971,7 +2890,6 @@ TEST_CASE(IsolateReload_MainLibModified) {
|
| EXPECT_STREQ("fancy pants", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| static bool ImportModifiedCallback(const char* url, int64_t since) {
|
| if (strcmp(url, "test:lib1") == 0) {
|
| return true;
|
| @@ -2979,7 +2897,6 @@ static bool ImportModifiedCallback(const char* url, int64_t since) {
|
| return false;
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_ImportedLibModified) {
|
| const char* kImportScript = "importedFunc() => 'fancy';";
|
| TestCase::AddTestLib("test:lib1", kImportScript);
|
| @@ -3012,7 +2929,6 @@ TEST_CASE(IsolateReload_ImportedLibModified) {
|
| EXPECT_STREQ("bossy pants", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_PrefixImportedLibModified) {
|
| const char* kImportScript = "importedFunc() => 'fancy';";
|
| TestCase::AddTestLib("test:lib1", kImportScript);
|
| @@ -3046,7 +2962,6 @@ TEST_CASE(IsolateReload_PrefixImportedLibModified) {
|
| EXPECT_STREQ("bossy pants", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| static bool ExportModifiedCallback(const char* url, int64_t since) {
|
| if (strcmp(url, "test:exportlib") == 0) {
|
| return true;
|
| @@ -3054,7 +2969,6 @@ static bool ExportModifiedCallback(const char* url, int64_t since) {
|
| return false;
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_ExportedLibModified) {
|
| const char* kImportScript = "export 'test:exportlib';";
|
| TestCase::AddTestLib("test:importlib", kImportScript);
|
| @@ -3090,7 +3004,6 @@ TEST_CASE(IsolateReload_ExportedLibModified) {
|
| EXPECT_STREQ("bossy pants", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_SimpleConstFieldUpdate) {
|
| const char* kScript =
|
| "const value = 'a';\n"
|
| @@ -3113,7 +3026,6 @@ TEST_CASE(IsolateReload_SimpleConstFieldUpdate) {
|
| EXPECT_STREQ("value=b", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_ConstFieldUpdate) {
|
| const char* kScript =
|
| "const value = const Duration(seconds: 1);\n"
|
| @@ -3136,7 +3048,6 @@ TEST_CASE(IsolateReload_ConstFieldUpdate) {
|
| EXPECT_STREQ("value=0:00:02.000000", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_RunNewFieldInitializers) {
|
| const char* kScript =
|
| "class Foo {\n"
|
| @@ -3169,7 +3080,6 @@ TEST_CASE(IsolateReload_RunNewFieldInitializers) {
|
| EXPECT_EQ(7, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_RunNewFieldInitializersReferenceStaticField) {
|
| const char* kScript =
|
| "int myInitialValue = 8 * 7;\n"
|
| @@ -3204,7 +3114,6 @@ TEST_CASE(IsolateReload_RunNewFieldInitializersReferenceStaticField) {
|
| EXPECT_EQ(56, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_RunNewFieldInitializersMutateStaticField) {
|
| const char* kScript =
|
| "int myInitialValue = 8 * 7;\n"
|
| @@ -3243,7 +3152,6 @@ TEST_CASE(IsolateReload_RunNewFieldInitializersMutateStaticField) {
|
| EXPECT_EQ(58, SimpleInvoke(lib, "main"));
|
| }
|
|
|
| -
|
| // When an initializer expression throws, we leave the field as null.
|
| TEST_CASE(IsolateReload_RunNewFieldInitializersThrows) {
|
| const char* kScript =
|
| @@ -3277,7 +3185,6 @@ TEST_CASE(IsolateReload_RunNewFieldInitializersThrows) {
|
| EXPECT_STREQ("true", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| // When an initializer expression has a syntax error, we detect it at reload
|
| // time.
|
| TEST_CASE(IsolateReload_RunNewFieldInitializersSyntaxError) {
|
| @@ -3312,7 +3219,6 @@ TEST_CASE(IsolateReload_RunNewFieldInitializersSyntaxError) {
|
| EXPECT_ERROR(lib, "......");
|
| }
|
|
|
| -
|
| // When an initializer expression has a syntax error, we detect it at reload
|
| // time.
|
| TEST_CASE(IsolateReload_RunNewFieldInitializersSyntaxError2) {
|
| @@ -3349,7 +3255,6 @@ TEST_CASE(IsolateReload_RunNewFieldInitializersSyntaxError2) {
|
| EXPECT_ERROR(lib, "......");
|
| }
|
|
|
| -
|
| // When an initializer expression has a syntax error, we detect it at reload
|
| // time.
|
| TEST_CASE(IsolateReload_RunNewFieldInitializersSyntaxError3) {
|
| @@ -3386,7 +3291,6 @@ TEST_CASE(IsolateReload_RunNewFieldInitializersSyntaxError3) {
|
| EXPECT_ERROR(lib, "......");
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_RunNewFieldInitialiazersSuperClass) {
|
| const char* kScript =
|
| "class Super {\n"
|
| @@ -3427,7 +3331,6 @@ TEST_CASE(IsolateReload_RunNewFieldInitialiazersSuperClass) {
|
| EXPECT_STREQ("right", SimpleInvokeStr(lib, "main"));
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_TypedefToNotTypedef) {
|
| const char* kScript =
|
| "typedef bool Predicate(dynamic x);\n"
|
| @@ -3452,7 +3355,6 @@ TEST_CASE(IsolateReload_TypedefToNotTypedef) {
|
| "Typedef class cannot be redefined to be a non-typedef class");
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_NotTypedefToTypedef) {
|
| const char* kScript =
|
| "class Predicate {\n"
|
| @@ -3476,7 +3378,6 @@ TEST_CASE(IsolateReload_NotTypedefToTypedef) {
|
| EXPECT_ERROR(result, "Class cannot be redefined to be a typedef class");
|
| }
|
|
|
| -
|
| TEST_CASE(IsolateReload_TypedefAddParameter) {
|
| const char* kScript =
|
| "typedef bool Predicate(dynamic x);\n"
|
|
|