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

Unified Diff: dart/runtime/tests/vm/dart/isolate_mirror_local_test.dart

Issue 14173005: Update dart:mirrors to use Symbol. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Also use _symbol_dev.Symbol.getName in dart2js Created 7 years, 8 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 | « dart/runtime/lib/symbol_patch.dart ('k') | dart/runtime/vm/bootstrap.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dart/runtime/tests/vm/dart/isolate_mirror_local_test.dart
diff --git a/dart/runtime/tests/vm/dart/isolate_mirror_local_test.dart b/dart/runtime/tests/vm/dart/isolate_mirror_local_test.dart
index e72f5a138f6071d23383bef3892205a2ce081ec5..6d1827db74bbd9696512d7fdd6b9fd4fb42dd4c7 100644
--- a/dart/runtime/tests/vm/dart/isolate_mirror_local_test.dart
+++ b/dart/runtime/tests/vm/dart/isolate_mirror_local_test.dart
@@ -49,7 +49,8 @@ _stringCompare(String a, String b) => a.compareTo(b);
sort(list) => list.sort(_stringCompare);
String buildMethodString(MethodMirror func) {
- var result = '${func.simpleName} return(${func.returnType.simpleName})';
+ var result = '${MirrorSystem.getName(func.simpleName)} '
+ 'return(${MirrorSystem.getName(func.returnType.simpleName)})';
if (func.isPrivate) {
result = '$result private';
}
@@ -90,7 +91,8 @@ String buildMethodString(MethodMirror func) {
}
String buildVariableString(VariableMirror variable) {
- var result = '${variable.simpleName} type(${variable.type.simpleName})';
+ var result = '${MirrorSystem.getName(variable.simpleName)} '
+ 'type(${MirrorSystem.getName(variable.type.simpleName)})';
if (variable.isPrivate) {
result = '$result private';
}
@@ -107,27 +109,30 @@ String buildVariableString(VariableMirror variable) {
}
void testRootLibraryMirror(LibraryMirror lib_mirror) {
- Expect.equals('isolate_mirror_local_test', lib_mirror.simpleName);
- Expect.equals('isolate_mirror_local_test', lib_mirror.qualifiedName);
+ Expect.equals(const Symbol('isolate_mirror_local_test'),
+ lib_mirror.simpleName);
+ Expect.equals(const Symbol('isolate_mirror_local_test'),
+ lib_mirror.qualifiedName);
Expect.equals(null, lib_mirror.owner);
Expect.isFalse(lib_mirror.isPrivate);
Expect.isTrue(lib_mirror.url.contains('isolate_mirror_local_test.dart'));
- Expect.equals("LibraryMirror on 'isolate_mirror_local_test'",
- lib_mirror.toString());
+ // TODO(ahe): toString() test disabled for now as Symbols are 100% opaque.
+ // Expect.equals("LibraryMirror on 'isolate_mirror_local_test'",
+ // lib_mirror.toString());
// Test library invocation by calling function(123).
Expect.equals(0, global_var);
- lib_mirror.invokeAsync('function', [123]).then(
+ lib_mirror.invokeAsync(const Symbol('function'), [123]).then(
(InstanceMirror retval) {
Expect.equals(123, global_var);
- Expect.equals('int', retval.type.simpleName);
+ Expect.equals(const Symbol('int'), retval.type.simpleName);
Expect.isTrue(retval.hasReflectee);
Expect.equals(124, retval.reflectee);
testDone('testRootLibraryMirror');
});
// Check that the members map is complete.
- List keys = lib_mirror.members.keys.toList();
+ List keys = lib_mirror.members.keys.map(MirrorSystem.getName).toList();
sort(keys);
Expect.equals('['
'FuncType, '
@@ -164,7 +169,7 @@ void testRootLibraryMirror(LibraryMirror lib_mirror) {
'$keys');
// Check that the classes map is complete.
- keys = lib_mirror.classes.keys.toList();
+ keys = lib_mirror.classes.keys.map(MirrorSystem.getName).toList();
sort(keys);
Expect.equals('['
'FuncType, '
@@ -176,7 +181,7 @@ void testRootLibraryMirror(LibraryMirror lib_mirror) {
'$keys');
// Check that the functions map is complete.
- keys = lib_mirror.functions.keys.toList();
+ keys = lib_mirror.functions.keys.map(MirrorSystem.getName).toList();
sort(keys);
Expect.equals('['
'_stringCompare, '
@@ -202,17 +207,17 @@ void testRootLibraryMirror(LibraryMirror lib_mirror) {
'$keys');
// Check that the getters map is complete.
- keys = lib_mirror.getters.keys.toList();
+ keys = lib_mirror.getters.keys.map(MirrorSystem.getName).toList();
sort(keys);
Expect.equals('[myVar]', '$keys');
// Check that the setters map is complete.
- keys = lib_mirror.setters.keys.toList();
+ keys = lib_mirror.setters.keys.map(MirrorSystem.getName).toList();
sort(keys);
Expect.equals('[myVar=]', '$keys');
// Check that the variables map is complete.
- keys = lib_mirror.variables.keys.toList();
+ keys = lib_mirror.variables.keys.map(MirrorSystem.getName).toList();
sort(keys);
Expect.equals('['
'exit_port, '
@@ -222,108 +227,114 @@ void testRootLibraryMirror(LibraryMirror lib_mirror) {
'myFunc]',
'$keys');
- ClassMirror cls_mirror = lib_mirror.members['MyClass'];
- ClassMirror generic_cls_mirror = lib_mirror.members['GenericClass'];
+ ClassMirror cls_mirror = lib_mirror.members[const Symbol('MyClass')];
+ ClassMirror generic_cls_mirror =
+ lib_mirror.members[const Symbol('GenericClass')];
// Test function mirrors.
- MethodMirror func = lib_mirror.members['function'];
+ MethodMirror func = lib_mirror.members[const Symbol('function')];
Expect.isTrue(func is MethodMirror);
Expect.equals('function return(int) toplevel static method',
buildMethodString(func));
- func = lib_mirror.members['myVar'];
+ func = lib_mirror.members[const Symbol('myVar')];
Expect.isTrue(func is MethodMirror);
Expect.equals('myVar return(int) toplevel static getter',
buildMethodString(func));
- func = lib_mirror.members['myVar='];
+ func = lib_mirror.members[const Symbol('myVar=')];
Expect.isTrue(func is MethodMirror);
Expect.equals('myVar= return(void) toplevel static setter',
buildMethodString(func));
- func = cls_mirror.members['method'];
+ func = cls_mirror.members[const Symbol('method')];
Expect.isTrue(func is MethodMirror);
Expect.equals('method return(int) method', buildMethodString(func));
- func = cls_mirror.constructors['MyClass'];
+ func = cls_mirror.constructors[const Symbol('MyClass')];
Expect.isTrue(func is MethodMirror);
Expect.equals('MyClass return(MyClass) constructor', buildMethodString(func));
- func = cls_mirror.constructors['MyClass.named'];
+ func = cls_mirror.constructors[const Symbol('MyClass.named')];
Expect.isTrue(func is MethodMirror);
Expect.equals('MyClass.named return(MyClass) constructor',
buildMethodString(func));
- func = generic_cls_mirror.members['method'];
+ func = generic_cls_mirror.members[const Symbol('method')];
Expect.isTrue(func is MethodMirror);
Expect.equals('method return(T) method', buildMethodString(func));
// Test variable mirrors.
- VariableMirror variable = lib_mirror.members['global_var'];
+ VariableMirror variable = lib_mirror.members[const Symbol('global_var')];
Expect.isTrue(variable is VariableMirror);
Expect.equals('global_var type(int) toplevel static',
buildVariableString(variable));
- variable = lib_mirror.members['final_global_var'];
+ variable = lib_mirror.members[const Symbol('final_global_var')];
Expect.isTrue(variable is VariableMirror);
Expect.equals('final_global_var type(int) toplevel static final',
buildVariableString(variable));
- variable = cls_mirror.members['value'];
+ variable = cls_mirror.members[const Symbol('value')];
Expect.isTrue(variable is VariableMirror);
Expect.equals('value type(dynamic) final', buildVariableString(variable));
// Test type variable mirrors.
- var type_var = generic_cls_mirror.members['method'].returnType;
+ var type_var = generic_cls_mirror.members[const Symbol('method')].returnType;
Expect.isTrue(type_var is TypeVariableMirror);
- Expect.equals('GenericClass', type_var.owner.simpleName);
- Expect.equals('Object', type_var.upperBound.simpleName);
+ Expect.equals(const Symbol('GenericClass'), type_var.owner.simpleName);
+ Expect.equals(const Symbol('Object'), type_var.upperBound.simpleName);
// Test typedef mirrors.
- var typedef_mirror = lib_mirror.members['myFunc'].type;
+ var typedef_mirror = lib_mirror.members[const Symbol('myFunc')].type;
Expect.isTrue(typedef_mirror is TypedefMirror);
- Expect.equals('isolate_mirror_local_test', typedef_mirror.owner.simpleName);
+ Expect.equals(const Symbol('isolate_mirror_local_test'),
+ typedef_mirror.owner.simpleName);
// Test function type mirrors.
var func_cls_mirror = typedef_mirror.referent;
Expect.isTrue(func_cls_mirror is FunctionTypeMirror);
- Expect.equals('void (dart.core.String)', func_cls_mirror.simpleName);
- Expect.equals('void', func_cls_mirror.returnType.simpleName);
+ // Expect.equals('void (dart.core.String)', func_cls_mirror.simpleName);
+ Expect.equals(const Symbol('void'), func_cls_mirror.returnType.simpleName);
}
void testLibrariesMap(Map libraries) {
// Just look for a couple of well-known libs.
- LibraryMirror core_lib = libraries['dart.core'];
+ LibraryMirror core_lib = libraries[const Symbol('dart.core')];
Expect.isTrue(core_lib is LibraryMirror);
- LibraryMirror mirror_lib = libraries['dart.mirrors'];
+ LibraryMirror mirror_lib = libraries[const Symbol('dart.mirrors')];
Expect.isTrue(mirror_lib is LibraryMirror);
// Lookup an interface from a library and make sure it is sane.
- ClassMirror list_intf = core_lib.members['List'];
+ ClassMirror list_intf = core_lib.members[const Symbol('List')];
Expect.isTrue(list_intf is ClassMirror);
- Expect.equals('List', list_intf.simpleName);
- Expect.equals('dart.core.List', list_intf.qualifiedName);
+ Expect.equals(const Symbol('List'), list_intf.simpleName);
+ Expect.equals(const Symbol('dart.core.List'), list_intf.qualifiedName);
Expect.isFalse(list_intf.isPrivate);
- Expect.equals('Object', list_intf.superclass.simpleName);
- Expect.equals('dart.core', list_intf.owner.simpleName);
+ Expect.equals(const Symbol('Object'), list_intf.superclass.simpleName);
+ Expect.equals(const Symbol('dart.core'), list_intf.owner.simpleName);
Expect.isTrue(list_intf.isClass);
- Expect.equals('Iterable', list_intf.superinterfaces[0].simpleName);
- Expect.equals("ClassMirror on 'List'", list_intf.toString());
+ Expect.equals(const Symbol('Iterable'),
+ list_intf.superinterfaces[0].simpleName);
+ // TODO(ahe): toString() test disabled for now as Symbols are 100% opaque.
+ // Expect.equals("ClassMirror on 'List'", list_intf.toString());
// Lookup a class from a library and make sure it is sane.
- ClassMirror oom_cls = core_lib.members['OutOfMemoryError'];
+ ClassMirror oom_cls = core_lib.members[const Symbol('OutOfMemoryError')];
Expect.isTrue(oom_cls is ClassMirror);
- Expect.equals('OutOfMemoryError', oom_cls.simpleName);
- Expect.equals('dart.core.OutOfMemoryError', oom_cls.qualifiedName);
+ Expect.equals(const Symbol('OutOfMemoryError'), oom_cls.simpleName);
+ Expect.equals(const Symbol('dart.core.OutOfMemoryError'),
+ oom_cls.qualifiedName);
Expect.isFalse(oom_cls.isPrivate);
- Expect.equals('Object', oom_cls.superclass.simpleName);
+ Expect.equals(const Symbol('Object'), oom_cls.superclass.simpleName);
Expect.isTrue(oom_cls.defaultFactory == null);
- Expect.equals('dart.core', oom_cls.owner.simpleName);
+ Expect.equals(const Symbol('dart.core'), oom_cls.owner.simpleName);
Expect.isTrue(oom_cls.isClass);
- Expect.equals('Error', oom_cls.superinterfaces[0].simpleName);
- Expect.equals("ClassMirror on 'OutOfMemoryError'",
- oom_cls.toString());
+ Expect.equals(const Symbol('Error'), oom_cls.superinterfaces[0].simpleName);
+ // TODO(ahe): toString() test disabled for now as Symbols are 100% opaque.
+ // Expect.equals("ClassMirror on 'OutOfMemoryError'",
+ // oom_cls.toString());
testDone('testLibrariesMap');
}
@@ -331,21 +342,21 @@ void testMirrorSystem(MirrorSystem mirrors) {
Expect.isTrue(mirrors.isolate.debugName.contains('main'));
testRootLibraryMirror(mirrors.isolate.rootLibrary);
testLibrariesMap(mirrors.libraries);
- Expect.equals('void', mirrors.voidType.simpleName);
- Expect.equals('dynamic', mirrors.dynamicType.simpleName);
+ Expect.equals(const Symbol('void'), mirrors.voidType.simpleName);
+ Expect.equals(const Symbol('dynamic'), mirrors.dynamicType.simpleName);
testDone('testMirrorSystem');
}
void testIntegerInstanceMirror(InstanceMirror mirror) {
- Expect.equals('int', mirror.type.simpleName);
+ Expect.equals(const Symbol('int'), mirror.type.simpleName);
Expect.isTrue(mirror.hasReflectee);
Expect.equals(1001, mirror.reflectee);
Expect.equals("InstanceMirror on <1001>", mirror.toString());
// Invoke (mirror + mirror).
- mirror.invokeAsync('+', [ mirror ]).then(
+ mirror.invokeAsync(const Symbol('+'), [ mirror ]).then(
(InstanceMirror retval) {
- Expect.equals('int', retval.type.simpleName);
+ Expect.equals(const Symbol('int'), retval.type.simpleName);
Expect.isTrue(retval.hasReflectee);
Expect.equals(2002, retval.reflectee);
testDone('testIntegerInstanceMirror');
@@ -353,16 +364,16 @@ void testIntegerInstanceMirror(InstanceMirror mirror) {
}
void testStringInstanceMirror(InstanceMirror mirror) {
- Expect.equals('String', mirror.type.simpleName);
+ Expect.equals(const Symbol('String'), mirror.type.simpleName);
Expect.isTrue(mirror.hasReflectee);
Expect.equals('This\nis\na\nString', mirror.reflectee);
Expect.equals("InstanceMirror on <'This\\nis\\na\\nString'>",
mirror.toString());
// Invoke mirror[0].
- mirror.invokeAsync('[]', [ 0 ]).then(
+ mirror.invokeAsync(const Symbol('[]'), [ 0 ]).then(
(InstanceMirror retval) {
- Expect.equals('String', retval.type.simpleName);
+ Expect.equals(const Symbol('String'), retval.type.simpleName);
Expect.isTrue(retval.hasReflectee);
Expect.equals('T', retval.reflectee);
testDone('testStringInstanceMirror');
@@ -370,7 +381,7 @@ void testStringInstanceMirror(InstanceMirror mirror) {
}
void testBoolInstanceMirror(InstanceMirror mirror) {
- Expect.equals('bool', mirror.type.simpleName);
+ Expect.equals(const Symbol('bool'), mirror.type.simpleName);
Expect.isTrue(mirror.hasReflectee);
Expect.equals(true, mirror.reflectee);
Expect.equals("InstanceMirror on <true>", mirror.toString());
@@ -379,7 +390,7 @@ void testBoolInstanceMirror(InstanceMirror mirror) {
void testNullInstanceMirror(InstanceMirror mirror) {
// TODO(turnidge): This is returning the wrong class. Fix it.
- Expect.equals('Object', mirror.type.simpleName);
+ Expect.equals(const Symbol('Object'), mirror.type.simpleName);
Expect.isTrue(mirror.hasReflectee);
Expect.equals(null, mirror.reflectee);
Expect.equals("InstanceMirror on <null>", mirror.toString());
@@ -418,23 +429,25 @@ void testCustomInstanceMirror(InstanceMirror mirror) {
saw_exception = true;
}
Expect.isFalse(saw_exception);
- Expect.equals("InstanceMirror on instance of 'MyClass'", mirror.toString());
+ // TODO(ahe): toString() test disabled for now as Symbols are 100% opaque.
+ // Expect.equals("InstanceMirror on instance of 'MyClass'",
+ // mirror.toString());
ClassMirror cls = mirror.type;
Expect.isTrue(cls is ClassMirror);
- Expect.equals('MyClass', cls.simpleName);
- Expect.equals('MySuperClass', cls.superclass.simpleName);
+ Expect.equals(const Symbol('MyClass'), cls.simpleName);
+ Expect.equals(const Symbol('MySuperClass'), cls.superclass.simpleName);
Expect.isTrue(cls.defaultFactory == null);
- Expect.equals('isolate_mirror_local_test', cls.owner.simpleName);
+ Expect.equals(const Symbol('isolate_mirror_local_test'), cls.owner.simpleName);
Expect.isTrue(cls.isClass);
- Expect.equals('MyInterface', cls.superinterfaces[0].simpleName);
- Expect.equals("ClassMirror on 'MyClass'",
- cls.toString());
+ Expect.equals(const Symbol('MyInterface'), cls.superinterfaces[0].simpleName);
+ // TODO(ahe): toString() test disabled for now as Symbols are 100% opaque.
+ // Expect.equals("ClassMirror on 'MyClass'", cls.toString());
// Invoke mirror.method(1000).
- mirror.invokeAsync('method', [ 1000 ]).then(
+ mirror.invokeAsync(const Symbol('method'), [ 1000 ]).then(
(InstanceMirror retval) {
- Expect.equals('int', retval.type.simpleName);
+ Expect.equals(const Symbol('int'), retval.type.simpleName);
Expect.isTrue(retval.hasReflectee);
Expect.equals(1017, retval.reflectee);
testDone('testCustomInstanceMirror');
@@ -460,14 +473,14 @@ void methodWithError() {
void testMirrorErrors(MirrorSystem mirrors) {
LibraryMirror lib_mirror = mirrors.isolate.rootLibrary;
- lib_mirror.invokeAsync('methodWithException', [])
+ lib_mirror.invokeAsync(const Symbol('methodWithException'), [])
.then((InstanceMirror retval) {
// Should not reach here.
Expect.isTrue(false);
})
.catchError((exc) {
Expect.isTrue(exc.error is MirroredUncaughtExceptionError);
- Expect.equals('MyException',
+ Expect.equals(const Symbol('MyException'),
exc.error.exception_mirror.type.simpleName);
Expect.equals('MyException: from methodWithException',
exc.error.exception_string);
@@ -476,7 +489,7 @@ void testMirrorErrors(MirrorSystem mirrors) {
testDone('testMirrorErrors1');
});
- lib_mirror.invokeAsync('methodWithError', [])
+ lib_mirror.invokeAsync(const Symbol('methodWithError'), [])
.then((InstanceMirror retval) {
// Should not reach here.
Expect.isTrue(false);
@@ -490,7 +503,7 @@ void testMirrorErrors(MirrorSystem mirrors) {
// TODO(turnidge): When we call a method that doesn't exist, we
// should probably call noSuchMethod(). I'm adding this test to
// document the current behavior in the meantime.
- lib_mirror.invokeAsync('methodNotFound', [])
+ lib_mirror.invokeAsync(const Symbol('methodNotFound'), [])
.then((InstanceMirror retval) {
// Should not reach here.
Expect.isTrue(false);
« no previous file with comments | « dart/runtime/lib/symbol_patch.dart ('k') | dart/runtime/vm/bootstrap.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698