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

Unified Diff: tests/lib/mirrors/invocation_fuzz_test.dart

Issue 246173002: Revert "Mark private functions in dart:* that are native or constructors as not visible (omitted fr… (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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 | « tests/lib/lib.status ('k') | tests/lib/mirrors/invoke_natives_fuzz_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
deleted file mode 100644
index aa0660aa7999f56970b185b19b8a5b7c32fdd94e..0000000000000000000000000000000000000000
--- a/tests/lib/mirrors/invocation_fuzz_test.dart
+++ /dev/null
@@ -1,162 +0,0 @@
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// This test reflectively enumerates all the methods in the system and tries to
-// invoke them will all nulls. This may result in Dart exceptions or hangs, but
-// should never result in crashes or JavaScript exceptions.
-
-library test.invoke_natives;
-
-import 'dart:mirrors';
-import 'dart:async';
-import 'package:expect/expect.dart';
-
-// Methods to be skipped, by qualified name.
-var blacklist = [
- // Don't recurse on this test.
- 'test.invoke_natives',
-
- // Don't exit the test pre-maturely.
- 'dart.io.exit',
-
- // Don't run blocking io calls.
- new RegExp(r".*Sync$"),
-
- // These prevent the test from exiting.
- 'dart.async._scheduleAsyncCallback',
- 'dart.async._setTimerFactoryClosure',
-
- 'dart.isolate._startIsolate',
- 'dart.io.sleep',
- 'dart.io.HttpServer.HttpServer.listenOn',
-
- // These either cause the VM to segfault or throw uncatchable API errors.
- // TODO(15274): Fix them and remove from blacklist.
- 'dart.io._IOService.dispatch',
- new RegExp(r'.*_RandomAccessFile.*'),
- 'dart.io._StdIOUtils._socketType',
- 'dart.io._StdIOUtils._getStdioOutputStream',
- 'dart.io._Filter.newZLibInflateFilter',
- 'dart.io._Filter.newZLibDeflateFilter',
- 'dart.io._FileSystemWatcher._listenOnSocket',
-];
-
-bool isBlacklisted(Symbol qualifiedSymbol) {
- var qualifiedString = MirrorSystem.getName(qualifiedSymbol);
- for (var pattern in blacklist) {
- if (qualifiedString.contains(pattern)) return true;
- }
- return false;
-}
-
-class Task {
- var name;
- var action;
-}
-var queue = new List();
-
-checkMethod(MethodMirror m, ObjectMirror target, [origin]) {
- if (isBlacklisted(m.qualifiedName)) return;
-
- var task = new Task();
- task.name = '${MirrorSystem.getName(m.qualifiedName)} from $origin';
-
- if (m.isRegularMethod) {
- task.action =
- () => target.invoke(m.simpleName, new List(m.parameters.length));
- } else if (m.isGetter) {
- task.action =
- () => target.getField(m.simpleName);
- } else if (m.isSetter) {
- task.action =
- () => target.setField(m.simpleName, null);
- } else if (m.isConstructor) {
- return;
- } else {
- throw "Unexpected method kind";
- }
-
- queue.add(task);
-}
-
-checkInstance(instanceMirror, origin) {
- ClassMirror klass = instanceMirror.type;
- while (klass != null) {
- instanceMirror.type.declarations.values
- .where((d) => d is MethodMirror && !d.isStatic)
- .forEach((m) => checkMethod(m, instanceMirror, origin));
- klass = klass.superclass;
- }
-}
-
-checkClass(classMirror) {
- classMirror.declarations.values
- .where((d) => d is MethodMirror && d.isStatic)
- .forEach((m) => checkMethod(m, classMirror));
-
- classMirror.declarations.values
- .where((d) => d is MethodMirror && d.isConstructor)
- .forEach((m) {
- if (isBlacklisted(m.qualifiedName)) return;
- var task = new Task();
- task.name = MirrorSystem.getName(m.qualifiedName);
-
- task.action = () {
- var instance = classMirror.newInstance(m.constructorName,
- new List(m.parameters.length));
- checkInstance(instance, task.name);
- };
- queue.add(task);
- });
-}
-
-checkLibrary(libraryMirror) {
- print(libraryMirror.simpleName);
- if (isBlacklisted(libraryMirror.qualifiedName)) return;
-
- libraryMirror.declarations.values
- .where((d) => d is ClassMirror)
- .forEach(checkClass);
-
- libraryMirror.declarations.values
- .where((d) => d is MethodMirror)
- .forEach((m) => checkMethod(m, libraryMirror));
-}
-
-var testZone;
-
-doOneTask() {
- if (queue.length == 0) {
- print('Done');
- return;
- }
-
- var task = queue.removeLast();
- print(task.name);
- try {
- task.action();
- } catch(e) {}
-
- // Register the next task in a timer callback so as to yield to async code
- // scheduled in the current task. This isn't necessary for the test itself,
- // but is helpful when trying to figure out which function is responsible for
- // a crash.
- testZone.createTimer(Duration.ZERO, doOneTask);
-}
-
-main([args]) {
- currentMirrorSystem().libraries.values.forEach(checkLibrary);
-
- var valueObjects =
- [true, false, null,
- 0, 0xEFFFFFF, 0xFFFFFFFF, 0xFFFFFFFFFFFFFFFF,
- "foo", 'blåbærgrød', 'Îñţérñåţîöñåļîžåţîờñ'];
- valueObjects.forEach((v) => checkInstance(reflect(v), 'value object'));
-
- uncaughtErrorHandler(self, parent, zone, error, stack) {};
- var zoneSpec =
- new ZoneSpecification(handleUncaughtError: uncaughtErrorHandler);
- testZone = Zone.current.fork(specification: zoneSpec);
- testZone.createTimer(Duration.ZERO, doOneTask);
-}
« no previous file with comments | « tests/lib/lib.status ('k') | tests/lib/mirrors/invoke_natives_fuzz_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698