Chromium Code Reviews| Index: runtime/observatory/tests/service/next_through_for_loop_with_break_and_continue_test.dart |
| diff --git a/runtime/observatory/tests/service/next_through_for_loop_with_break_and_continue_test.dart b/runtime/observatory/tests/service/next_through_for_loop_with_break_and_continue_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..2ffd5508354116d4adcd199935cbf275d2e336fc |
| --- /dev/null |
| +++ b/runtime/observatory/tests/service/next_through_for_loop_with_break_and_continue_test.dart |
| @@ -0,0 +1,66 @@ |
| +import 'test_helper.dart'; |
|
Kevin Millikin (Google)
2017/02/08 15:37:52
License header.
jensj
2017/02/13 14:04:16
Done.
|
| +import 'service_test_common.dart'; |
| + |
| +const int LINE_A = 8; |
| +const String file = "next_through_for_loop_with_break_and_continue_test.dart"; |
| + |
| +code() { |
| + int count = 0; |
| + for(int i = 0; i < 42; ++i) { |
| + if (i == 2) { |
| + continue; |
| + } |
| + if (i == 3) { |
| + break; |
| + } |
| + count++; |
| + } |
| + print(count); |
| +} |
| + |
| +List<String> stops = []; |
| +List<String> expected = [ |
| + // Initialization, loop start, first iteration |
| + "$file:${LINE_A+0}:13", |
| + "$file:${LINE_A+1}:13", |
| + "$file:${LINE_A+1}:20", |
| + "$file:${LINE_A+2}:11", |
| + "$file:${LINE_A+5}:11", |
| + "$file:${LINE_A+8}:10", |
| + |
| + // Second iteration of loop: Full run |
| + "$file:${LINE_A+1}:26", |
| + "$file:${LINE_A+1}:20", |
| + "$file:${LINE_A+2}:11", |
| + "$file:${LINE_A+5}:11", |
| + "$file:${LINE_A+8}:10", |
| + |
| + // Third iteration of loop: continue |
| + "$file:${LINE_A+1}:26", |
| + "$file:${LINE_A+1}:20", |
| + "$file:${LINE_A+2}:11", |
| + "$file:${LINE_A+3}:7", |
| + |
| + // Forth iteration of loop: break |
| + "$file:${LINE_A+1}:26", |
| + "$file:${LINE_A+1}:20", |
| + "$file:${LINE_A+2}:11", |
| + "$file:${LINE_A+5}:11", |
| + "$file:${LINE_A+6}:7", |
| + |
| + // End |
| + "$file:${LINE_A+10}:3", |
| + "$file:${LINE_A+11}:1" |
| +]; |
| + |
| +var tests = [ |
| + hasPausedAtStart, |
| + setBreakpointAtLine(LINE_A), |
| + runStepThroughProgramRecordingStops(stops), |
| + checkRecordedStops(stops, expected) |
| +]; |
| + |
| +main(args) { |
| + runIsolateTestsSynchronous(args, tests, |
| + testeeConcurrent: code, pause_on_start: true, pause_on_exit: true); |
| +} |