private void configure(DefaultGoogleTestTestSuiteBinary testBinary, File buildDir) {
      BinaryNamingScheme namingScheme = testBinary.getNamingScheme();
      PlatformToolProvider toolProvider = testBinary.getPlatformToolProvider();
      File binaryOutputDir =
          new File(new File(buildDir, "binaries"), namingScheme.getOutputDirectoryBase());
      String baseName = testBinary.getComponent().getBaseName();

      testBinary.setExecutableFile(
          new File(binaryOutputDir, toolProvider.getExecutableName(baseName)));

      ((ExtensionAware) testBinary)
          .getExtensions()
          .create("cppCompiler", DefaultPreprocessingTool.class);

      // TODO:DAZ Not sure if this should be here...
      // Need "-pthread" when linking on Linux
      if (testBinary.getToolChain() instanceof GccCompatibleToolChain
          && testBinary.getTargetPlatform().getOperatingSystem().isLinux()) {
        testBinary.getLinker().args("-pthread");
      }
    }
    @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);
      }
    }
 public String getDisplayName() {
   return namingScheme.getDescription();
 }