Remove tools we no longer need to manage status files

Change-Id: Ia106c48cdbecaa8eec722ee11cbc9b6813989477
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96860
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
diff --git a/pkg/compiler/tool/status_files/log_parser.dart b/pkg/compiler/tool/status_files/log_parser.dart
deleted file mode 100644
index 43df6f4..0000000
--- a/pkg/compiler/tool/status_files/log_parser.dart
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library status_files.log_parser;
-
-import 'record.dart';
-
-final RegExp _stackRE = new RegExp('#[0-9]* ');
-final RegExp _assertionFileRE = new RegExp(r"'file:[^']*/sdk/pkg/");
-final String _assertionFileReplacement = r"'file:*/pkg/";
-
-/// Extracts test records from a test.py [log].
-List<Record> parse(String log) {
-  var records = <Record>[];
-  var suite;
-  var test;
-  var config;
-  var expected;
-  var actual;
-  var reason;
-  var fullReason; // lines before stack, usually multiline reason.
-  var stack = <String>[];
-  var paragraph = []; // collector of lines for fullReason.
-  bool reproIsNext = false;
-  for (var line in log.split('\n')) {
-    if (line.startsWith("FAILED: ")) {
-      int lastSlash = line.lastIndexOf('/');
-      // Some tests (particularly the html tests) have "group names" with spaces
-      // in them. So we find the test name by the space just before the last
-      // slash.
-      int space = line.substring(0, lastSlash).lastIndexOf(' ');
-      test = line.substring(space + 1).trim();
-      suite = '';
-      var slash = test.indexOf('/');
-      if (slash > 0) {
-        suite = test.substring(0, slash).trim();
-        test = test.substring(slash + 1).trim();
-      }
-      config = line
-          .substring("FAILED: ".length, space)
-          .replaceAll('release_ia32', '')
-          .replaceAll('release_x64', '');
-    }
-    if (line.startsWith("Expected: ")) {
-      expected = line.substring("Expected: ".length).trim();
-    }
-    if (line.startsWith("Actual: ")) {
-      actual = line.substring("Actual: ".length).trim();
-    }
-    if (line.startsWith("The compiler crashed:")) {
-      reason = line.substring("The compiler crashed:".length).trim();
-      reason = reason.replaceFirst(_assertionFileRE, _assertionFileReplacement);
-      paragraph.clear();
-    }
-
-    if (line.startsWith(_stackRE)) {
-      stack.add(line);
-      fullReason ??= paragraph.take(5).join('\n');
-      paragraph.clear();
-    } else {
-      paragraph.add(line);
-    }
-
-    if (reproIsNext) {
-      records.add(new Record(suite, test, config, expected, actual, reason,
-          line.trim(), fullReason, stack));
-      suite = test = config = expected = actual = reason = null;
-      stack = [];
-      fullReason = null;
-      paragraph.clear();
-      reproIsNext = false;
-    }
-    if (line.startsWith("--- Re-run this test:")) {
-      reproIsNext = true;
-    }
-  }
-  return records;
-}
diff --git a/pkg/compiler/tool/status_files/rank_stacks.dart b/pkg/compiler/tool/status_files/rank_stacks.dart
deleted file mode 100644
index b0c2c1b..0000000
--- a/pkg/compiler/tool/status_files/rank_stacks.dart
+++ /dev/null
@@ -1,162 +0,0 @@
-// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/*
-Usage:
-
-  $ tools/test.py -m release                         \
-      -c dart2js -r d8 --dart2js-batch --report      \
-      --host-checked                                 \
-      --dart2js_options="--library-root=out/ReleaseX64/dart-sdk/ --use-kernel" \
-      language language_2 corelib corelib_2          \
-      dart2js_native dart2js_extra                   \
-      2>&1 > LOG
-
-  $ sdk/bin/dart pkg/compiler/tool/status_files/rank_stacks.dart LOG > STACKS.txt
-*/
-
-import 'dart:io';
-
-import 'package:args/args.dart';
-
-import 'log_parser.dart';
-import 'record.dart';
-
-int stackPrintLength;
-int howManyStacks;
-
-void die(String why) {
-  print(why);
-  print('Usage:\n'
-      'dart rank_stacks.dart [options] test-logs\n\n'
-      '${argParser.usage}');
-  exit(1);
-}
-
-ArgParser argParser = new ArgParser()
-  ..addOption('stacks',
-      abbr: 's',
-      defaultsTo: '0',
-      help: 'Number of highest ranking stacks to print (0 for all).')
-  ..addOption('length',
-      abbr: 'l', defaultsTo: '12', help: 'Number of stack frames printed.');
-
-int intOption(ArgResults args, String name) {
-  onError(String text) {
-    die("Value '$text' is not an integer. "
-        "Option '$name' requires an integer value.");
-  }
-
-  return int.parse(args[name], onError: onError);
-}
-
-main(args) {
-  List<String> rest;
-  try {
-    var argResults = argParser.parse(args);
-    howManyStacks = intOption(argResults, 'stacks');
-    stackPrintLength = intOption(argResults, 'length');
-    rest = argResults.rest;
-  } catch (e) {
-    die('$e');
-  }
-
-  if (rest.isEmpty) die('No input file.');
-  var records = <Record>[];
-  for (String input in rest) {
-    var uri = Uri.base.resolve(input);
-    var file = new File.fromUri(uri);
-    if (!file.existsSync()) {
-      die("File not found: '$input'.");
-    }
-    String text = file.readAsStringSync();
-    records.addAll(parse(text));
-  }
-
-  var trie = new TrieNode(null, 0);
-  for (var record in records) {
-    enter(record, 0, trie);
-  }
-
-  var leaves = trieLeaves(trie).toList();
-  leaves.sort(compareNodesByCountAndStack);
-  for (var leaf in howManyStacks == 0 ? leaves : leaves.take(howManyStacks)) {
-    print('');
-    var examples = leaf.members.map(fullReasonOf).toSet().toList();
-    examples.sort();
-    print('${leaf.length} of:');
-    for (var example in examples) {
-      var count = leaf.members.where((r) => fullReasonOf(r) == example).length;
-      var countAligned = '$count'.padLeft(6);
-      if (examples.length == 1) countAligned = '     .';
-      var indentedExample = '\t' + example.replaceAll('\n', '\n\t');
-      print('${countAligned}${indentedExample}');
-    }
-
-    for (var line in leaf.members.first.stack.take(stackPrintLength)) {
-      print('  $line');
-    }
-  }
-}
-
-String fullReasonOf(Record r) {
-  // Some records have no matched reason, so default to test status.
-  return r.fullReason ?? r.actual;
-}
-
-int compareNodesByCountAndStack(TrieNode a, TrieNode b) {
-  int r = b.length.compareTo(a.length);
-  if (r != 0) return r;
-  List<String> stackA = a.members.first.stack;
-  List<String> stackB = b.members.first.stack;
-  int lengthA = stackA.length;
-  int lengthB = stackB.length;
-  for (int i = 0; i < lengthA && i < lengthB; i++) {
-    r = stackA[i].compareTo(stackB[i]);
-    if (r != 0) return r;
-  }
-  return lengthA.compareTo(lengthB);
-}
-
-class TrieNode {
-  final int depth;
-  final String key;
-  final Map<String, TrieNode> map = <String, TrieNode>{};
-  final List<Record> members = <Record>[];
-
-  int get length => members.length;
-
-  TrieNode(this.key, this.depth);
-
-  @override
-  String toString() => 'TrieNode(#$length)';
-}
-
-void enter(Record record, int depth, TrieNode root) {
-  // Cluster on printed stack.
-  if (depth >= stackPrintLength || depth >= record.stack.length) {
-    root.members.add(record);
-    return;
-  }
-  var key = record.stack[depth];
-  var node = root.map[key] ??= new TrieNode(key, depth + 1);
-  enter(record, depth + 1, node);
-}
-
-void printTrie(TrieNode node) {
-  var indent = '  ' * node.depth;
-  print('${indent} ${node.length} ${node.key}');
-  for (var key in node.map.keys) {
-    printTrie(node.map[key]);
-  }
-}
-
-trieLeaves(node) sync* {
-  if (node.members.isNotEmpty) {
-    yield node;
-  }
-  for (var v in node.map.values) {
-    yield* trieLeaves(v);
-  }
-}
diff --git a/pkg/compiler/tool/status_files/record.dart b/pkg/compiler/tool/status_files/record.dart
deleted file mode 100644
index cbe52e6..0000000
--- a/pkg/compiler/tool/status_files/record.dart
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// An entry found in the test.py logs corresponding to a test failure.
-///
-/// It stores what suite, test, and configuration was the failure seen at.
-library status_files.record;
-
-class Record implements Comparable<Record> {
-  final String suite;
-  final String test;
-  final String config;
-  final String expected;
-  final String actual;
-  final String repro;
-  final String reason;
-  final String fullReason;
-  final List<String> stack;
-
-  // TODO(sigmund): extract also a failure reason if any (e.g. a stack trace or
-  // error message for crashes).
-
-  bool get isPassing => actual == 'Pass';
-
-  Record(this.suite, this.test, this.config, this.expected, this.actual,
-      this.reason, this.repro, this.fullReason, this.stack);
-
-  @override
-  int compareTo(Record other) {
-    if (suite == null && other.suite != null) return -1;
-    if (suite != null && other.suite == null) return 1;
-    if (test == null && other.test != null) return -1;
-    if (test != null && other.test == null) return 1;
-
-    var suiteDiff = suite.compareTo(other.suite);
-    if (suiteDiff != 0) return suiteDiff;
-
-    if (isPassing && !other.isPassing) return -1;
-    if (!isPassing && other.isPassing) return 1;
-
-    var testDiff = test.compareTo(other.test);
-    if (testDiff != 0) return testDiff;
-    return repro.compareTo(other.repro);
-  }
-
-  @override
-  bool operator ==(covariant Record other) =>
-      suite == other.suite &&
-      test == other.test &&
-      config == other.config &&
-      expected == other.expected &&
-      actual == other.actual &&
-      repro == other.repro;
-}
diff --git a/pkg/compiler/tool/status_files/update_all.dart b/pkg/compiler/tool/status_files/update_all.dart
deleted file mode 100644
index bf09b28..0000000
--- a/pkg/compiler/tool/status_files/update_all.dart
+++ /dev/null
@@ -1,124 +0,0 @@
-// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// Script to update the dart2js status lines for all tests running with the
-// $dart2js_with_kernel test configuration.
-
-import 'dart:io';
-import 'package:args/args.dart';
-import 'update_from_log.dart' as update_script;
-
-const List<String> strongSuites = const <String>[
-  'language_2',
-  'corelib_2',
-];
-
-const List<String> nonStrongSuites = const <String>[
-  'dart2js_native',
-  'dart2js_extra',
-];
-
-main(List<String> args) {
-  ArgParser argParser = new ArgParser(allowTrailingOptions: true)
-    ..addFlag('with-fast-startup')
-    ..addFlag('fast-startup')
-    ..addFlag('strong')
-    ..addFlag('with-checked-mode')
-    ..addFlag('checked-mode')
-    ..addFlag('checked');
-  ArgResults argResults = argParser.parse(args);
-  bool fastStartup =
-      argResults['with-fast-startup'] || argResults['fast-startup'];
-  bool strong = argResults['strong'];
-  bool checkedMode = argResults['with-checked-mode'] ||
-      argResults['checked-mode'] ||
-      argResults['checked'];
-  List<String> suites = argResults.rest;
-  if (suites.isEmpty) {
-    if (strong) {
-      suites = strongSuites;
-    } else {
-      suites = nonStrongSuites;
-    }
-    if (Platform.isWindows) {
-      // TODO(johnniwinther): Running drt seems to be broken on Windows.
-      suites = new List<String>.from(suites)..remove('html');
-    }
-  } else {
-    bool failure = false;
-    for (String suite in suites) {
-      if (strongSuites.contains(suite) && nonStrongSuites.contains(suite)) {
-        print("Unknown suite '$suite'");
-        failure = true;
-      }
-    }
-    if (failure) {
-      exit(1);
-    }
-  }
-
-  Directory tmp = Directory.systemTemp.createTempSync('update_all');
-
-  String python = Platform.isWindows ? 'python.exe' : 'python';
-
-  updateSuiteWithFlags(
-      String name, String suite, String runtime, List<String> args) {
-    if (strong) {
-      name = "$name-strong";
-      args.add('--strong');
-    }
-
-    print("  - $name tests");
-    List<String> testArgs = [
-      './tools/test.py',
-      '-m',
-      'release',
-      '-c',
-      'dart2js',
-      '-r',
-      runtime,
-      '--dart2js-batch',
-      '--dart2js-with-kernel'
-    ];
-    testArgs.addAll(args);
-    testArgs.add(suite);
-    String temp = '${tmp.path}/$suite-$name.txt';
-    ProcessResult result = Process.runSync(python, testArgs);
-    String stdout = result.stdout.toString();
-    new File(temp).writeAsStringSync(stdout);
-    print(temp);
-    update_script.main([name, temp]);
-  }
-
-  updateSuite(String suite) {
-    String runtime = "d8";
-    if (suite == "html") {
-      runtime = "drt";
-    }
-    print("update suite: \u001b[32m$suite\u001b[0m");
-
-    updateSuiteWithFlags(
-        'minified', suite, runtime, ["--minified", "--use-sdk"]);
-    updateSuiteWithFlags('host-checked', suite, runtime, ["--host-checked"]);
-    if (fastStartup) {
-      updateSuiteWithFlags('fast-startup', suite, runtime, ["--fast-startup"]);
-    }
-    if (checkedMode) {
-      updateSuiteWithFlags('checked-mode', suite, runtime, ["--checked"]);
-    }
-  }
-
-  print('build create_sdk');
-  ProcessResult result = Process.runSync(
-      python, ['./tools/build.py', '-m', 'release', 'create_sdk']);
-  if (result.exitCode != 0) {
-    print(result.stdout);
-    print(result.stderr);
-    exit(1);
-  }
-
-  suites.forEach(updateSuite);
-
-  tmp.deleteSync(recursive: true);
-}
diff --git a/pkg/compiler/tool/status_files/update_from_log.dart b/pkg/compiler/tool/status_files/update_from_log.dart
deleted file mode 100644
index 26a6dd0..0000000
--- a/pkg/compiler/tool/status_files/update_from_log.dart
+++ /dev/null
@@ -1,281 +0,0 @@
-// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// Script that updates dart2js status lines automatically for tests under the
-/// '$fasta' configuration.
-///
-/// This script is hardcoded to only support this configuration and relies on
-/// a convention for how the status files are structured, In particular,
-/// every status file for dart2js should have 3 sections:
-///
-///     [ $compiler == dart2js && $fasta && $host_checked ]
-///
-/// and:
-///
-///     [ $compiler == dart2js && $fasta && $minified ]
-///
-/// and:
-///
-///     [ $compiler == dart2js && $fasta && $fast_startup ]
-///
-/// and:
-///
-///     [ $compiler == dart2js && $checked && $fasta ]
-library compiler.status_files.update_from_log;
-
-import 'dart:io';
-
-import 'record.dart';
-import 'log_parser.dart';
-
-final dart2jsConfigurations = {
-  'host-checked': r'[ $compiler == dart2js && $fasta && $host_checked ]',
-  'minified': r'[ $compiler == dart2js && $fasta && $minified ]',
-  'host-checked-strong':
-      r'[ $compiler == dart2js && $fasta && $host_checked && $strong ]',
-  'minified-strong':
-      r'[ $compiler == dart2js && $fasta && $minified && $strong ]',
-  'fast-startup': r'[ $compiler == dart2js && $fast_startup && $fasta ]',
-  'fast-startup-strong':
-      r'[ $compiler == dart2js && $fast_startup && $fasta && $strong ]',
-  'checked-mode': r'[ $compiler == dart2js && $checked && $fasta ]',
-  'checked-mode-strong':
-      r'[ $compiler == dart2js && $checked && $fasta && $strong ]',
-};
-
-final dart2jsStatusFiles = {
-  'language_2': 'tests/language_2/language_2_dart2js.status',
-  // TODO(sigmund,rnystrom): update when corelib_2 gets split into multiple
-  // status files.
-  'corelib_2': 'tests/corelib_2/corelib_2.status',
-  'dart2js_extra': 'tests/compiler/dart2js_extra/dart2js_extra.status',
-  'dart2js_native': 'tests/compiler/dart2js_native/dart2js_native.status',
-};
-
-main(args) {
-  mainInternal(args, dart2jsConfigurations, dart2jsStatusFiles);
-}
-
-/// Note: this is called above and also from
-/// pkg/front_end/tool/status_files/update_from_log.dart
-mainInternal(List<String> args, Map<String, String> configurations,
-    Map<String, String> statusFiles) {
-  if (args.length < 2) {
-    print('usage: update_from_log.dart <mode> log.txt [message-in-quotes]');
-    print('  where mode is one of these values: ${configurations.keys}');
-    exit(1);
-  }
-  var mode = args[0];
-  if (!configurations.containsKey(mode)) {
-    print('invalid mode: $mode, expected one in ${configurations.keys}');
-    exit(1);
-  }
-
-  var uri =
-      Uri.base.resolveUri(new Uri.file(args[1], windows: Platform.isWindows));
-  var file = new File.fromUri(uri);
-  if (!file.existsSync()) {
-    print('file not found: $file');
-    exit(1);
-  }
-
-  var globalReason = args.length > 2 ? args[2] : null;
-  updateLogs(
-      mode, file.readAsStringSync(), configurations, statusFiles, globalReason);
-}
-
-/// Update all status files based on the [log] records when running the compiler
-/// in [mode]. If provided [globalReason] is added as a comment to new test
-/// failures. If not, an automated reason might be extracted from the test
-/// failure message.
-void updateLogs(String mode, String log, Map<String, String> configurations,
-    Map<String, String> statusFiles, String globalReason) {
-  List<Record> records = parse(log);
-  records.sort();
-  var last;
-  ConfigurationInSuiteSection section;
-  for (var record in records) {
-    if (last == record) continue; // ignore duplicates
-    if (section?.suite != record.suite) {
-      section?.update(globalReason);
-      var statusFile = statusFiles[record.suite];
-      if (statusFile == null) {
-        print("No status file for suite '${record.suite}'.");
-        continue;
-      }
-      var condition = configurations[mode];
-      section = ConfigurationInSuiteSection.create(
-          record.suite, mode, statusFile, condition);
-    }
-    section.add(record);
-    last = record;
-  }
-  section?.update(globalReason);
-}
-
-/// Represents an existing entry in the logs.
-class ExistingEntry {
-  final String test;
-  final String status;
-  final bool hasComment;
-
-  ExistingEntry(this.test, this.status, this.hasComment);
-
-  static parse(String line) {
-    var colonIndex = line.indexOf(':');
-    var test = line.substring(0, colonIndex);
-    var status = line.substring(colonIndex + 1).trim();
-    var commentIndex = status.indexOf("#");
-    if (commentIndex != -1) {
-      status = status.substring(0, commentIndex);
-    }
-    return new ExistingEntry(test, status, commentIndex != -1);
-  }
-}
-
-/// Represents a section in a .status file that corresponds to a specific suite
-/// and configuration.
-class ConfigurationInSuiteSection {
-  final String suite;
-  final String _statusFile;
-  final String _contents;
-  final int _begin;
-  final int _end;
-  final List<Record> _records = [];
-
-  ConfigurationInSuiteSection(
-      this.suite, this._statusFile, this._contents, this._begin, this._end);
-
-  /// Add a new test record, indicating that the test status should be updated.
-  void add(Record record) => _records.add(record);
-
-  /// Update the section in the file.
-  ///
-  /// This will reflect the new status lines as recorded in [_records].
-  void update(String providedReason) {
-    int changes = 0;
-    int ignored = 0;
-    var originalEntries = _contents.substring(_begin, _end).split('\n');
-
-    // The algorithm below walks entries in the file and from the log in the
-    // same order: preserving entries that didn't change, and updating entries
-    // where the logs show that the test status changed.
-
-    // Sort the file contents in case the file has been tampered with.
-    originalEntries.sort();
-
-    /// Re-sort records by name (they came sorted by suite and status first, so
-    /// it may be wrong for the merging below).
-    _records.sort((a, b) => a.test.compareTo(b.test));
-
-    var newContents = new StringBuffer();
-    newContents.write(_contents.substring(0, _begin));
-    addFromRecord(Record record) {
-      var reason = providedReason ?? record.reason;
-      var comment = reason != null && reason.isNotEmpty ? ' # ${reason}' : '';
-      newContents.writeln('${record.test}: ${record.actual}$comment');
-    }
-
-    int i = 0, j = 0;
-    while (i < originalEntries.length && j < _records.length) {
-      var existingLine = originalEntries[i];
-      if (existingLine.trim().isEmpty) {
-        i++;
-        continue;
-      }
-      var existing = ExistingEntry.parse(existingLine);
-      var record = _records[j];
-      var compare = existing.test.compareTo(record.test);
-      if (compare < 0) {
-        // Existing test was unaffected, copy the status line.
-        newContents.writeln(existingLine);
-        i++;
-      } else if (compare > 0) {
-        // New entry, if it's a failure, we haven't seen this before and must
-        // add it. If the status says it is passing, we ignore it. We do this
-        // to support making this script idempotent if the patching has already
-        // been done.
-        if (!record.isPassing) {
-          // New failure never seen before
-          addFromRecord(record);
-          changes++;
-        }
-        j++;
-      } else if (existing.status == record.actual) {
-        if (!existing.hasComment && record.reason != null) {
-          addFromRecord(record);
-          changes++;
-        } else {
-          // This also should only happen if the patching has already been done.
-          // We don't complain to make this script idempotent.
-          newContents.writeln(existingLine);
-        }
-        ignored++;
-        i++;
-        j++;
-      } else {
-        changes++;
-        // The status changed, if it is now passing, we omit the entry entirely,
-        // otherwise we use the status from the logs.
-        if (!record.isPassing) {
-          addFromRecord(record);
-        }
-        i++;
-        j++;
-      }
-    }
-
-    for (; i < originalEntries.length; i++) {
-      newContents.writeln(originalEntries[i]);
-    }
-
-    for (; j < _records.length; j++) {
-      changes++;
-      addFromRecord(_records[j]);
-    }
-
-    newContents.write('\n');
-    newContents.write(_contents.substring(_end));
-    new File(_statusFile).writeAsStringSync('$newContents');
-    print("updated '$_statusFile' with $changes changes");
-    if (ignored > 0) {
-      print('  $ignored changes were already applied in the status file.');
-    }
-  }
-
-  static ConfigurationInSuiteSection create(
-      String suite, String mode, String statusFile, String condition) {
-    var contents = new File(statusFile).readAsStringSync();
-    int sectionDeclaration = contents.indexOf(condition);
-    if (sectionDeclaration == -1) {
-      print('error: unable to find condition $condition in $statusFile');
-      exit(1);
-    }
-    int begin = contents.indexOf('\n', sectionDeclaration) + 1;
-    assert(begin != 0);
-    int newlinePos = contents.indexOf('\n', begin + 1);
-    int end = newlinePos;
-    while (true) {
-      if (newlinePos == -1) break;
-      if (newlinePos + 1 < contents.length) {
-        if (contents[newlinePos + 1] == '[') {
-          // We've found the end of the section
-          break;
-        } else if (contents[newlinePos + 1] == '#') {
-          // We've found a commented out line.  This line might belong to the
-          // next section.
-          newlinePos = contents.indexOf('\n', newlinePos + 1);
-          continue;
-        }
-      }
-      // We've found an ordinary line.  It's part of this section, so update
-      // end.
-      newlinePos = contents.indexOf('\n', newlinePos + 1);
-      end = newlinePos;
-    }
-    end = end == -1 ? contents.length : end + 1;
-    return new ConfigurationInSuiteSection(
-        suite, statusFile, contents, begin, end);
-  }
-}
diff --git a/pkg/front_end/tool/status_files/update_from_log.dart b/pkg/front_end/tool/status_files/update_from_log.dart
deleted file mode 100644
index 2fa2b11..0000000
--- a/pkg/front_end/tool/status_files/update_from_log.dart
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// Script that updates kernel status lines automatically for tests under the
-/// '$strong' configuration.
-///
-/// This script is hardcoded to only support this configuration and relies on
-/// a convention for how the status files are structured, In particular,
-/// every status file is expected to have these sections:
-///
-///     [ $compiler == dartk && $runtime == vm && $strong ]
-///     [ $compiler == dartk && $runtime == vm && $strong && $mode == debug ]
-///     [ $compiler == dartkp && $runtime == dart_precompiled && $strong ]
-///     [ $compiler == dartkp && $runtime == dart_precompiled && $strong && $mode == debug]
-///
-/// we allow other sections specifying $checked mode, but the script currently
-/// has not been configured to update them.
-///
-///     [ $compiler == dartk && $runtime == vm && $strong && $checked ]
-///     [ $compiler == dartk && $runtime == vm && $strong && !$checked ]
-///     [ $compiler == dartkp && $runtime == dart_precompiled && $strong && $checked]
-///     [ $compiler == dartkp && $runtime == dart_precompiled && $strong && !$checked]
-///
-/// Note that this script is brittle and will not work properly if there are
-/// other overlapping sections. If you see the script adding entries like "Pass"
-/// it is a sign that a test was broadly marked as failing in a more general
-/// section (e.g. $runtime == vm, but no compiler was specified).
-
-library front_end.status_files.update_from_log;
-
-import '../../../compiler/tool/status_files/update_from_log.dart'
-    show mainInternal;
-
-final kernelStrongConfigurations = {
-  'dartk': r'[ $compiler == dartk && $runtime == vm && $strong ]',
-  'dartk-debug':
-      r'[ $compiler == dartk && $runtime == vm && $strong && $mode == debug]',
-  'dartkp':
-      r'[ $compiler == dartkp && $runtime == dart_precompiled && $strong ]',
-  'dartkp-debug':
-      r'[ $compiler == dartkp && $runtime == dart_precompiled && $strong && $mode == debug]',
-};
-
-final kernelStrongStatusFiles = {
-  'corelib_2': 'tests/corelib_2/corelib_2.status',
-  'language_2': 'tests/language_2/language_2_kernel.status',
-  'lib_2': 'tests/lib_2/lib_2_kernel.status',
-  'standalone_2': 'tests/standalone_2/standalone_2_kernel.status',
-};
-
-main(args) {
-  mainInternal(args, kernelStrongConfigurations, kernelStrongStatusFiles);
-}