Add Chrome enum regression test
Bug: 177653563
Bug: 178496619
Change-Id: Idcd0e3b93c15f0866707b9ccb7559cbd09a65218
diff --git a/.gitignore b/.gitignore
index 147cf9a..26634e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
+!third_party/chrome/*.sha1
!third_party/gmail/*.sha1
!third_party/gmscore/*.sha1
!third_party/internal/*.sha1
@@ -30,6 +31,8 @@
tests/2017-10-04/art.tar.gz
third_party/android_cts_baseline
third_party/android_cts_baseline.tar.gz
+third_party/clank/clank_google3_prebuilt
+third_party/clank/clank_google3.tar.gz
third_party/android_jar/lib
third_party/android_jar/lib-v[0-9][0-9]
third_party/android_jar/lib-v[0-9][0-9].tar.gz
diff --git a/build.gradle b/build.gradle
index d7c83e7..121279f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -420,6 +420,7 @@
"chrome/chrome_180917_ffbaa8",
"chrome/chrome_200430",
"chrome/monochrome_public_minimal_apks/chrome_200520",
+ "chrome/clank_google3_prebuilt",
"classlib",
"cf_segments",
"desugar/desugar_20180308",
diff --git a/src/test/java/com/android/tools/r8/internal/ClankDepsTest.java b/src/test/java/com/android/tools/r8/internal/ClankDepsTest.java
new file mode 100644
index 0000000..3d16eee
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/internal/ClankDepsTest.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package com.android.tools.r8.internal;
+
+import static com.android.tools.r8.DiagnosticsMatcher.diagnosticMessage;
+import static org.hamcrest.CoreMatchers.containsString;
+
+import com.android.tools.r8.TestBase;
+import com.android.tools.r8.TestParameters;
+import com.android.tools.r8.TestParametersCollection;
+import com.android.tools.r8.utils.AndroidApiLevel;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(Parameterized.class)
+public class ClankDepsTest extends TestBase {
+
+ @Parameters(name = "{0}")
+ public static TestParametersCollection data() {
+ return getTestParameters().withNoneRuntime().build();
+ }
+
+ public ClankDepsTest(TestParameters parameters) {
+ parameters.assertNoneRuntime();
+ }
+
+ private static final Path DIR = Paths.get("third_party", "chrome", "clank_google3_prebuilt");
+ private static final Path CLASSES = DIR.resolve("classes.jar");
+ private static final Path CONFIG = DIR.resolve("proguard.txt");
+
+ @Test(expected = AssertionError.class)
+ public void test() throws Exception {
+ testForR8(Backend.DEX)
+ .addProgramFiles(CLASSES)
+ .addKeepRuleFiles(CONFIG)
+ .addDontWarn("androidx.**")
+ .addDontWarnJavax()
+ .addDontWarn("dalvik.system.VMStack")
+ .addDontWarn("zzz.com.facebook.litho.R$id")
+ .addDontWarn("com.google.android.libraries.elements.R$id")
+ .allowUnusedProguardConfigurationRules()
+ .setMinApi(AndroidApiLevel.N)
+ .compileWithExpectedDiagnostics(
+ diagnostics ->
+ diagnostics.assertErrorsMatch(
+ diagnosticMessage(
+ containsString("java.lang.AssertionError: Invalid read to $VALUES"))));
+ }
+}
diff --git a/third_party/chrome/clank_google3_prebuilt.tar.gz.sha1 b/third_party/chrome/clank_google3_prebuilt.tar.gz.sha1
new file mode 100644
index 0000000..862139a
--- /dev/null
+++ b/third_party/chrome/clank_google3_prebuilt.tar.gz.sha1
@@ -0,0 +1 @@
+4af48dbfdd1333bb41c716a62a136dfd1fa2354d
\ No newline at end of file