| Index: tests/standalone/debugger/deferred_code_test.dart
|
| ===================================================================
|
| --- tests/standalone/debugger/deferred_code_test.dart (revision 0)
|
| +++ tests/standalone/debugger/deferred_code_test.dart (working copy)
|
| @@ -0,0 +1,46 @@
|
| +// 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.
|
| +
|
| +// Test to verify that a breakpoint can be set in code that is not yet
|
| +// loaded, i.e. in a deferred library.
|
| +//
|
| +// This test forks a second vm process that runs this dart script as
|
| +// a debug target.
|
| +// Run this test with option --wire to see the json messages sent
|
| +// between the processes.
|
| +// Run this test with option --verbose to see the stdout and stderr output
|
| +// of the debug target process.
|
| +
|
| +import "debug_lib.dart";
|
| +import "deferred_code_lib.dart" deferred as D;
|
| +
|
| +
|
| +main(List<String> arguments) {
|
| + if (RunScript(testScript, arguments)) return;
|
| + var loaded = false;
|
| + print("Hello from debuggee");
|
| + D.loadLibrary().then((_) {
|
| + loaded = true;
|
| + print("Done loading deferred library");
|
| + D.stopTheBuck();
|
| + });
|
| + print("main terminates");
|
| +}
|
| +
|
| +
|
| +// Expected debugger events and commands.
|
| +var testScript = [
|
| + MatchFrame(0, "main"), // Top frame in trace is function "main".
|
| + SetBreakpoint(22), // Breakpoint just before call to loadLibrary().
|
| + Resume(),
|
| + // Set BP in deferred library code before the loadLibrary() call is executed.
|
| + MatchFrame(0, "main"),
|
| + MatchLine(22),
|
| + MatchLocals({"loaded": "false"}),
|
| + SetBreakpoint(10, url: "deferred_code_lib.dart"),
|
| + Resume(),
|
| + MatchFrame(0, "stopTheBuck"), // Expect to be stopped in deferred library code.
|
| + // MatchLine(10), // Line matching only works for the main script.
|
| + Resume(),
|
| +];
|
|
|