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

Unified Diff: runtime/vm/isolate_reload_test.cc

Issue 2160953005: Add some tests related to type equality after reload. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: . Created 4 years, 5 months 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/isolate_reload_test.cc
diff --git a/runtime/vm/isolate_reload_test.cc b/runtime/vm/isolate_reload_test.cc
index 6f36ba0aee90c2523d04a7b8e3f8a59e421ece82..fe35bd82e9c937e153c681e146e692b32e1c72b8 100644
--- a/runtime/vm/isolate_reload_test.cc
+++ b/runtime/vm/isolate_reload_test.cc
@@ -544,6 +544,104 @@ TEST_CASE(IsolateReload_Generics) {
}
+TEST_CASE(IsolateReload_TypeIdentity) {
+ const char* kScript =
+ "import 'test:isolate_reload_helper';\n"
+ "class T { }\n"
+ "getType() => T;\n"
+ "main() {\n"
+ " var oldType = getType();\n"
+ " reloadTest();\n"
+ " var newType = getType();\n"
+ " return identical(oldType, newType).toString();\n"
+ "}\n";
+
+ Dart_Handle lib = TestCase::LoadTestScript(kScript, NULL);
+ EXPECT_VALID(lib);
+
+ const char* kReloadScript =
+ "import 'test:isolate_reload_helper';\n"
+ "class T extends Stopwatch { }\n"
+ "getType() => T;\n"
+ "main() {\n"
+ " var oldType = getType();\n"
+ " reloadTest();\n"
+ " var newType = getType();\n"
+ " return identical(oldType, newType).toString();\n"
+ "}\n";
+
+ TestCase::SetReloadTestScript(kReloadScript);
+
+ EXPECT_STREQ("true", SimpleInvokeStr(lib, "main"));
+}
+
+
+TEST_CASE(IsolateReload_TypeIdentityGeneric) {
+ const char* kScript =
+ "import 'test:isolate_reload_helper';\n"
+ "class T<G> { }\n"
+ "getType() => new T<int>().runtimeType;\n"
+ "main() {\n"
+ " var oldType = getType();\n"
+ " reloadTest();\n"
+ " var newType = getType();\n"
+ " return identical(oldType, newType).toString();\n"
+ "}\n";
+
+ Dart_Handle lib = TestCase::LoadTestScript(kScript, NULL);
+ EXPECT_VALID(lib);
+
+ const char* kReloadScript =
+ "import 'test:isolate_reload_helper';\n"
+ "class T<G> extends Stopwatch { }\n"
+ "getType() => new T<int>().runtimeType;\n"
+ "main() {\n"
+ " var oldType = getType();\n"
+ " reloadTest();\n"
+ " var newType = getType();\n"
+ " return identical(oldType, newType).toString();\n"
+ "}\n";
+
+ TestCase::SetReloadTestScript(kReloadScript);
+
+ EXPECT_STREQ("true", SimpleInvokeStr(lib, "main"));
+}
+
+
+TEST_CASE(IsolateReload_TypeIdentityParameter) {
+ const char* kScript =
+ "import 'dart:mirrors';\n"
+ "import 'test:isolate_reload_helper';\n"
+ "class T<G> { }\n"
+ "getTypeVar() => reflectType(T).typeVariables[0];\n"
+ "main() {\n"
+ " var oldType = getTypeVar();\n"
+ " reloadTest();\n"
+ " var newType = getTypeVar();\n"
+ " return (oldType == newType).toString();\n"
+ "}\n";
+
+ Dart_Handle lib = TestCase::LoadTestScript(kScript, NULL);
+ EXPECT_VALID(lib);
+
+ const char* kReloadScript =
+ "import 'dart:mirrors';\n"
+ "import 'test:isolate_reload_helper';\n"
+ "class T<G> extends Stopwatch { }\n"
+ "getTypeVar() => reflectType(T).typeVariables[0];\n"
+ "main() {\n"
+ " var oldType = getTypeVar();\n"
+ " reloadTest();\n"
+ " var newType = getTypeVar();\n"
+ " return (oldType == newType).toString();\n"
+ "}\n";
+
+ TestCase::SetReloadTestScript(kReloadScript);
+
+ EXPECT_STREQ("true", SimpleInvokeStr(lib, "main"));
+}
+
+
TEST_CASE(IsolateReload_MixinChanged) {
const char* kScript =
"class Mixin1 {\n"
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698