anchor.diff:        Platform.script.resolve("../third_party/gsutil/gsutil.py").toFilePath();
   
     // Load the test matrix.
  -  final scriptPath = Platform.script.toFilePath();
  -  final testMatrixPath =
  -      scriptPath.substring(0, scriptPath.length - "test.dart".length) +
  -          "bots/test_matrix.json";
  -  final testMatrix = jsonDecode(await new File(testMatrixPath).readAsString());
  -  final branches = (testMatrix["branches"] as List).cast<String>();
  -  final buildersConfigurations =
  -      testMatrix["builder_configurations"] as List<dynamic>;
  +  final testMatrixPath = Platform.script.resolve("bots/test_matrix.json");
  +  final testMatrix = TestMatrix.fromPath(testMatrixPath.toFilePath());
     // Determine what named configuration to run and which builders to download
     // existing results from.
  -  final testedConfigurations = resolveNamedConfigurations(
  -      branches,
  -      buildersConfigurations,
  -      options["branch"],
  -      requestedNamedConfigurations,
  -      requestedBuilder);
  +  final testedConfigurations = resolveNamedConfigurations(testMatrix,
  +      options["branch"], requestedNamedConfigurations, requestedBuilder);
     if (testedConfigurations == null) {
       // No valid configuration could be found. The error has already been
       // reported by [resolveConfigurations].
  
positive.code: import 'dart:io';
  
  import 'package:args/args.dart';
  
  import 'bots/results.dart';
  
  
negative.code:     var downloadNumber = 0;
      // Download the previous results and flakiness info from cloud storage.
      for (final builder in builders) {
        final builderName = builder.name;
        if (needsMerge) {
          previousFileName = "previous-$downloadNumber.json";
          flakyFileName = "flaky-$downloadNumber.json";
          downloadNumber++;
        }
        print("Finding build on builder $builderName to compare with...");
        // Use the buildbucket API to search for builds of the right commit.
        final buildSearchResult =
            await searchForApproximateBuild(builderName, commit);
        if (buildSearchResult.commit != commit) {
          print("Warning: Using commit ${buildSearchResult.commit} "
              "as baseline instead of $commit for $builderName");
          inexactBuilds[builderName] = buildSearchResult.commit;
        }
        final buildNumber = buildSearchResult.build.toString();
        print("Downloading results from builder $builderName "
            "build $buildNumber...");
        tasks.add(cpGsutil(
            buildFileCloudPath(builderName, buildNumber, "results.json"),
            "${outDirectory.path}/$previousFileName"));
        if (!options["report-flakes"]) {
          tasks.add(cpGsutil(
              buildFileCloudPath(builderName, buildNumber, "flaky.json"),
              "${outDirectory.path}/$flakyFileName"));
        }
      }
  