@Mutate
    public void createGoogleTestTestBinaries(
        final BinaryContainer binaries,
        TestSuiteContainer testSuites,
        @Path("buildDir") File buildDir,
        ServiceRegistry serviceRegistry,
        ITaskFactory taskFactory) {
      for (final GoogleTestTestSuiteSpec googleTestTestSuite :
          testSuites.withType(GoogleTestTestSuiteSpec.class)) {
        for (NativeBinarySpec testedBinary :
            googleTestTestSuite
                .getTestedComponent()
                .getBinaries()
                .withType(NativeBinarySpec.class)) {
          if (testedBinary instanceof SharedLibraryBinary) {
            // TODO:DAZ For now, we only create test suites for static library variants
            continue;
          }
          DefaultGoogleTestTestSuiteBinary testBinary =
              createTestBinary(serviceRegistry, googleTestTestSuite, testedBinary, taskFactory);

          configure(testBinary, buildDir);

          googleTestTestSuite.getBinaries().add(testBinary);
          binaries.add(testBinary);
        }
      }
    }
    @Finalize
    // Must run after test binaries have been created (currently in CUnit
    // plugin)
    void attachTestedBinarySourcesToTestBinaries(BinaryContainer binaries) {
      for (NativeTestSuiteBinarySpec testSuiteBinary :
          binaries.withType(NativeTestSuiteBinarySpec.class)) {
        NativeBinarySpec testedBinary = testSuiteBinary.getTestedBinary();
        testSuiteBinary.source(testedBinary.getSource());

        for (DependentSourceSet testSource :
            testSuiteBinary.getSource().withType(DependentSourceSet.class)) {
          testSource.lib(testedBinary.getSource());
        }
      }
    }
    @Finalize
    public void createTestTasks(final TaskContainer tasks, BinaryContainer binaries) {
      for (NativeTestSuiteBinarySpec testBinary :
          binaries.withType(NativeTestSuiteBinarySpec.class)) {
        NativeBinarySpecInternal binary = (NativeBinarySpecInternal) testBinary;
        final BinaryNamingScheme namingScheme = binary.getNamingScheme();

        RunTestExecutable runTask =
            tasks.create(namingScheme.getTaskName("run"), RunTestExecutable.class);
        final Project project = runTask.getProject();
        runTask.setDescription(String.format("Runs the %s", binary));

        final InstallExecutable installTask =
            binary.getTasks().withType(InstallExecutable.class).iterator().next();
        runTask.getInputs().files(installTask.getOutputs().getFiles());
        runTask.setExecutable(installTask.getRunScript().getPath());
        runTask.setOutputDir(
            new File(
                project.getBuildDir(), "/test-results/" + namingScheme.getOutputDirectoryBase()));

        testBinary.getTasks().add(runTask);
      }
    }