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

Side by Side Diff: runtime/observatory/tests/service/native_metrics_test.dart

Issue 1120133002: Rework error handling in the service protocol and in Observatory. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 // VMOptions=--compile-all --error_on_bad_type --error_on_bad_override 4 // VMOptions=--compile-all --error_on_bad_type --error_on_bad_override
5 5
6 import 'package:observatory/service_io.dart'; 6 import 'package:observatory/service_io.dart';
7 import 'package:unittest/unittest.dart'; 7 import 'package:unittest/unittest.dart';
8 import 'test_helper.dart'; 8 import 'test_helper.dart';
9 9
10 import 'dart:profiler'; 10 import 'dart:profiler';
11 11
12 void script() { 12 void script() {
13 var counter = new Counter('a.b.c', 'description'); 13 var counter = new Counter('a.b.c', 'description');
14 Metrics.register(counter); 14 Metrics.register(counter);
15 counter.value = 1234.5; 15 counter.value = 1234.5;
16 } 16 }
17 17
18 var tests = [ 18 var tests = [
19 19
20 (Isolate isolate) => 20 (Isolate isolate) async {
21 isolate.refreshNativeMetrics().then((Map metrics) { 21 Map metrics = await isolate.refreshNativeMetrics();
22 expect(metrics.length, greaterThan(1)); 22 expect(metrics.length, greaterThan(1));
23 expect(metrics.length, greaterThan(1)); 23 expect(metrics.length, greaterThan(1));
24 var foundOldHeapCapacity = metrics.values.any((m) => 24 var foundOldHeapCapacity = metrics.values.any(
25 m.name == 'heap.old.capacity'); 25 (m) => m.name == 'heap.old.capacity');
26 expect(foundOldHeapCapacity, equals(true)); 26 expect(foundOldHeapCapacity, equals(true));
27 }), 27 },
28 28
29 (Isolate isolate) => 29 (Isolate isolate) async {
30 isolate.invokeRpc('getIsolateMetric', 30 var params = { 'metricId': 'metrics/native/heap.old.used' };
31 { 'metricId': 'metrics/native/heap.old.used' }) 31 ServiceMetric counter =
32 .then((ServiceMetric counter) { 32 await isolate.invokeRpc('getIsolateMetric', params);
33 expect(counter.type, equals('Counter')); 33 expect(counter.type, equals('Counter'));
34 expect(counter.name, equals('heap.old.used')); 34 expect(counter.name, equals('heap.old.used'));
35 }), 35 },
36 36
37 (Isolate isolate) => 37 (Isolate isolate) async {
38 isolate.invokeRpc('getIsolateMetric', 38 bool caughtException;
39 { 'metricId': 'metrics/native/doesnotexist' }) 39 try {
40 .then((DartError err) { 40 await isolate.invokeRpc('getIsolateMetric',
41 expect(err is DartError, isTrue); 41 { 'metricId': 'metrics/native/doesnotexist' });
42 }), 42 expect(false, isTrue, reason:'Unreachable');
43 } on ServerRpcException catch (e) {
44 caughtException = true;
45 expect(e.code, equals(ServerRpcException.kInvalidParams));
46 expect(e.message,
47 "getIsolateMetric: invalid 'metricId' "
48 "parameter: metrics/native/doesnotexist");
49 }
50 expect(caughtException, isTrue);
51 },
43 52
44 ]; 53 ];
45 54
46 main(args) => runIsolateTests(args, tests, testeeBefore: script); 55 main(args) => runIsolateTests(args, tests, testeeBefore: script);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698