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

Unified Diff: runtime/bin/vmservice/observatory/test/gc_test.dart

Issue 460523002: Even easier observatory testing. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 4 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
Index: runtime/bin/vmservice/observatory/test/gc_test.dart
===================================================================
--- runtime/bin/vmservice/observatory/test/gc_test.dart (revision 39035)
+++ runtime/bin/vmservice/observatory/test/gc_test.dart (working copy)
@@ -1,35 +1,35 @@
-// 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.
+import 'package:observatory/service_io.dart';
+import 'test_helper.dart';
-library gc_test;
+import 'dart:async';
-import 'test_helper.dart';
-import 'package:observatory/service_io.dart';
-import 'package:unittest/unittest.dart';
+void script() {
+ List<int> data;
+ var grow;
+ grow = (int iterations, int size, Duration duration) {
+ if (iterations <= 0) {
+ return;
+ }
+ data = new List<int>(size);
+ new Timer(duration, () => grow(iterations - 1, size, duration));
+ };
+ grow(100, 1 << 24, new Duration(seconds: 1));
+}
-import 'dart:io';
+var tests = [
-// Expect at least this many GC events.
-int gcCountdown = 3;
+(Isolate isolate) {
+ Completer completer = new Completer();
+ // Expect at least this many GC events.
+ int gcCountdown = 3;
+ isolate.vm.events.stream.listen((ServiceEvent event) {
+ if (event.eventType == 'GC' && --gcCountdown == 0) {
+ completer.complete();
+ }
+ });
+ return completer.future;
+},
-void onEvent(ServiceEvent event) {
- if (event.eventType != 'GC') {
- return;
- }
- if (--gcCountdown == 0) {
- exit(0);
- }
-}
+];
-main() {
- String script = 'gc_script.dart';
- var process = new TestLauncher(script);
- process.launch().then((port) {
- String addr = 'ws://localhost:$port/ws';
- new WebSocketVM(new WebSocketVMTarget(addr)).get('vm')
- .then((VM vm) {
- vm.events.stream.listen(onEvent);
- });
- });
-}
+main(args) => runIsolateTests(args, tests, testeeConcurrent: script);
« no previous file with comments | « runtime/bin/vmservice/observatory/test/gc_script.dart ('k') | runtime/bin/vmservice/observatory/test/metrics_script.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698