blob: 701e60315af45488f31b27f534c3bf540837f1a9 [file] [log] [blame]
// Copyright (c) 2016, 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.
// VMOptions=--error_on_bad_type --error_on_bad_override
import 'package:observatory/models.dart' as M;
import 'package:observatory/service_io.dart';
import 'package:unittest/unittest.dart';
import 'service_test_common.dart';
import 'test_helper.dart';
import 'dart:developer' as developer;
void doDebugger() {
developer.debugger(message: "foo", when: true);
}
bool isClosureFunctionsList(NamedField field) {
return field.name == 'closure_functions_';
}
var tests = [
// Initial data fetch and verify we've hit the breakpoint.
(Isolate isolate) async {
await isolate.rootLibrary.load();
var script = isolate.rootLibrary.scripts[0];
await script.load();
await hasStoppedAtBreakpoint(isolate);
// Sanity check.
expect(isolate.pauseEvent is M.PauseBreakpointEvent, isTrue);
},
// Get object_store.
(Isolate isolate) async {
var object_store = await isolate.getObjectStore();
expect(object_store.runtimeType, equals(ObjectStore));
// Sanity check.
expect(object_store.fields.length, greaterThanOrEqualTo(1));
// Checking Closures.
expect(object_store.fields.singleWhere(isClosureFunctionsList), isNotNull);
expect(object_store.fields.singleWhere(isClosureFunctionsList).value.isList, isTrue);
}
];
main(args) => runIsolateTestsSynchronous(args, tests,
testeeConcurrent: doDebugger);