Chromium Code Reviews| Index: tests/lib/mirrors/invocation_fuzz_test.dart |
| diff --git a/tests/lib/mirrors/invocation_fuzz_test.dart b/tests/lib/mirrors/invocation_fuzz_test.dart |
| index 4d81cf8526e83c7a6c17bb76a25c5dd4d0251841..01b7744ee99171957652a181295cfc081f244ac6 100644 |
| --- a/tests/lib/mirrors/invocation_fuzz_test.dart |
| +++ b/tests/lib/mirrors/invocation_fuzz_test.dart |
| @@ -10,7 +10,6 @@ library test.invoke_natives; |
| import 'dart:mirrors'; |
| import 'dart:async'; |
| -import 'package:expect/expect.dart'; |
| // Methods to be skipped, by qualified name. |
| var blacklist = [ |
| @@ -26,11 +25,15 @@ var blacklist = [ |
| // These prevent the test from exiting. |
| 'dart.async._scheduleAsyncCallback', |
| 'dart.async._setTimerFactoryClosure', |
| - |
| 'dart.isolate._startMainIsolate', |
| 'dart.isolate._startIsolate', |
| 'dart.io.sleep', |
| 'dart.io.HttpServer.HttpServer.listenOn', |
| + new RegExp(r'dart.io.*'), /// smi: ok |
| + |
| + // Runtime exceptions we can't catch. |
| + 'dart.isolate._isolateScheduleImmediate', |
| + 'dart.io._Timer._createTimer', /// smi: ok |
| // These either cause the VM to segfault or throw uncatchable API errors. |
| // TODO(15274): Fix them and remove from blacklist. |
| @@ -43,7 +46,7 @@ var blacklist = [ |
| 'dart.io._FileSystemWatcher._listenOnSocket', |
| 'dart.io.SystemEncoding.decode', |
| 'dart.io.SystemEncoding.encode', |
| - 'dart.core._Bigint._mulAdd', // TODO(regis): Is this an intrinsic issue? |
| + 'dart.core.StringBuffer.toString', /// emptyarray: ok |
| ]; |
| bool isBlacklisted(Symbol qualifiedSymbol) { |
| @@ -68,7 +71,8 @@ checkMethod(MethodMirror m, ObjectMirror target, [origin]) { |
| if (m.isRegularMethod) { |
| task.action = |
| - () => target.invoke(m.simpleName, new List(m.parameters.length)); |
| + () => target.invoke(m.simpleName, |
| + new List.filled(m.parameters.length, fuzzArgument)); |
| } else if (m.isGetter) { |
| task.action = |
| () => target.getField(m.simpleName); |
| @@ -107,8 +111,9 @@ checkClass(classMirror) { |
| task.name = MirrorSystem.getName(m.qualifiedName); |
| task.action = () { |
| - var instance = classMirror.newInstance(m.constructorName, |
| - new List(m.parameters.length)); |
| + var instance = classMirror.newInstance( |
| + m.constructorName, |
| + new List.filled(m.parameters.length, fuzzArgument)); |
| checkInstance(instance, task.name); |
| }; |
| queue.add(task); |
| @@ -137,7 +142,7 @@ doOneTask() { |
| } |
| var task = queue.removeLast(); |
| - print(task.name); |
| + //print(task.name); |
|
regis
2014/09/22 16:20:43
Remove commented out line?
rmacnak
2014/09/22 22:42:12
Uncommenting so this is on for the bot.
|
| try { |
| task.action(); |
| } catch(e) {} |
| @@ -149,13 +154,21 @@ doOneTask() { |
| testZone.createTimer(Duration.ZERO, doOneTask); |
| } |
| +var fuzzArgument; |
| + |
| main([args]) { |
| + fuzzArgument = null; |
| + fuzzArgument = 1; /// smi: ok |
| + fuzzArgument = false; /// false: ok |
| + fuzzArgument = 'string'; /// string: ok |
| + fuzzArgument = new List(0); /// emptyarray: ok |
|
regis
2014/09/22 16:20:43
Do I understand correctly that we can now name mul
rmacnak
2014/09/22 22:42:12
Yep
|
| + |
| currentMirrorSystem().libraries.values.forEach(checkLibrary); |
| var valueObjects = |
| [true, false, null, |
| 0, 0xEFFFFFF, 0xFFFFFFFF, 0xFFFFFFFFFFFFFFFF, |
| - "foo", 'blåbærgrød', 'Îñţérñåţîöñåļîžåţîờñ']; |
| + "foo", 'blåbærgrød', 'Îñţérñåţîöñåļîžåţîờñ', "𝄞", #symbol]; |
| valueObjects.forEach((v) => checkInstance(reflect(v), 'value object')); |
| uncaughtErrorHandler(self, parent, zone, error, stack) {}; |