anchor.diff:        // ignore: unawaited_futures
         () async {
           for (int i = 0; i < 10 * 60; i++) {
  -          if (observatoryLines.isNotEmpty) break;
  +          if (leakTest == null || leakTest.observatoryLines.isNotEmpty) {
  +            break;
  +          }
             await Future.delayed(new Duration(seconds: 1));
           }
   
  
positive.code:   // ignore: unawaited_futures
    process.exitCode.then((int exitCode) {
      stopwatch.stop();
      print("$id finished in ${stopwatch.elapsed.toString()}");
    });
    return new WrappedProcess(process, id);
  }
  
  class WrappedProcess {
    final Process process;
    final String id;
  
    WrappedProcess(this.process, this.id);
  }
  
negative.code:   List<int> exitCodes =
        await Future.wait(startedProcesses.map((e) => e.process.exitCode));
    if (exitCodes.where((e) => e != 0).isNotEmpty) {
      print("\n\nFound failures!:\n");
      // At least one failed.
      for (WrappedProcess p in startedProcesses) {
        int pExitCode = await p.process.exitCode;
        if (pExitCode != 0) {
          print("${p.id} failed with exist-code $pExitCode");
        }
      }
  
      throw "There were failures!";
    }
  }
  
  Future<WrappedProcess> run(List<String> args, String id) async {
    Stopwatch stopwatch = new Stopwatch()..start();
    Process process = await Process.start(
        Platform.resolvedExecutable, ["--enable-asserts", ...args]);
    List<String> observatoryLines = [];
    process.stderr
        .transform(utf8.decoder)
        .transform(new LineSplitter())
  