anchor.diff:    return '';
   }
   
  +/// Returns the name of the branch being tested.
  +String get branchName {
  +  switch(ciProvider) {
  +    case CiProviders.cirrus:
  +      return Platform.environment['CIRRUS_BRANCH'];
  +    case CiProviders.luci:
  +      return Platform.environment['LUCI_BRANCH'];
  +  }
  +  return '';
  +}
  +
   /// Checks the given file's contents to determine if they match the allowed
   /// pattern for version strings.
   ///
  
positive.code:     ],
      workingDirectory: path.join(flutterRoot, relativePathToApplication),
    );
    if (verifyCaching) {
      print('${green}Testing IPA cache$reset for $cyan$relativePathToApplication$reset...');
      await runCommand(flutter,
        <String>[
          'build',
          'ios',
          '--performance-measurement-file=perf.json',
          ...additionalArgs,
          '--no-codesign',
          if (release)
            '--release'
          else
  
negative.code:     ..add(Directory(path.join(flutterRoot, 'dev', 'integration_tests', 'non_nullable')))
      ..add(Directory(path.join(flutterRoot, 'dev', 'integration_tests', 'flutter_gallery')));
  
    // The tests are randomly distributed into subshards so as to get a uniform
    // distribution of costs, but the seed is fixed so that issues are reproducible.
    final List<ShardRunner> tests = <ShardRunner>[
      for (final FileSystemEntity exampleDirectory in exampleDirectories)
          () => _runExampleProjectBuildTests(exampleDirectory),
      if (branchName != 'beta' && branchName != 'stable')
        ...<ShardRunner>[
          // Web compilation tests.
            () =>  _flutterBuildDart2js(
  