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

Side by Side Diff: tools/migration/lib/src/fork.dart

Issue 2987223002: Add a script to run the tests in a migration block. (Closed)
Patch Set: Merge branch 'master' into run-tests Created 3 years, 4 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
« no previous file with comments | « tools/migration/bin/run_tests.dart ('k') | tools/migration/pubspec.yaml » ('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) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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 import 'dart:io'; 5 import 'dart:io';
6 6
7 import 'package:path/path.dart' as p; 7 import 'package:path/path.dart' as p;
8 8
9 import 'io.dart'; 9 import 'io.dart';
10 import 'log.dart'; 10 import 'log.dart';
11 import 'test_directories.dart'; 11 import 'test_directories.dart';
12 import 'validate.dart'; 12 import 'validate.dart';
13 13
14 int findFork(List<Fork> forks, String description) {
15 var matches = <int>[];
16
17 for (var i = 0; i < forks.length; i++) {
18 if (forks[i].twoPath.contains(description)) matches.add(i);
19 }
20
21 if (matches.isEmpty) {
22 print('Could not find a test matching "${bold(description)}".');
23 return null;
24 } else if (matches.length == 1) {
25 return matches.first;
26 } else {
27 print('Description "${bold(description)}" is ambiguous. Could be any of:');
28 for (var i in matches) {
29 print("- ${forks[i].twoPath.replaceAll(description, bold(description))}");
30 }
31
32 print("Please use a more precise description.");
33 return null;
34 }
35 }
36
37 /// Loads all of the unforked test files.
38 ///
39 /// Creates an list of [Fork]s, ordered by their destination paths. Handles
40 /// tests that only appear in one fork or the other, or both.
41 List<Fork> scanTests() {
42 var tests = <String, Fork>{};
43
44 for (var fromDir in fromRootDirs) {
45 var twoDir = toTwoDirectory(fromDir);
46 for (var path in listFiles(fromDir)) {
47 var fromPath = p.relative(path, from: testRoot);
48 var twoPath = p.join(twoDir, p.relative(fromPath, from: fromDir));
49
50 tests.putIfAbsent(twoPath, () => new Fork(twoPath));
51 }
52 }
53
54 // Include tests that have already been migrated too so we can show what
55 // works remains to be done in them.
56 for (var dir in twoRootDirs) {
57 for (var path in listFiles(dir)) {
58 var twoPath = p.relative(path, from: testRoot);
59 tests.putIfAbsent(twoPath, () => new Fork(twoPath));
60 }
61 }
62
63 var sorted = tests.values.toList();
64 sorted.sort((a, b) => a.twoPath.compareTo(b.twoPath));
65 return sorted;
66 }
67
14 /// Tracks one test and the various forked locations where it may appear. 68 /// Tracks one test and the various forked locations where it may appear.
15 /// 69 ///
16 /// * "One" refers to the original Dart 1.0 location of the test: language/, 70 /// * "One" refers to the original Dart 1.0 location of the test: language/,
17 /// corelib/, etc. 71 /// corelib/, etc.
18 /// 72 ///
19 /// * "Strong" is the DDC fork of the file: language_strong, etc. 73 /// * "Strong" is the DDC fork of the file: language_strong, etc.
20 /// 74 ///
21 /// * "Two" is the migrated 2.0 destination location: language_2, etc. 75 /// * "Two" is the migrated 2.0 destination location: language_2, etc.
22 class Fork { 76 class Fork {
23 final String twoPath; 77 final String twoPath;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 } 165 }
112 166
113 // See what work is left to be done in the migrated file. 167 // See what work is left to be done in the migrated file.
114 if (twoExists) { 168 if (twoExists) {
115 validateFile(twoPath, twoSource, todos); 169 validateFile(twoPath, twoSource, todos);
116 } 170 }
117 171
118 return todos; 172 return todos;
119 } 173 }
120 } 174 }
OLDNEW
« no previous file with comments | « tools/migration/bin/run_tests.dart ('k') | tools/migration/pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698