anchor.diff:      this.paths, {
       this.hasWarning = false,
       this.skipOnWindows = false,
  +    this.ignoreCase,
     });
   
     TestData.single(
  
positive.code:         workingDirectory: workingDirectory);
    }
  
    group(
      'git',
      () {
        Directory tmp;
        setUpAll(() async {
          tmp = await Directory.systemTemp.createTemp('package-ignore-test-');
  
          final ret = runGit(['init'], workingDirectory: tmp.path);
          expect(ret.exitCode, equals(0),
              reason:
                  'Running "git init" failed. StdErr: ${ret.stderr} StdOut: ${ret.stdout}');
        });
        tearDownAll(() async {
          await tmp.delete(recursive: true);
          tmp = null;
        });
        tearDown(() async {
          runGit(['clean', '-f', '-d', '-x'], workingDirectory: tmp.path);
        });
        for (final c in testData) {
          c.paths.forEach(
            (path, expected) => test(
                '${c.name}: git check-ignore "$path" is ${expected ? 'IGNORED' : 'NOT ignored'}',
                () async {
              for (final directory in c.patterns.keys) {
                final resolvedDirectory =
                    directory == '' ? tmp.uri : tmp.uri.resolve(directory + '/');
                Directory.fromUri(resolvedDirectory).createSync(recursive: true);
                final gitIgnore =
                    File.fromUri(resolvedDirectory.resolve('.gitignore'));
                gitIgnore
                    .writeAsStringSync(c.patterns[directory].join('\n') + '\n');
              }
              final process = runGit(
                  ['-C', tmp.path, 'check-ignore', '--no-index', path],
                  workingDirectory: tmp.path);
              final exitCode = process.exitCode;
              expect(
                exitCode,
                anyOf(0, 1),
                reason: 'Running "git check-ignore" failed',
              );
              final ignored = exitCode == 0;
              if (expected != ignored) {
                if (expected) {
                  fail('Expected "$path" to be ignored, it was NOT!');
                }
                fail('Expected "$path" to NOT be ignored, it was IGNORED!');
              }
            },
                skip: Platform.isMacOS || // System `git` on mac has issues...
                    c.skipOnWindows && Platform.isWindows),
          );
        }
      },
    );
  }
  
  class TestData {
  
negative.code: 
    /// Many of the tests don't play well on windows. Simply skip them.
    final bool skipOnWindows;
  
    /// Test with `core.ignoreCase` set to `true`, `false` or both (if `null`).
    final bool ignoreCase;
  
    TestData(
      this.name,
  