Fix even more tests for the new gradle setup

Bug: b/270105162
Change-Id: I6f625eb068e97c8d3d694ca0f322cec302a96ab5
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
index ccf5246..b1d35ac 100644
--- a/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
+++ b/d8_r8/commonBuildSrc/src/main/kotlin/DependenciesPlugin.kt
@@ -154,6 +154,12 @@
             include("${exampleDir.name}/**/*.class")
             exclude("**/TestGenerator*")
           }
+          // Copy additional resources into the jar.
+          from (exampleDir) {
+            exclude("**/*.java")
+            exclude("**/keep-rules*.txt")
+            into(exampleDir.name)
+          }
         }.get())
       }
     }
@@ -310,6 +316,19 @@
     "apiDatabase",
     Paths.get("third_party", "api_database", "api_database").toFile(),
     Paths.get("third_party", "api_database", "api_database.tar.gz.sha1").toFile())
+  val artTests = ThirdPartyDependency(
+    "art-tests",
+    Paths.get("tests", "2017-10-04", "art").toFile(),
+    Paths.get("tests", "2017-10-04", "art.tar.gz.sha1").toFile())
+  val artTestsLegacy = ThirdPartyDependency(
+    "art-tests-legacy",
+    Paths.get("tests", "2016-12-19", "art").toFile(),
+    Paths.get("tests", "2016-12-19", "art.tar.gz.sha1").toFile())
+  val clank = ThirdPartyDependency(
+    "clank",
+    Paths.get("third_party", "chrome", "clank_google3_prebuilt").toFile(),
+    Paths.get("third_party", "chrome", "clank_google3_prebuilt.tar.gz.sha1").toFile(),
+    DependencyType.X20)
   val compilerApi = ThirdPartyDependency(
     "compiler-api",
     Paths.get(
@@ -333,9 +352,18 @@
   val desugarJdkLibs = ThirdPartyDependency(
     "desugar-jdk-libs",
     Paths.get("third_party", "openjdk", "desugar_jdk_libs").toFile(),
-    Paths.get("third_party", "openjdk", "desugar_jdk_libs.tar.gz.sha1").toFile()
-  )
+    Paths.get("third_party", "openjdk", "desugar_jdk_libs.tar.gz.sha1").toFile())
+  val desugarJdkLibsLegacy = ThirdPartyDependency(
+    "desugar-jdk-libs-legacy",
+    Paths.get("third_party", "openjdk", "desugar_jdk_libs_legacy").toFile(),
+    Paths.get("third_party", "openjdk", "desugar_jdk_libs_legacy.tar.gz.sha1").toFile())
+  val desugarLibraryReleases = getThirdPartyDesugarLibraryReleases()
   // TODO(b/289363570): This could probably be removed.
+  val framework = ThirdPartyDependency(
+    "framework",
+    Paths.get("third_party", "framework").toFile(),
+    Paths.get("third_party", "framework.tar.gz.sha1").toFile(),
+    DependencyType.X20)
   val iosched2019 = ThirdPartyDependency(
     "iosched-2019",
     Paths.get("third_party", "iosched_2019").toFile(),
@@ -343,13 +371,13 @@
   val desugarJdkLibs11 = ThirdPartyDependency(
     "desugar-jdk-libs-11",
     Paths.get("third_party", "openjdk", "desugar_jdk_libs_11").toFile(),
-    Paths.get("third_party", "openjdk", "desugar_jdk_libs_11.tar.gz.sha1").toFile()
-  )
+    Paths.get("third_party", "openjdk", "desugar_jdk_libs_11.tar.gz.sha1").toFile())
+  val gmscoreVersions = getGmsCoreVersions()
+  val internalIssues = getInternalIssues()
   val jacoco = ThirdPartyDependency(
     "jacoco",
     Paths.get("third_party", "jacoco", "0.8.6").toFile(),
-    Paths.get("third_party", "jacoco", "0.8.6.tar.gz.sha1").toFile()
-  )
+    Paths.get("third_party", "jacoco", "0.8.6.tar.gz.sha1").toFile())
   val jasmin = ThirdPartyDependency(
     "jasmin",
     Paths.get("third_party", "jasmin").toFile(),
@@ -361,14 +389,12 @@
   val java8Runtime = ThirdPartyDependency(
     "openjdk-rt-1.8",
     Paths.get("third_party", "openjdk", "openjdk-rt-1.8").toFile(),
-    Paths.get("third_party", "openjdk", "openjdk-rt-1.8.tar.gz.sha1").toFile()
-  )
+    Paths.get("third_party", "openjdk", "openjdk-rt-1.8.tar.gz.sha1").toFile())
   val jdks = getJdks()
   val jdk11Test = ThirdPartyDependency(
     "jdk-11-test",
     Paths.get("third_party", "openjdk", "jdk-11-test").toFile(),
-    Paths.get("third_party", "openjdk", "jdk-11-test.tar.gz.sha1").toFile()
-  )
+    Paths.get("third_party", "openjdk", "jdk-11-test.tar.gz.sha1").toFile())
   val jdwpTests = ThirdPartyDependency(
     "jdwp-tests",
     Paths.get("third_party", "jdwp-tests").toFile(),
@@ -378,6 +404,11 @@
     "multidex",
     Paths.get("third_party", "multidex").toFile(),
     Paths.get("third_party", "multidex.tar.gz.sha1").toFile())
+  val nest = ThirdPartyDependency(
+    "nest",
+    Paths.get("third_party", "nest", "nest_20180926_7c6cfb").toFile(),
+    Paths.get("third_party", "nest", "nest_20180926_7c6cfb.tar.gz.sha1").toFile(),
+    DependencyType.X20)
   val proguards = getThirdPartyProguards()
   val protobufLite = ThirdPartyDependency(
     "protobuf-lite",
@@ -388,6 +419,31 @@
     "r8",
     Paths.get("third_party", "r8").toFile(),
     Paths.get("third_party", "r8.tar.gz.sha1").toFile())
+  val r8Mappings = ThirdPartyDependency(
+    "r8-mappings",
+    Paths.get("third_party", "r8mappings").toFile(),
+    Paths.get("third_party", "r8mappings.tar.gz.sha1").toFile())
+  val r8v2_0_74 = ThirdPartyDependency(
+    "r8-v2-0-74",
+    Paths.get("third_party", "r8-releases","2.0.74").toFile(),
+    Paths.get("third_party", "r8-releases", "2.0.74.tar.gz.sha1").toFile())
+  val r8v3_2_54 = ThirdPartyDependency(
+    "r8-v3-2-54",
+    Paths.get("third_party", "r8-releases","3.2.54").toFile(),
+    Paths.get("third_party", "r8-releases", "3.2.54.tar.gz.sha1").toFile())
+  val retraceBenchmark = ThirdPartyDependency(
+    "retrace-benchmark",
+    Paths.get("third_party", "retrace_benchmark").toFile(),
+    Paths.get("third_party", "retrace_benchmark.tar.gz.sha1").toFile())
+  val retraceBinaryCompatibility = ThirdPartyDependency(
+    "retrace-binary-compatibility",
+    Paths.get("third_party", "retrace", "binary_compatibility").toFile(),
+    Paths.get("third_party", "retrace", "binary_compatibility.tar.gz.sha1").toFile())
+  val retraceInternal = ThirdPartyDependency(
+    "retrace-internal",
+    Paths.get("third_party", "retrace_internal").toFile(),
+    Paths.get("third_party", "retrace_internal.tar.gz.sha1").toFile(),
+    DependencyType.X20)
   val rhino = ThirdPartyDependency(
     "rhino",
     Paths.get("third_party", "rhino-1.7.10").toFile(),
@@ -400,6 +456,10 @@
     "smali",
     Paths.get("third_party", "smali").toFile(),
     Paths.get("third_party", "smali.tar.gz.sha1").toFile())
+  val tivi = ThirdPartyDependency(
+    "tivi",
+    Paths.get("third_party", "opensource-apps", "tivi").toFile(),
+    Paths.get("third_party", "opensource-apps", "tivi.tar.gz.sha1").toFile())
 }
 
 fun getThirdPartyAndroidJars() : List<ThirdPartyDependency> {
@@ -496,4 +556,37 @@
       it,
       Paths.get("third_party", "kotlin", it).toFile(),
       Paths.get("third_party", "kotlin", "${it}.tar.gz.sha1").toFile())}
+}
+
+fun getThirdPartyDesugarLibraryReleases() : List<ThirdPartyDependency> {
+  return listOf(
+    "1.0.9",
+    "1.0.10",
+    "1.1.0",
+    "1.1.1",
+    "1.1.5")
+    .map { ThirdPartyDependency(
+      "desugar-library-release-$it",
+      Paths.get("third_party", "openjdk", "desugar_jdk_libs_releases", it).toFile(),
+      Paths.get("third_party", "openjdk", "desugar_jdk_libs_releases", "${it}.tar.gz.sha1").toFile())}
+}
+
+fun getInternalIssues() : List<ThirdPartyDependency> {
+  return listOf("issue-127524985")
+    .map { ThirdPartyDependency(
+      "internal-$it",
+      Paths.get("third_party", "internal", it).toFile(),
+      Paths.get("third_party", "internal", "${it}.tar.gz.sha1").toFile(),
+      DependencyType.X20)}
+}
+
+fun getGmsCoreVersions() : List<ThirdPartyDependency> {
+  return listOf(
+    "gmscore_v10",
+    "latest")
+    .map { ThirdPartyDependency(
+      "gmscore-version-$it",
+      Paths.get("third_party", "gmscore", it).toFile(),
+      Paths.get("third_party", "gmscore", "${it}.tar.gz.sha1").toFile(),
+      DependencyType.X20)}
 }
\ No newline at end of file
diff --git a/d8_r8/test_modules/tests_java_8/build.gradle.kts b/d8_r8/test_modules/tests_java_8/build.gradle.kts
index 4ceb3e6..c77fae8 100644
--- a/d8_r8/test_modules/tests_java_8/build.gradle.kts
+++ b/d8_r8/test_modules/tests_java_8/build.gradle.kts
@@ -56,10 +56,13 @@
 val thirdPartyRuntimeDependenciesTask = ensureThirdPartyDependencies(
   "runtimeDeps",
   listOf(
+    ThirdPartyDeps.artTests,
+    ThirdPartyDeps.artTestsLegacy,
     ThirdPartyDeps.compilerApi,
     ThirdPartyDeps.coreLambdaStubs,
     ThirdPartyDeps.dagger,
     ThirdPartyDeps.desugarJdkLibs,
+    ThirdPartyDeps.desugarJdkLibsLegacy,
     ThirdPartyDeps.desugarJdkLibs11,
     ThirdPartyDeps.iosched2019,
     ThirdPartyDeps.jacoco,
@@ -68,11 +71,18 @@
     ThirdPartyDeps.jsr223,
     ThirdPartyDeps.multidex,
     ThirdPartyDeps.r8,
+    ThirdPartyDeps.r8Mappings,
+    ThirdPartyDeps.r8v2_0_74,
+    ThirdPartyDeps.r8v3_2_54,
+    ThirdPartyDeps.retraceBenchmark,
+    ThirdPartyDeps.retraceBinaryCompatibility,
     ThirdPartyDeps.rhino,
     ThirdPartyDeps.rhinoAndroid,
-    ThirdPartyDeps.smali)
+    ThirdPartyDeps.smali,
+    ThirdPartyDeps.tivi)
     + ThirdPartyDeps.androidJars
     + ThirdPartyDeps.androidVMs
+    + ThirdPartyDeps.desugarLibraryReleases
     + ThirdPartyDeps.jdks
     + ThirdPartyDeps.kotlinCompilers
     + ThirdPartyDeps.proguards)
@@ -80,8 +90,13 @@
 val thirdPartyRuntimeInternalDependenciesTask = ensureThirdPartyDependencies(
   "runtimeInternalDeps",
   listOf(
+    ThirdPartyDeps.clank,
+    ThirdPartyDeps.framework,
+    ThirdPartyDeps.nest,
     ThirdPartyDeps.protobufLite,
-  )
+    ThirdPartyDeps.retraceInternal)
+    + ThirdPartyDeps.internalIssues
+    + ThirdPartyDeps.gmscoreVersions
 )
 
 val sourceSetDependenciesTasks = arrayOf(
diff --git a/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java b/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
index 6aa0a30..1c8634c 100644
--- a/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
+++ b/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
@@ -85,10 +85,12 @@
     R8CF
   }
 
-  public static final String ART_TESTS_DIR = "tests/2017-10-04/art";
-  private static final String ART_LEGACY_TESTS_DIR = "tests/2016-12-19/art/";
-  private static final String ART_TESTS_NATIVE_LIBRARY_DIR = "tests/2017-10-04/art/lib64";
-  private static final String ART_LEGACY_TESTS_NATIVE_LIBRARY_DIR = "tests/2016-12-19/art/lib64";
+  public static final String ART_TESTS_DIR = ToolHelper.ART_TESTS_ROOT + "2017-10-04/art";
+  private static final String ART_LEGACY_TESTS_DIR = ToolHelper.ART_TESTS_ROOT + "2016-12-19/art/";
+  private static final String ART_TESTS_NATIVE_LIBRARY_DIR =
+      ToolHelper.ART_TESTS_ROOT + "2017-10-04/art/lib64";
+  private static final String ART_LEGACY_TESTS_NATIVE_LIBRARY_DIR =
+      ToolHelper.ART_TESTS_ROOT + "2016-12-19/art/lib64";
 
   private static final RuntimeSet LEGACY_RUNTIME =
       TestCondition.runtimes(
@@ -104,11 +106,6 @@
           DexVm.Version.V13_0_0,
           DexVm.Version.V14_0_0);
 
-  private static final String JUNIT_TEST_RUNNER = "org.junit.runner.JUnitCore";
-  private static final String JUNIT_JAR = "third_party/junit/junit-4.13-beta-2.jar";
-  private static final String HAMCREST_JAR =
-      "third_party/gradle/gradle/lib/plugins/hamcrest-core-1.3.jar";
-
   // Test that required to set min-api to a specific value.
   private static Map<String, AndroidApiLevel> needMinSdkVersion =
       new ImmutableMap.Builder<String, AndroidApiLevel>()
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index ea8e96c..177d064 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -111,7 +111,8 @@
     return Paths.get(current).getParent().toString() + "/";
   }
 
-  public static final String SOURCE_DIR = getProjectRoot() + "src/main/java/";
+  public static final String SOURCE_DIR = getProjectRoot() + "src/";
+  public static final String MAIN_SOURCE_DIR = getProjectRoot() + "src/main/java/";
   public static final String LIBRARY_DESUGAR_SOURCE_DIR = getProjectRoot() + "src/library_desugar/";
   public static final String BUILD_DIR = getProjectRoot() + "build/";
   public static final String TEST_MODULE_DIR = getProjectRoot() + "d8_r8/test_modules/";
@@ -121,13 +122,13 @@
   public static final String DEPENDENCIES = THIRD_PARTY_DIR + "dependencies/";
   public static final String TOOLS_DIR = getProjectRoot() + "tools/";
   public static final String TESTS_DIR = getProjectRoot() + "src/test/";
+  public static final String ART_TESTS_ROOT = getProjectRoot() + "tests/";
   public static final String TESTS_SOURCE_DIR = TESTS_DIR + "java/";
   public static final String EXAMPLES_DIR = TESTS_DIR + "examples/";
   public static final String EXAMPLES_ANDROID_N_DIR = TESTS_DIR + "examplesAndroidN/";
   public static final String EXAMPLES_ANDROID_O_DIR = TESTS_DIR + "examplesAndroidO/";
   public static final String EXAMPLES_ANDROID_P_DIR = TESTS_DIR + "examplesAndroidP/";
   public static final String TESTS_BUILD_DIR = BUILD_DIR + "test/";
-  public static final String JDK_TESTS_BUILD_DIR = TESTS_BUILD_DIR + "jdk11Tests/";
   public static final String EXAMPLES_BUILD_DIR = TESTS_BUILD_DIR + "examples/";
   public static final String EXAMPLES_CF_DIR = EXAMPLES_BUILD_DIR + "classes/";
   public static final String EXAMPLES_ANDROID_N_BUILD_DIR = TESTS_BUILD_DIR + "examplesAndroidN/";
diff --git a/src/test/java/com/android/tools/r8/androidapi/GenerateCovariantReturnTypeMethodsTest.java b/src/test/java/com/android/tools/r8/androidapi/GenerateCovariantReturnTypeMethodsTest.java
index df687ed..5826a9a 100644
--- a/src/test/java/com/android/tools/r8/androidapi/GenerateCovariantReturnTypeMethodsTest.java
+++ b/src/test/java/com/android/tools/r8/androidapi/GenerateCovariantReturnTypeMethodsTest.java
@@ -65,7 +65,7 @@
   private static final Path PATH_TO_CORE_JAR =
       Paths.get(ToolHelper.THIRD_PARTY_DIR, "android_jar", "libcore_latest", "core-oj.jar");
   private static final Path DESTINATION_FILE =
-      Paths.get(ToolHelper.SOURCE_DIR)
+      Paths.get(ToolHelper.MAIN_SOURCE_DIR)
           .resolve(PACKAGE_NAME.replace('.', '/'))
           .resolve(CLASS_NAME + ".java");
   private static final AndroidApiLevel GENERATED_FOR_API_LEVEL = AndroidApiLevel.U;
diff --git a/src/test/java/com/android/tools/r8/benchmarks/appdumps/TiviBenchmarks.java b/src/test/java/com/android/tools/r8/benchmarks/appdumps/TiviBenchmarks.java
index ca31ef6..166dade 100644
--- a/src/test/java/com/android/tools/r8/benchmarks/appdumps/TiviBenchmarks.java
+++ b/src/test/java/com/android/tools/r8/benchmarks/appdumps/TiviBenchmarks.java
@@ -4,6 +4,7 @@
 package com.android.tools.r8.benchmarks.appdumps;
 
 import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.benchmarks.BenchmarkBase;
 import com.android.tools.r8.benchmarks.BenchmarkConfig;
 import com.google.common.collect.ImmutableList;
@@ -17,7 +18,7 @@
 @RunWith(Parameterized.class)
 public class TiviBenchmarks extends BenchmarkBase {
 
-  private static final Path dump = Paths.get("third_party", "opensource-apps", "tivi");
+  private static final Path dump = Paths.get(ToolHelper.THIRD_PARTY_DIR, "opensource-apps", "tivi");
 
   public TiviBenchmarks(BenchmarkConfig config, TestParameters parameters) {
     super(config, parameters);
diff --git a/src/test/java/com/android/tools/r8/benchmarks/retrace/RetraceStackTraceBenchmark.java b/src/test/java/com/android/tools/r8/benchmarks/retrace/RetraceStackTraceBenchmark.java
index 3cd934b..28e1e83 100644
--- a/src/test/java/com/android/tools/r8/benchmarks/retrace/RetraceStackTraceBenchmark.java
+++ b/src/test/java/com/android/tools/r8/benchmarks/retrace/RetraceStackTraceBenchmark.java
@@ -4,6 +4,7 @@
 package com.android.tools.r8.benchmarks.retrace;
 
 import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.benchmarks.BenchmarkBase;
 import com.android.tools.r8.benchmarks.BenchmarkConfig;
 import com.android.tools.r8.benchmarks.BenchmarkDependency;
@@ -28,7 +29,8 @@
 public class RetraceStackTraceBenchmark extends BenchmarkBase {
 
   private static final BenchmarkDependency benchmarkDependency =
-      new BenchmarkDependency("retraceBenchmark", "retrace_benchmark", Paths.get("third_party"));
+      new BenchmarkDependency(
+          "retraceBenchmark", "retrace_benchmark", Paths.get(ToolHelper.THIRD_PARTY_DIR));
 
   @Parameters(name = "{0}")
   public static List<Object[]> data() {
diff --git a/src/test/java/com/android/tools/r8/cf/bootstrap/BootstrapTest.java b/src/test/java/com/android/tools/r8/cf/bootstrap/BootstrapTest.java
index 87bbfaf..ee0ff21 100644
--- a/src/test/java/com/android/tools/r8/cf/bootstrap/BootstrapTest.java
+++ b/src/test/java/com/android/tools/r8/cf/bootstrap/BootstrapTest.java
@@ -28,7 +28,7 @@
 public class BootstrapTest extends TestBase {
 
   private static final Path R8_STABLE_JAR =
-      Paths.get("third_party", "r8-releases", "3.2.54", "r8.jar");
+      Paths.get(ToolHelper.THIRD_PARTY_DIR, "r8-releases", "3.2.54", "r8.jar");
 
   private static final Class<?> HELLO_CLASS = HelloTestRunner.getHelloClass();
   private static final String HELLO_EXPECTED = HelloTestRunner.getExpectedOutput();
diff --git a/src/test/java/com/android/tools/r8/cfmethodgeneration/CodeGenerationBase.java b/src/test/java/com/android/tools/r8/cfmethodgeneration/CodeGenerationBase.java
index 0f3c23b..5d1443b 100644
--- a/src/test/java/com/android/tools/r8/cfmethodgeneration/CodeGenerationBase.java
+++ b/src/test/java/com/android/tools/r8/cfmethodgeneration/CodeGenerationBase.java
@@ -71,7 +71,7 @@
   }
 
   public Path getGeneratedFile() {
-    return Paths.get(ToolHelper.SOURCE_DIR, getGeneratedType().getInternalName() + ".java");
+    return Paths.get(ToolHelper.MAIN_SOURCE_DIR, getGeneratedType().getInternalName() + ".java");
   }
 
   protected abstract DexType getGeneratedType();
diff --git a/src/test/java/com/android/tools/r8/compilerapi/CompilerApiTest.java b/src/test/java/com/android/tools/r8/compilerapi/CompilerApiTest.java
index a6dac7d..34cd179 100644
--- a/src/test/java/com/android/tools/r8/compilerapi/CompilerApiTest.java
+++ b/src/test/java/com/android/tools/r8/compilerapi/CompilerApiTest.java
@@ -82,8 +82,12 @@
 
   public static Path getProjectRoot() {
     String userDirProperty = System.getProperty("user.dir");
-    if (userDirProperty.endsWith("d8_r8/test")) {
-      return Paths.get(userDirProperty).getParent().getParent();
+    if (userDirProperty.contains("d8_r8")) {
+      Path userDirPath = Paths.get(userDirProperty);
+      while (userDirPath.toString().contains("d8_r8")) {
+        userDirPath = userDirPath.getParent();
+      }
+      return userDirPath;
     }
     return Paths.get("");
   }
diff --git a/src/test/java/com/android/tools/r8/d8/D8FrameworkDexPassthroughMarkerTest.java b/src/test/java/com/android/tools/r8/d8/D8FrameworkDexPassthroughMarkerTest.java
index 0370c29..64e0f21 100644
--- a/src/test/java/com/android/tools/r8/d8/D8FrameworkDexPassthroughMarkerTest.java
+++ b/src/test/java/com/android/tools/r8/d8/D8FrameworkDexPassthroughMarkerTest.java
@@ -35,7 +35,8 @@
 public class D8FrameworkDexPassthroughMarkerTest {
 
   private static final Path FRAMEWORK_JAR =
-      Paths.get("tools/linux/art-5.1.1/product/mako/system/framework/framework.jar");
+      Paths.get(
+          ToolHelper.TOOLS_DIR + "linux/art-5.1.1/product/mako/system/framework/framework.jar");
 
   @Rule
   public TemporaryFolder output = ToolHelper.getTemporaryFolderForTest();
diff --git a/src/test/java/com/android/tools/r8/desugar/b72538146/B72538146.java b/src/test/java/com/android/tools/r8/desugar/b72538146/B72538146.java
index 0361951..94ea7f5 100644
--- a/src/test/java/com/android/tools/r8/desugar/b72538146/B72538146.java
+++ b/src/test/java/com/android/tools/r8/desugar/b72538146/B72538146.java
@@ -7,6 +7,7 @@
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.google.common.collect.ImmutableList;
 import java.nio.file.Path;
@@ -58,7 +59,11 @@
     // Run the classloader test loading the two dex applications.
     testForD8()
         .addProgramFiles(
-            Paths.get("build/test/examplesAndroidApi/classes/classloader/Runner.class"))
+            Paths.get(ToolHelper.TESTS_BUILD_DIR)
+                .resolve("examplesAndroidApi")
+                .resolve("classes")
+                .resolve("classloader")
+                .resolve("Runner.class"))
         .setMinApi(parameters)
         .compile()
         .run(
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Jsr166Tests.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Jsr166Tests.java
index c43800c..229ccfe 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Jsr166Tests.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11Jsr166Tests.java
@@ -17,6 +17,7 @@
 import com.android.tools.r8.SingleTestRunResult;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestRuntime;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.android.tools.r8.desugar.desugaredlibrary.DesugaredLibraryTestBase;
 import com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification;
@@ -65,7 +66,7 @@
   public static List<Object[]> data() {
     return buildParameters(
         // TODO(134732760): Support Dalvik VMs, currently fails because libjavacrypto is required
-        // and present only in ART runtimes.
+        //   and present only in ART runtimes.
         getTestParameters()
             .withDexRuntimesStartingFromIncluding(Version.V5_1_1)
             .withAllApiLevels()
@@ -81,9 +82,12 @@
     Path jsr166SuiteClasses = getStaticTemp().newFolder("jsr166SuiteClasses").toPath();
 
     javac(TestRuntime.getCheckedInJdk11(), getStaticTemp())
-        .addClasspathFiles(Paths.get("third_party/junit/junit-4.13-beta-2.jar"))
+        .addClasspathFiles(Paths.get(ToolHelper.THIRD_PARTY_DIR + "junit/junit-4.13-beta-2.jar"))
         .addSourceFiles(
-            Files.walk(Paths.get("third_party/openjdk/jdk-11-test/java/util/concurrent/tck"))
+            Files.walk(
+                    Paths.get(
+                        ToolHelper.THIRD_PARTY_DIR
+                            + "openjdk/jdk-11-test/java/util/concurrent/tck"))
                 .filter(path -> path.getFileName().toString().endsWith(".java"))
                 .collect(Collectors.toList()))
         .setOutputPath(jsr166SuiteClasses)
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11StreamAbstractTests.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11StreamAbstractTests.java
index 78b8776..290a3c5 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11StreamAbstractTests.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/jdktests/Jdk11StreamAbstractTests.java
@@ -86,7 +86,7 @@
 
   private static Path JDK_11_STREAM_TEST_CLASSES_DIR;
   private static final Path JDK_11_STREAM_TEST_FILES_DIR =
-      Paths.get("third_party/openjdk/jdk-11-test/java/util/stream/test");
+      Paths.get(ToolHelper.THIRD_PARTY_DIR + "openjdk/jdk-11-test/java/util/stream/test");
   private static Path[] JDK_11_STREAM_TEST_COMPILED_FILES;
 
   private static Path[] getJdk11StreamTestFiles() throws Exception {
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/r8ondex/R8CompiledThroughDexTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/r8ondex/R8CompiledThroughDexTest.java
index 7de441c..4cba5a7 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/r8ondex/R8CompiledThroughDexTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/r8ondex/R8CompiledThroughDexTest.java
@@ -82,7 +82,8 @@
     return path.toAbsolutePath().toString();
   }
 
-  private static final String R8_KEEP = Paths.get("src/main/keep.txt").toAbsolutePath().toString();
+  private static final String R8_KEEP =
+      Paths.get(ToolHelper.SOURCE_DIR + "main/keep.txt").toAbsolutePath().toString();
 
   private Pair<List<String>, Consumer<Builder>> buildArguments() {
     ImmutableList.Builder<String> arguments = ImmutableList.builder();
diff --git a/src/test/java/com/android/tools/r8/determinism/AppDeterminismTest.java b/src/test/java/com/android/tools/r8/determinism/AppDeterminismTest.java
index e16492e..bfd26f1 100644
--- a/src/test/java/com/android/tools/r8/determinism/AppDeterminismTest.java
+++ b/src/test/java/com/android/tools/r8/determinism/AppDeterminismTest.java
@@ -7,6 +7,7 @@
 
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.dump.CompilerDump;
 import com.android.tools.r8.dump.ProguardConfigSanitizer;
 import com.android.tools.r8.utils.DeterminismChecker;
@@ -39,7 +40,7 @@
   public void test() throws Exception {
     CompilerDump dump =
         CompilerDump.fromArchive(
-            Paths.get("third_party", "opensource-apps", app, "dump_app.zip"),
+            Paths.get(ToolHelper.THIRD_PARTY_DIR, "opensource-apps", app, "dump_app.zip"),
             temp.newFolder().toPath());
     Path logDirectory = temp.newFolder().toPath();
     Path ref = compile(1, dump, logDirectory);
diff --git a/src/test/java/com/android/tools/r8/internal/ClankDepsTest.java b/src/test/java/com/android/tools/r8/internal/ClankDepsTest.java
index d7878b9..7bff736 100644
--- a/src/test/java/com/android/tools/r8/internal/ClankDepsTest.java
+++ b/src/test/java/com/android/tools/r8/internal/ClankDepsTest.java
@@ -14,6 +14,7 @@
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.UnverifiableCfCodeDiagnostic;
 import java.nio.file.Path;
@@ -35,7 +36,8 @@
     parameters.assertNoneRuntime();
   }
 
-  private static final Path DIR = Paths.get("third_party", "chrome", "clank_google3_prebuilt");
+  private static final Path DIR =
+      Paths.get(ToolHelper.THIRD_PARTY_DIR, "chrome", "clank_google3_prebuilt");
   private static final Path CLASSES = DIR.resolve("classes.jar");
   private static final Path CONFIG = DIR.resolve("proguard.txt");
 
diff --git a/src/test/java/com/android/tools/r8/internal/D8Framework14082017DesugaredVerificationTest.java b/src/test/java/com/android/tools/r8/internal/D8Framework14082017DesugaredVerificationTest.java
index 003b6eb..215f913 100644
--- a/src/test/java/com/android/tools/r8/internal/D8Framework14082017DesugaredVerificationTest.java
+++ b/src/test/java/com/android/tools/r8/internal/D8Framework14082017DesugaredVerificationTest.java
@@ -5,6 +5,7 @@
 
 import com.android.tools.r8.CompilationMode;
 import com.android.tools.r8.D8Command;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.android.tools.r8.VmTestRunner;
 import com.android.tools.r8.VmTestRunner.IgnoreIfVmOlderThan;
@@ -16,7 +17,8 @@
 @RunWith(VmTestRunner.class)
 public class D8Framework14082017DesugaredVerificationTest extends CompilationTestBase {
   private static final int MIN_SDK = AndroidApiLevel.N.getLevel();
-  private static final String JAR = "third_party/framework/framework_14082017_desugared.jar";
+  private static final String JAR =
+      ToolHelper.THIRD_PARTY_DIR + "framework/framework_14082017_desugared.jar";
 
   @Test
   @IgnoreIfVmOlderThan(Version.V7_0_0)
diff --git a/src/test/java/com/android/tools/r8/internal/D8FrameworkVerificationTest.java b/src/test/java/com/android/tools/r8/internal/D8FrameworkVerificationTest.java
index f330553..1927baa 100644
--- a/src/test/java/com/android/tools/r8/internal/D8FrameworkVerificationTest.java
+++ b/src/test/java/com/android/tools/r8/internal/D8FrameworkVerificationTest.java
@@ -5,6 +5,7 @@
 
 import com.android.tools.r8.CompilationMode;
 import com.android.tools.r8.D8Command;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.android.tools.r8.VmTestRunner;
 import com.android.tools.r8.VmTestRunner.IgnoreIfVmOlderThan;
@@ -16,7 +17,8 @@
 @RunWith(VmTestRunner.class)
 public class D8FrameworkVerificationTest extends CompilationTestBase {
   private static final int MIN_SDK = AndroidApiLevel.N.getLevel();
-  private static final String JAR = "third_party/framework/framework_160115954.jar";
+  private static final String JAR =
+      ToolHelper.THIRD_PARTY_DIR + "framework/framework_160115954.jar";
 
   @Test
   @IgnoreIfVmOlderThan(Version.V7_0_0)
diff --git a/src/test/java/com/android/tools/r8/internal/GMSCoreLatestTest.java b/src/test/java/com/android/tools/r8/internal/GMSCoreLatestTest.java
index 624fa02..ef9401a 100644
--- a/src/test/java/com/android/tools/r8/internal/GMSCoreLatestTest.java
+++ b/src/test/java/com/android/tools/r8/internal/GMSCoreLatestTest.java
@@ -15,6 +15,7 @@
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
 import com.android.tools.r8.ThrowableConsumer;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.AssertionUtils;
 import com.google.common.collect.Sets;
@@ -31,7 +32,7 @@
 @RunWith(Parameterized.class)
 public class GMSCoreLatestTest extends GMSCoreCompilationTestBase {
 
-  private static final Path base = Paths.get("third_party/gmscore/latest/");
+  private static final Path base = Paths.get(ToolHelper.THIRD_PARTY_DIR + "gmscore/latest/");
 
   private static Path sanitizedLibrary;
   private static Path sanitizedProguardConfiguration;
diff --git a/src/test/java/com/android/tools/r8/internal/GMSCoreV10DisassemblerTest.java b/src/test/java/com/android/tools/r8/internal/GMSCoreV10DisassemblerTest.java
index 014f5d3..9af0266 100644
--- a/src/test/java/com/android/tools/r8/internal/GMSCoreV10DisassemblerTest.java
+++ b/src/test/java/com/android/tools/r8/internal/GMSCoreV10DisassemblerTest.java
@@ -4,6 +4,7 @@
 package com.android.tools.r8.internal;
 
 import com.android.tools.r8.Disassemble;
+import com.android.tools.r8.ToolHelper;
 import java.io.OutputStream;
 import java.io.PrintStream;
 import java.nio.file.Paths;
@@ -18,7 +19,7 @@
 @RunWith(Parameterized.class)
 public class GMSCoreV10DisassemblerTest extends GMSCoreCompilationTestBase {
 
-  private static final String APP_DIR = "third_party/gmscore/gmscore_v10/";
+  private static final String APP_DIR = ToolHelper.THIRD_PARTY_DIR + "gmscore/gmscore_v10/";
 
   @Parameters(name = "deobfuscate: {0} smali: {1}")
   public static Iterable<Object[]> data() {
diff --git a/src/test/java/com/android/tools/r8/internal/GMSCoreV10ProguardMapReaderTest.java b/src/test/java/com/android/tools/r8/internal/GMSCoreV10ProguardMapReaderTest.java
index 58bef78..8a9e624 100644
--- a/src/test/java/com/android/tools/r8/internal/GMSCoreV10ProguardMapReaderTest.java
+++ b/src/test/java/com/android/tools/r8/internal/GMSCoreV10ProguardMapReaderTest.java
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.internal;
 
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.naming.ClassNameMapper;
 import java.io.IOException;
 import java.nio.file.Path;
@@ -12,7 +13,7 @@
 
 public class GMSCoreV10ProguardMapReaderTest extends GMSCoreCompilationTestBase {
 
-  private static final String APP_DIR = "third_party/gmscore/gmscore_v10/";
+  private static final String APP_DIR = ToolHelper.THIRD_PARTY_DIR + "gmscore/gmscore_v10/";
 
   @Test
   public void roundTripTestGmsCoreV10() throws IOException {
diff --git a/src/test/java/com/android/tools/r8/internal/GMSCoreV10Test.java b/src/test/java/com/android/tools/r8/internal/GMSCoreV10Test.java
index 6229869..4adab47 100644
--- a/src/test/java/com/android/tools/r8/internal/GMSCoreV10Test.java
+++ b/src/test/java/com/android/tools/r8/internal/GMSCoreV10Test.java
@@ -16,6 +16,7 @@
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
 import com.android.tools.r8.ThrowableConsumer;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.google.common.collect.Sets;
 import java.nio.file.Path;
@@ -29,7 +30,7 @@
 @RunWith(Parameterized.class)
 public class GMSCoreV10Test extends GMSCoreCompilationTestBase {
 
-  private static final Path base = Paths.get("third_party/gmscore/gmscore_v10/");
+  private static final Path base = Paths.get(ToolHelper.THIRD_PARTY_DIR + "gmscore/gmscore_v10/");
 
   private static Path sanitizedLibrary;
   private static Path sanitizedProguardConfiguration;
diff --git a/src/test/java/com/android/tools/r8/internal/LibrarySanitizer.java b/src/test/java/com/android/tools/r8/internal/LibrarySanitizer.java
index e43dd8e..c28a84d 100644
--- a/src/test/java/com/android/tools/r8/internal/LibrarySanitizer.java
+++ b/src/test/java/com/android/tools/r8/internal/LibrarySanitizer.java
@@ -72,7 +72,7 @@
   public LibrarySanitizer sanitize() throws IOException {
     ImmutableList.Builder<String> command =
         new ImmutableList.Builder<String>()
-            .add("tools/sanitize_libraries.py")
+            .add(ToolHelper.TOOLS_DIR + "sanitize_libraries.py")
             .add(sanitizedLibrary.toString())
             .add(sanitizedPgConf.toString());
     for (Path programFile : programFiles) {
diff --git a/src/test/java/com/android/tools/r8/internal/NestCompilationBase.java b/src/test/java/com/android/tools/r8/internal/NestCompilationBase.java
index 3328d0f..3abc750 100644
--- a/src/test/java/com/android/tools/r8/internal/NestCompilationBase.java
+++ b/src/test/java/com/android/tools/r8/internal/NestCompilationBase.java
@@ -4,8 +4,10 @@
 
 package com.android.tools.r8.internal;
 
+import com.android.tools.r8.ToolHelper;
+
 public abstract class NestCompilationBase extends CompilationTestBase {
-  static final String BASE = "third_party/nest/nest_20180926_7c6cfb/";
+  static final String BASE = ToolHelper.THIRD_PARTY_DIR + "nest/nest_20180926_7c6cfb/";
   static final String DEPLOY_JAR = "obsidian-development-debug.jar";
   static final String PG_CONF = "proguard/proguard.cfg";
   static final String PG_CONF_NO_OPT = "proguard/proguard-no-optimizations.cfg";
diff --git a/src/test/java/com/android/tools/r8/internal/Regression127524985.java b/src/test/java/com/android/tools/r8/internal/Regression127524985.java
index 229ce71..d52a80f 100644
--- a/src/test/java/com/android/tools/r8/internal/Regression127524985.java
+++ b/src/test/java/com/android/tools/r8/internal/Regression127524985.java
@@ -12,6 +12,7 @@
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.ToolHelper;
 import com.android.tools.r8.utils.StringUtils;
 import com.android.tools.r8.utils.UnverifiableCfCodeDiagnostic;
 import java.nio.file.Path;
@@ -27,7 +28,7 @@
   private static final String MAIN = "com.android.tools.r8.internal.Regression127524985$Main";
 
   private static final Path JAR =
-      Paths.get("third_party/internal/issue-127524985/issue-127524985.jar");
+      Paths.get(ToolHelper.THIRD_PARTY_DIR + "internal/issue-127524985/issue-127524985.jar");
 
   private static final String EXPECTED = StringUtils.lines("true");
 
diff --git a/src/test/java/com/android/tools/r8/jar/UnicodeSetRegression/UnicodeSetRegressionTest.java b/src/test/java/com/android/tools/r8/jar/UnicodeSetRegression/UnicodeSetRegressionTest.java
index 708e588..d0b7ab2 100644
--- a/src/test/java/com/android/tools/r8/jar/UnicodeSetRegression/UnicodeSetRegressionTest.java
+++ b/src/test/java/com/android/tools/r8/jar/UnicodeSetRegression/UnicodeSetRegressionTest.java
@@ -13,7 +13,6 @@
 import com.android.tools.r8.utils.ArtErrorParser.ArtErrorInfo;
 import com.android.tools.r8.utils.ArtErrorParser.ArtErrorParserException;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
-import java.io.IOException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.List;
@@ -22,7 +21,8 @@
 public class UnicodeSetRegressionTest extends TestBase {
 
   private static final String JAR_FILE =
-      "src/test/java/com/android/tools/r8/jar/UnicodeSetRegression/UnicodeSet.jar";
+      ToolHelper.SOURCE_DIR
+          + "/test/java/com/android/tools/r8/jar/UnicodeSetRegression/UnicodeSet.jar";
 
   @Test
   public void testUnicodeSetFromJar() throws Throwable {
diff --git a/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java b/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
index 06892c9..8431f34 100644
--- a/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
+++ b/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
@@ -34,15 +34,15 @@
 
   private static final String DEFAULT_MAP_FILENAME = "proguard.map";
   private static final Path INPUT_PATH =
-      Paths.get("src/test/java/com/android/tools/r8/jsr45/HelloKt.class");
+      Paths.get(ToolHelper.TESTS_SOURCE_DIR + "com/android/tools/r8/jsr45/HelloKt.class");
   private static final Path DONT_SHRINK_DONT_OBFUSCATE_CONFIG =
-      Paths.get("src/test/java/com/android/tools/r8/jsr45/keep-rules-1.txt");
+      Paths.get(ToolHelper.TESTS_SOURCE_DIR + "com/android/tools/r8/jsr45/keep-rules-1.txt");
   private static final Path DONT_SHRINK_CONFIG =
-      Paths.get("src/test/java/com/android/tools/r8/jsr45/keep-rules-2.txt");
+      Paths.get(ToolHelper.TESTS_SOURCE_DIR + "com/android/tools/r8/jsr45/keep-rules-2.txt");
   private static final Path SHRINK_KEEP_CONFIG =
-      Paths.get("src/test/java/com/android/tools/r8/jsr45/keep-rules-3.txt");
+      Paths.get(ToolHelper.TESTS_SOURCE_DIR + "com/android/tools/r8/jsr45/keep-rules-3.txt");
   private static final Path SHRINK_NO_KEEP_CONFIG =
-      Paths.get("src/test/java/com/android/tools/r8/jsr45/keep-rules-4.txt");
+      Paths.get(ToolHelper.TESTS_SOURCE_DIR + "com/android/tools/r8/jsr45/keep-rules-4.txt");
 
   @Rule
   public TemporaryFolder tmpOutputDir = ToolHelper.getTemporaryFolderForTest();
diff --git a/src/test/java/com/android/tools/r8/maindexlist/b72312389/B72312389.java b/src/test/java/com/android/tools/r8/maindexlist/b72312389/B72312389.java
index 05e769d..730f2bf 100644
--- a/src/test/java/com/android/tools/r8/maindexlist/b72312389/B72312389.java
+++ b/src/test/java/com/android/tools/r8/maindexlist/b72312389/B72312389.java
@@ -39,8 +39,12 @@
     builder
         .addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.O))
         .addProgramFiles(
-            Paths.get("build", "test", "examplesAndroidApi",
-                "classes", "instrumentationtest", "InstrumentationTest.class"))
+            Paths.get(
+                ToolHelper.TESTS_BUILD_DIR,
+                "examplesAndroidApi",
+                "classes",
+                "instrumentationtest",
+                "InstrumentationTest.class"))
         .addProgramFiles(ToolHelper.getFrameworkJunitJarPath(DexVm.ART_7_0_0_HOST));
   }
 
diff --git a/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java b/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
index c049bd6..564fd19 100644
--- a/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
@@ -76,8 +76,8 @@
 @RunWith(Parameterized.class)
 public class ProguardConfigurationParserTest extends TestBase {
 
-  private static final String VALID_PROGUARD_DIR = "src/test/proguard/valid/";
-  private static final String INVALID_PROGUARD_DIR = "src/test/proguard/invalid/";
+  private static final String VALID_PROGUARD_DIR = ToolHelper.TESTS_DIR + "proguard/valid/";
+  private static final String INVALID_PROGUARD_DIR = ToolHelper.TESTS_DIR + "proguard/invalid/";
   private static final String PROGUARD_SPEC_FILE = VALID_PROGUARD_DIR + "proguard.flags";
   private static final String MULTIPLE_NAME_PATTERNS_FILE =
       VALID_PROGUARD_DIR + "multiple-name-patterns.flags";
diff --git a/src/test/java/com/android/tools/r8/shaking/keptgraph/WhyAreYouKeepingAllTest.java b/src/test/java/com/android/tools/r8/shaking/keptgraph/WhyAreYouKeepingAllTest.java
index 915d92b..4b6e714 100644
--- a/src/test/java/com/android/tools/r8/shaking/keptgraph/WhyAreYouKeepingAllTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/keptgraph/WhyAreYouKeepingAllTest.java
@@ -26,7 +26,7 @@
 @RunWith(Parameterized.class)
 public class WhyAreYouKeepingAllTest extends TestBase {
 
-  private static final Path MAIN_KEEP = Paths.get("src/main/keep.txt");
+  private static final Path MAIN_KEEP = Paths.get(ToolHelper.SOURCE_DIR + "/main/keep.txt");
 
   private static final String WHY_ARE_YOU_KEEPING_ALL = StringUtils.lines(
       "-whyareyoukeeping class ** { *; }",