Index: tools/migration/bin/migrate_batch.dart |
diff --git a/tools/migration/bin/migrate_batch.dart b/tools/migration/bin/migrate_batch.dart |
index 67952664b7ba525e324ceb9ae59a77060b8c67af..cb96e0950c3b993604b733aa33def596e2130e49 100644 |
--- a/tools/migration/bin/migrate_batch.dart |
+++ b/tools/migration/bin/migrate_batch.dart |
@@ -11,11 +11,12 @@ |
import 'dart:io'; |
import 'package:path/path.dart' as p; |
-import 'package:status_file/status_file.dart'; |
import 'package:migration/src/fork.dart'; |
import 'package:migration/src/io.dart'; |
import 'package:migration/src/log.dart'; |
+import 'package:migration/src/migrate_statuses.dart'; |
+import 'package:migration/src/test_directories.dart'; |
const simpleDirs = const ["corelib", "language", "lib"]; |
@@ -43,23 +44,21 @@ void main(List<String> arguments) { |
if (startIndex == null || endIndex == null) exit(1); |
- var first = tests[startIndex].twoPath; |
- var last = tests[endIndex].twoPath; |
+ tests = tests.sublist(startIndex, endIndex + 1); |
- // Make the range half-inclusive to simplify the math below. |
- endIndex++; |
- |
- if (endIndex - startIndex == 0) { |
+ if (tests.isEmpty) { |
print(bold("No tests in range.")); |
return; |
} |
- print("Migrating ${bold(endIndex - startIndex)} tests from ${bold(first)} " |
+ var s = tests.length == 1 ? "" : "s"; |
+ var first = tests.first.twoPath; |
+ var last = tests.last.twoPath; |
+ print("Migrating ${bold(tests.length)} test$s from ${bold(first)} " |
"to ${bold(last)}..."); |
print(""); |
var allTodos = <String, List<String>>{}; |
- tests = tests.sublist(startIndex, endIndex); |
var migratedTests = 0; |
var unmigratedTests = 0; |
for (var test in tests) { |
@@ -72,18 +71,9 @@ void main(List<String> arguments) { |
} |
} |
- // Print status file entries. |
- var statusFileEntries = new StringBuffer(); |
- var statusFiles = loadStatusFiles(); |
- for (var statusFile in statusFiles) { |
- printStatusFileEntries(statusFileEntries, tests, statusFile); |
- } |
- |
- new File("statuses.migration") |
- .writeAsStringSync(statusFileEntries.toString()); |
- print("Wrote relevant test status file entries to 'statuses.migration'."); |
+ migrateStatusEntries(tests); |
- // Tell the user what's left TODO. |
+ // Tell the user what's left to do. |
print(""); |
var summary = ""; |
@@ -106,37 +96,6 @@ void main(List<String> arguments) { |
} |
} |
-/// Returns a [String] of the relevant status file entries associated with the |
-/// tests in [tests] found in [statusFile]. |
-void printStatusFileEntries( |
- StringBuffer statusFileEntries, List<Fork> tests, StatusFile statusFile) { |
- var filteredStatusFile = new StatusFile(statusFile.path); |
- var testNames = <String>[]; |
- for (var test in tests) { |
- testNames.add(test.twoPath.split("/").last.split(".")[0]); |
- } |
- for (var section in statusFile.sections) { |
- StatusSection currentSection; |
- for (var entry in section.entries) { |
- for (var testName in testNames) { |
- if (entry.path.contains(testName)) { |
- if (currentSection == null) { |
- currentSection = new StatusSection(section.condition); |
- } |
- currentSection.entries.add(entry); |
- } |
- } |
- } |
- if (currentSection != null) { |
- filteredStatusFile.sections.add(currentSection); |
- } |
- } |
- if (!filteredStatusFile.isEmpty) { |
- statusFileEntries.writeln("Entries for status file ${statusFile.path}:"); |
- statusFileEntries.writeln(filteredStatusFile); |
- } |
-} |
- |
int findFork(List<Fork> forks, String description) { |
var matches = <int>[]; |
@@ -167,38 +126,19 @@ int findFork(List<Fork> forks, String description) { |
List<Fork> scanTests() { |
var tests = <String, Fork>{}; |
- addFromDirectory(String fromDir, String twoDir) { |
+ for (var fromDir in fromRootDirs) { |
+ var twoDir = toTwoDirectory(fromDir); |
for (var path in listFiles(fromDir)) { |
var fromPath = p.relative(path, from: testRoot); |
var twoPath = p.join(twoDir, p.relative(fromPath, from: fromDir)); |
- var fork = tests.putIfAbsent(twoPath, () => new Fork(twoPath)); |
- if (fromDir.contains("_strong")) { |
- fork.strongPath = fromPath; |
- } else { |
- fork.onePath = fromPath; |
- } |
+ tests.putIfAbsent(twoPath, () => new Fork(twoPath)); |
} |
} |
- addFromDirectory("corelib", "corelib_2"); |
- addFromDirectory("corelib_strong", "corelib_2"); |
- addFromDirectory("html", "lib_2/html"); |
- addFromDirectory("isolate", "lib_2/isolate"); |
- addFromDirectory("language", "language_2"); |
- addFromDirectory("language_strong", "language_2"); |
- addFromDirectory("lib", "lib_2"); |
- addFromDirectory("lib_strong", "lib_2"); |
- |
// Include tests that have already been migrated too so we can show what |
// works remains to be done in them. |
- const twoDirs = const [ |
- "corelib_2", |
- "lib_2", |
- "language_2", |
- ]; |
- |
- for (var dir in twoDirs) { |
+ for (var dir in twoRootDirs) { |
for (var path in listFiles(dir)) { |
var twoPath = p.relative(path, from: testRoot); |
tests.putIfAbsent(twoPath, () => new Fork(twoPath)); |
@@ -209,23 +149,3 @@ List<Fork> scanTests() { |
sorted.sort((a, b) => a.twoPath.compareTo(b.twoPath)); |
return sorted; |
} |
- |
-List<StatusFile> loadStatusFiles() { |
- var statusFiles = <StatusFile>[]; |
- |
- addStatusFile(String fromDir) { |
- for (var path in listFiles(fromDir, extension: ".status")) { |
- statusFiles.add(new StatusFile.read(path)); |
- } |
- } |
- |
- addStatusFile("corelib"); |
- addStatusFile("corelib_strong"); |
- addStatusFile("html"); |
- addStatusFile("isolate"); |
- addStatusFile("language"); |
- addStatusFile("language_strong"); |
- addStatusFile("lib"); |
- addStatusFile("lib_strong"); |
- return statusFiles; |
-} |