anchor.diff:        Directory testDir =
             new Directory.fromUri(dotPackage.parent.uri.resolve("test/"));
         if (!testDir.existsSync()) continue;
  +      if (testDir.toString().contains("packages/flutter_web_plugins/test/")) {
  +        // TODO(jensj): Figure out which tests are web-tests, and compile those
  +        // in a setup that can handle that.
  +        continue;
  +      }
         print("Go for $testDir");
  -      await attemptStuff(
  +      List<String> compilationErrors = await attemptStuff(
             tempDir, flutterPlatformDirectory, dotPackage, testDir);
  +      if (compilationErrors.isNotEmpty) {
  +        print("Notice that we had ${compilationErrors.length} "
  +            "compilation errors for $testDir");
  +        allCompilationErrors.addAll(compilationErrors);
  +      }
       } finally {
         tempDir.delete(recursive: true);
       }
     }
  -}
  -
  -void attemptStuff(Directory tempDir, Directory flutterPlatformDirectory,
  -    File dotPackage, Directory testDir) async {
  +  if (allCompilationErrors.isNotEmpty) {
  +    print("Had a total of ${allCompilationErrors.length} compilation errors:");
  +    allCompilationErrors.forEach(print);
  +    throw "Had a total of ${allCompilationErrors.length} compilation errors";
  +  }
  +}
  +
  +Future<List<String>> attemptStuff(
  +    Directory tempDir,
  +    Directory flutterPlatformDirectory,
  +    File dotPackage,
  +    Directory testDir) async {
     File dillFile = new File('${tempDir.path}/dill.dill');
     if (dillFile.existsSync()) {
       throw "$dillFile already exists.";
  
positive.code:           f.uri.toString().contains("/packages/")) &&
        f.uri.toString().endsWith("/.packages")));
  
    for (File dotPackage in dotPackagesFiles) {
      Directory tempDir;
      Directory systemTempDir = Directory.systemTemp;
  
negative.code:   inputStreamController
        .add('compile ${testFileIterator.current.path}\n'.codeUnits);
    int compilations = 0;
    List<String> compilationErrors = [];
    receivedResults.stream.listen((Result compiledResult) {
      stdout.write(" --- done in ${stopwatch2.elapsedMilliseconds} ms\n");
      stopwatch2.reset();
      bool error = false;
      try {
        compiledResult.expectNoErrors();
      } catch (e) {
        print("Got errors. Compiler output for this compile:");
        outputParser.allReceived.forEach(print);
        compilationErrors.add(testFileIterator.current.path);
        error = true;
      }
      if (!error) {
        List<int> resultBytes = dillFile.readAsBytesSync();
        Component component = loadComponentFromBytes(platformData);
        component = loadComponentFromBytes(resultBytes, component);
        verifyComponent(component);
        print("        => verified in ${stopwatch2.elapsedMilliseconds} ms.");
      }
      stopwatch2.reset();
  
      inputStreamController.add('accept\n'.codeUnits);
      inputStreamController.add('reset\n'.codeUnits);
      compilations++;
      outputParser.allReceived.clear();
  
      if (!testFileIterator.moveNext()) {
        inputStreamController.add('quit\n'.codeUnits);
  