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

Unified Diff: runtime/bin/vmservice/observatory/tests/ui/inspector.dart

Issue 545343002: Add a manual test for inspecting types that have a special VM implementation. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 3 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 | runtime/bin/vmservice/observatory/tests/ui/inspector.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/bin/vmservice/observatory/tests/ui/inspector.dart
diff --git a/runtime/bin/vmservice/observatory/tests/ui/inspector.dart b/runtime/bin/vmservice/observatory/tests/ui/inspector.dart
new file mode 100644
index 0000000000000000000000000000000000000000..31811a0074009313121327e82bcb839cc7a5983b
--- /dev/null
+++ b/runtime/bin/vmservice/observatory/tests/ui/inspector.dart
@@ -0,0 +1,143 @@
+library manual_inspector_test;
turnidge 2014/09/08 16:32:59 Do we need a copyright notice? Perhaps we should
rmacnak 2014/09/08 17:25:57 Added and likewise for the retainingPath test.
+
+import 'dart:isolate';
+import 'dart:mirrors';
+import 'dart:profiler';
+import 'dart:typed_data';
+
+class A <T> {}
+class B <S extends num> {}
+
+var array;
+var bigint;
+var blockClean;
+var blockCopying;
+var blockFull;
+var blockFullWithChain;
+var boundedType;
+var capability;
+var counter;
+var expando;
+var float32x4;
+var float64;
+var float64x2;
+var gauge;
+var growableList;
+var int32x4;
+var isolate;
+var map;
+var mint;
+var mirrorClass;
+var mirrorClosure;
+var mirrorInstance;
+var mirrorReference;
+var portReceive;
+var portSend;
+var regex;
+var smi;
+var stacktrace;
+var string;
+var stringLatin1;
+var stringSnowflake;
+var stringUnicode;
+var theFalse;
+var theNull;
+var theTrue;
+var type;
+var typeParameter;
+var typedData;
+var uninitialized = new Object();
+var userTag;
+var weakProperty;
+
+extractPrivateField(obj, name) {
+ return reflect(obj).getField(MirrorSystem.getSymbol(name, reflect(obj).type.owner)).reflectee;
+}
+
+genStacktrace() {
+ try {
+ num.parse(',');
+ } catch (e, s) {
+ return s;
+ }
+}
+
+genCleanBlock() {
+ block(x) => x;
+ return block;
+}
+
+genCopyingBlock() {
+ final x = 'I could be copied down';
+ block() => x;
+ return block;
+}
+
+genFullBlock() {
+ var x = 0;
+ block() => x++;
+ return block;
+}
+
+genFullBlockWithChain() {
+ var x = 0;
+ outer() {
+ var y = 0;
+ block() => x++ + y++;
+ return block;
+ }
+ return outer;
+}
+
+secondMain(msg) { }
+
+main() {
+ print("Started main");
+
+ array = new List(1);
+ bigint = 1 << 65;
+ blockClean = genCleanBlock();
+ blockCopying = genCopyingBlock();
+ blockFull = genFullBlock();
+ blockFullWithChain = genFullBlockWithChain();
+ boundedType = extractPrivateField(reflect(new B<int>()).type.typeVariables.single, '_reflectee');
+ counter = new Counter("CounterName", "Counter description");
+ expando = new Expando("expando-name");
+ expando[array] = 'The weakly associated value';
+ float32x4 = new Float32x4.zero();
+ float64 = 3.14;
+ float64x2 = new Float64x2.zero();
+ gauge = new Gauge("GuageName", "Guage description", 0.0, 100.0);
turnidge 2014/09/08 16:32:58 You have two typos on this line: Guage -> Gauge.
rmacnak 2014/09/08 17:25:57 Fixed
+ growableList = new List();
+ int32x4 = new Int32x4(0,0,0,0);
+ map = { "x":3, "y":4 };
+ mint = 1 << 32;
+ mirrorClass = reflectClass(Object);
+ mirrorClosure = reflect(blockFull);
+ mirrorInstance = reflect("a reflectee");
+ mirrorReference = extractPrivateField(mirrorClass, '_reflectee');
+ portReceive = new RawReceivePort();
+ regex = new RegExp("a*b+c");
+ smi = 7;
+ stacktrace = genStacktrace();
+ string = "Hello";
+ stringLatin1 = "blåbærgrød";
+ stringSnowflake = "❄";
+ stringUnicode = "Îñţérñåţîöñåļîžåţîờñ";
+ theFalse = false;
+ theNull = null;
+ theTrue = true;
+ type = String;
+ typeParameter = extractPrivateField(reflectClass(A).typeVariables.single, '_reflectee');
+ typedData = extractPrivateField(new ByteData(64), '_typedData');
+ userTag = new UserTag("Example tag name");
+ weakProperty = extractPrivateField(expando, '_data').firstWhere((e) => e != null);
+
+ Isolate.spawn(secondMain, "Hello").then((otherIsolate) {
+ isolate = otherIsolate;
+ portSend = otherIsolate.controlPort;
+ capability = otherIsolate.terminateCapability;
+ });
+
+ print("Finished main");
+}
« no previous file with comments | « no previous file | runtime/bin/vmservice/observatory/tests/ui/inspector.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698