Chromium Code Reviews| 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"); |
| +} |