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

Side by Side Diff: tests/standalone/debugger/basic_debugger_test.dart

Issue 12796012: Use random debug port in basic_debugger_test. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 9 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
« no previous file with comments | « no previous file | tests/standalone/debugger/debug_lib.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 4
5 // This test forks a second vm process that runs this dart script as 5 // This test forks a second vm process that runs this dart script as
6 // a debug target. 6 // a debug target.
7 // Run this test with option --wire to see the json messages sent 7 // Run this test with option --wire to see the json messages sent
8 // between the processes. 8 // between the processes.
9 // Run this test with option --verbose to see the stdout and stderr output 9 // Run this test with option --verbose to see the stdout and stderr output
10 // of the debug target process. 10 // of the debug target process.
11 11
12 import "debug_lib.dart"; 12 import "debug_lib.dart";
13 import "dart:io";
14 import "dart:math";
15
16 var debugPort;
17 var retries = 0;
18 var random = new Random();
hausner 2013/03/28 00:31:21 Does this generate a different random number each
Tom Ball 2013/03/28 18:19:43 Updated to use current time in milliseconds as see
13 19
14 bar(x) { 20 bar(x) {
15 print(x); 21 print(x);
16 } 22 }
17 23
18 foo(i) { 24 foo(i) {
19 bar("baz"); 25 bar("baz");
20 print(i); 26 print(i);
21 } 27 }
22 28
23 main() { 29 void runTest() {
24 if (RunScript(testScript)) return; 30 if (RunScript(testScript, debugPort)) return;
25 print("Hello from debuggee"); 31 print("Hello from debuggee");
26 foo(42); 32 foo(42);
27 print("Hello again"); 33 print("Hello again");
28 } 34 }
29 35
36 void main() {
hausner 2013/03/28 00:31:21 It might be more convenient to put this functional
Tom Ball 2013/03/28 18:19:43 Done -- this reverted all changes to this specific
37 var options = new Options();
38 if (options.arguments.contains("--debuggee")) {
39 runTest();
40 } else {
41 // Pick a port in the upper half of the port number range.
42 debugPort = random.nextInt(32000) + 32000;
43 print('using debug port $debugPort ...');
44 ServerSocket.bind('127.0.0.1', debugPort).then((ServerSocket s) {
45 s.close();
46 runTest();
47 },
48 onError: (e) {
49 if (++retries >= 3) {
50 print('unable to find unused port: $e');
51 return -1;
52 } else {
53 // Retry with another random port.
54 main();
55 }
56 });
57 }
58 }
30 59
31 // Expected debugger events and commands. 60 // Expected debugger events and commands.
32 var testScript = [ 61 var testScript = [
33 Breakpoint(), // Expect a breakpoint event. 62 Breakpoint(), // Expect a breakpoint event.
34 MatchFrame(0, "main"), // Top frame in trace is function "main". 63 MatchFrame(0, "main"), // Top frame in trace is function "main".
35 Step(), 64 Step(),
36 Breakpoint(function: "main"), 65 Breakpoint(function: "main"),
37 SetBreakpoint(15), // Set breakpoint a line 15, in function bar. 66 SetBreakpoint(21), // Set breakpoint a line 21, in function bar.
38 Resume(), 67 Resume(),
39 Breakpoint(function: "bar"), 68 Breakpoint(function: "bar"),
40 MatchFrames(["bar", "foo", "main"]), 69 MatchFrames(["bar", "foo", "runTest", "main"]),
41 MatchFrame(1, "foo"), 70 MatchFrame(1, "foo"),
42 Resume(), 71 Resume(),
43 ]; 72 ];
OLDNEW
« no previous file with comments | « no previous file | tests/standalone/debugger/debug_lib.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698