anchor.diff:  
   import 'dart:io' show Directory, File, Platform, Process;
   
  +import 'package:async_helper/async_helper.dart' show asyncTest;
  +
  +import 'package:expect/expect.dart' show Expect;
  +
   import 'package:kernel/ast.dart' show Program;
   
   import 'package:kernel/binary/limited_ast_to_binary.dart'
       show LimitedBinaryPrinter;
   
  -import 'package:test/test.dart'
  -    show expect, isEmpty, isTrue, lessThan, setUp, tearDown, test;
  -
   import 'package:front_end/src/api_prototype/compiler_options.dart'
       show CompilerOptions;
   
  
positive.code:         new List.generate(expectedLines, (_) => new Completer<String>());
      lines = completers.map((c) => c.future).toList();
      vm.stdout.transform(UTF8.decoder).transform(splitter).listen((line) {
        expect(i, lessThan(expectedLines));
        completers[i++].complete(line);
      }, onDone: () {
        expect(i, expectedLines);
      });
  
      vm.stderr.transform(UTF8.decoder).transform(splitter).toList().then((err) {
        expect(err, isEmpty, reason: err.join('\n'));
      });
  
      programIsDone = vm.exitCode;
  
negative.code:   List<Future<String>> lines;
    Future programIsDone;
  
    String get name;
  
    Future run();
  
    Future test() async {
      await setUp();
      try {
        await run();
        print("$name done");
      } finally {
        await tearDown();
      }
    }
  
    setUp() async {
      outDir = Directory.systemTemp.createTempSync('hotreload_test');
      outputUri = outDir.uri.resolve('test.dill');
      var root = Uri.parse('org-dartlang-test:///');
  