| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 a dart script as | 5 // This test forks a second vm process that runs a dart script as |
| 6 // a debug target, single stepping through the entire program, and | 6 // a debug target, single stepping through the entire program, and |
| 7 // recording each breakpoint. At the end, a coverage map of the source | 7 // recording each breakpoint. At the end, a coverage map of the source |
| 8 // is printed. | 8 // is printed. |
| 9 // | 9 // |
| 10 // Usage: dart coverage.dart [--wire] [--verbose] target_script.dart | 10 // Usage: dart coverage.dart [--wire] [--verbose] target_script.dart |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 print(url); | 97 print(url); |
| 98 tokenCounts.forEach((tp, bpCount) { | 98 tokenCounts.forEach((tp, bpCount) { |
| 99 int lineNumber = tokenPosToLine[tp]; | 99 int lineNumber = tokenPosToLine[tp]; |
| 100 var lineCount = lineCounts[lineNumber]; | 100 var lineCount = lineCounts[lineNumber]; |
| 101 // Remember maximum breakpoint count of all tokens in this line. | 101 // Remember maximum breakpoint count of all tokens in this line. |
| 102 if (lineCount == null || lineCount < bpCount) { | 102 if (lineCount == null || lineCount < bpCount) { |
| 103 lineCounts[lineNumber] = bpCount; | 103 lineCounts[lineNumber] = bpCount; |
| 104 } | 104 } |
| 105 }); | 105 }); |
| 106 | 106 |
| 107 String srcPath = new Path(Uri.parse(url).path).toNativePath(); | 107 String srcPath = Uri.parse(url).toFilePath(); |
| 108 List lines = new File(srcPath).readAsLinesSync(); | 108 List lines = new File(srcPath).readAsLinesSync(); |
| 109 for (int line = 1; line <= lines.length; line++) { | 109 for (int line = 1; line <= lines.length; line++) { |
| 110 String prefix = " "; | 110 String prefix = " "; |
| 111 if (lineCounts.containsKey(line)) { | 111 if (lineCounts.containsKey(line)) { |
| 112 prefix = lineCounts[line].toString(); | 112 prefix = lineCounts[line].toString(); |
| 113 StringBuffer b = new StringBuffer(); | 113 StringBuffer b = new StringBuffer(); |
| 114 for (int i = prefix.length; i < 6; i++) b.write(" "); | 114 for (int i = prefix.length; i < 6; i++) b.write(" "); |
| 115 b.write(prefix); | 115 b.write(prefix); |
| 116 prefix = b.toString(); | 116 prefix = b.toString(); |
| 117 } | 117 } |
| (...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 539 targetOpts.add(str); | 539 targetOpts.add(str); |
| 540 break; | 540 break; |
| 541 } | 541 } |
| 542 } | 542 } |
| 543 | 543 |
| 544 Process.start(options.executable, targetOpts).then((Process process) { | 544 Process.start(options.executable, targetOpts).then((Process process) { |
| 545 process.stdin.close(); | 545 process.stdin.close(); |
| 546 debugger = new Debugger(process); | 546 debugger = new Debugger(process); |
| 547 }); | 547 }); |
| 548 } | 548 } |
| OLD | NEW |