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

Unified Diff: tools/migration/bin/migrate_batch.dart

Issue 2989033002: Migrate status file entries when migrating files. Yay! (Closed)
Patch Set: Remove old TODO. Created 3 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/status_file/lib/status_file.dart ('k') | tools/migration/lib/src/editable_status_file.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
-}
« no previous file with comments | « pkg/status_file/lib/status_file.dart ('k') | tools/migration/lib/src/editable_status_file.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698