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

Unified Diff: runtime/observatory/tests/service/get_vm_timeline_rpc_test.dart

Issue 1441683005: Fast path Dart Timeline events with no arguments to avoid calling JSON.encode (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 1 month 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 | sdk/lib/developer/timeline.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/observatory/tests/service/get_vm_timeline_rpc_test.dart
diff --git a/runtime/observatory/tests/service/get_vm_timeline_rpc_test.dart b/runtime/observatory/tests/service/get_vm_timeline_rpc_test.dart
index 2d7f8ac619136d01d34d67ada87076cf067e15c0..a1f48066be54dc5cf04e805bf307816b63ec94e6 100644
--- a/runtime/observatory/tests/service/get_vm_timeline_rpc_test.dart
+++ b/runtime/observatory/tests/service/get_vm_timeline_rpc_test.dart
@@ -11,7 +11,7 @@ import 'test_helper.dart';
primeTimeline() {
Timeline.startSync('apple');
- Timeline.instantSync('ISYNC');
+ Timeline.instantSync('ISYNC', arguments: {'fruit': 'banana'});
Timeline.finishSync();
TimelineTask task = new TimelineTask();
task.start('TASK1');
@@ -32,6 +32,26 @@ bool eventsContains(List<Map> events, String phase, String name) {
return false;
}
+void allEventsHaveIsolateNumber(List<Map> events) {
+ for (Map event in events) {
+ if (event['ph'] == 'M') {
+ // Skip meta-data events.
+ continue;
+ }
+ if (event['name'] == 'Runnable' && event['ph'] == 'i') {
+ // Skip Runnable events which don't have an isolate.
+ continue;
+ }
+ if (event['cat'] == 'VM') {
+ // Skip VM category events which don't have an isolate.
+ continue;
+ }
+ Map arguments = event['args'];
+ expect(arguments, new isInstanceOf<Map>());
+ expect(arguments['isolateNumber'], new isInstanceOf<String>());
+ }
+}
+
var tests = [
(VM vm) async {
Map result = await vm.invokeRpcNoUpgrade('_getVMTimeline', {});
@@ -39,6 +59,8 @@ var tests = [
expect(result['traceEvents'], new isInstanceOf<List>());
List<Map> dartEvents = filterForDartEvents(result['traceEvents']);
expect(dartEvents.length, equals(5));
+ allEventsHaveIsolateNumber(dartEvents);
+ allEventsHaveIsolateNumber(result['traceEvents']);
expect(eventsContains(dartEvents, 'I', 'ISYNC'), isTrue);
expect(eventsContains(dartEvents, 'X', 'apple'), isTrue);
expect(eventsContains(dartEvents, 'b', 'TASK1'), isTrue);
« no previous file with comments | « no previous file | sdk/lib/developer/timeline.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698