summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jack-tests/tests/com/android/jack/resource/test003/info.txt1
-rw-r--r--jack-tests/tests/com/android/jack/resource/test003/jack/A.java21
-rw-r--r--jack-tests/tests/com/android/jack/resource/test003/jack/A.txt11
-rw-r--r--jack-tests/tests/com/android/jack/resource/test003/proguard.flags0015
-rw-r--r--jack/tests/com/android/jack/ResourceTest.java47
5 files changed, 85 insertions, 0 deletions
diff --git a/jack-tests/tests/com/android/jack/resource/test003/info.txt b/jack-tests/tests/com/android/jack/resource/test003/info.txt
new file mode 100644
index 00000000..b8bf2e41
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/resource/test003/info.txt
@@ -0,0 +1 @@
+This test contains resource files containing class names. \ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/resource/test003/jack/A.java b/jack-tests/tests/com/android/jack/resource/test003/jack/A.java
new file mode 100644
index 00000000..b14ee511
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/resource/test003/jack/A.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.jack.resource.test003.jack;
+
+public class A {
+
+}
diff --git a/jack-tests/tests/com/android/jack/resource/test003/jack/A.txt b/jack-tests/tests/com/android/jack/resource/test003/jack/A.txt
new file mode 100644
index 00000000..84c7e59a
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/resource/test003/jack/A.txt
@@ -0,0 +1,11 @@
+com.android.jack.shrob.test003.jack.A
+Lcom.android.jack.shrob.test003.jack.A;
+com/android/jack/shrob/test003/jack/A
+Lcom/android/jack/shrob/test003/jack/A;
+A
+fddfcom.android.jack.shrob.test003.jack.A
+fgjgLcom.android.jack.shrob.test003.jack.A;
+sddtcom/android/jack/shrob/test003/jack/A
+fdhdhLcom/android/jack/shrob/test003/jack/A;
+estsrtA
+ com.android.jack.shrob.test003.jack.A Lcom.android.jack.shrob.test003.jack.A; com/android/jack/shrob/test003/jack/A Lcom/android/jack/shrob/test003/jack/A; A \ No newline at end of file
diff --git a/jack-tests/tests/com/android/jack/resource/test003/proguard.flags001 b/jack-tests/tests/com/android/jack/resource/test003/proguard.flags001
new file mode 100644
index 00000000..5dac7acb
--- /dev/null
+++ b/jack-tests/tests/com/android/jack/resource/test003/proguard.flags001
@@ -0,0 +1,5 @@
+-keep,allowobfuscation class * {
+ *;
+}
+-adaptresourcefilenames
+-adaptresourcefilecontents \ No newline at end of file
diff --git a/jack/tests/com/android/jack/ResourceTest.java b/jack/tests/com/android/jack/ResourceTest.java
index 5c4cc200..f7232c24 100644
--- a/jack/tests/com/android/jack/ResourceTest.java
+++ b/jack/tests/com/android/jack/ResourceTest.java
@@ -16,12 +16,14 @@
package com.android.jack;
+import com.android.jack.category.KnownBugs;
import com.android.jack.util.BytesStreamSucker;
import junit.framework.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.junit.experimental.categories.Category;
import java.io.BufferedReader;
import java.io.File;
@@ -220,6 +222,51 @@ public class ResourceTest {
checkResourceContent(shrobbedJackDir, RESOURCE4_LONGPATH, "Res4");
}
+ @Test
+ @Category(KnownBugs.class)
+ public void testResourceContentAdaptation() throws Exception {
+ /// compile source file to a Jack dir
+ File jackOutputFolder = TestTools.createTempDir("tempjack", "dir");
+ String testName = "resource/test003";
+ File testFolder = TestTools.getJackTestFolder(testName);
+ File jackTestFolder = TestTools.getJackTestsWithJackFolder(testName);
+ TestTools.compileSourceToJack(new Options(), testFolder, TestTools.getDefaultBootclasspathString(),
+ jackOutputFolder, false /* non-zipped */);
+
+ String resource1LongPath = "com/android/jack/resource/test003/jack/A";
+ String resource2LongPath = "com/android/jack/resource/test003/jack/A.txt";
+
+ // add resources to Jack dir
+ copyFileToDir(new File(jackTestFolder, "A.txt"), resource1LongPath, jackOutputFolder);
+ copyFileToDir(new File(jackTestFolder, "A.txt"), resource2LongPath, jackOutputFolder);
+
+ // run shrobbing from Jack dir to Jack dir
+ Options options = new Options();
+ options.nameProvider = "rot13";
+ File shrobbedJackDir = TestTools.createTempDir("shrobbedJack", "dir");
+ ProguardFlags flags = new ProguardFlags(new File(testFolder, "proguard.flags001"));
+ TestTools.shrobJackToJack(options,
+ jackOutputFolder,
+ TestTools.getDefaultBootclasspathString(),
+ shrobbedJackDir,
+ Collections.singletonList(flags),
+ false /* non-zipped */);
+
+ // check that resources are contained in Jack dir
+ String expected = "pbz.naqebvq.wnpx.fuebo.grfg003.wnpx.N\n"
+ + "Lcom.android.jack.shrob.test003.jack.A;\n"
+ + "com/android/jack/shrob/test003/jack/A\n"
+ + "Lcom/android/jack/shrob/test003/jack/A;\n" + "A\n"
+ + "fddfcom.android.jack.shrob.test003.jack.A"
+ + "fgjgLcom.android.jack.shrob.test003.jack.A;"
+ + "sddtcom/android/jack/shrob/test003/jack/A\n"
+ + "fdhdhLcom/android/jack/shrob/test003/jack/A;\n" + "estsrtA\n"
+ + " pbz.naqebvq.wnpx.fuebo.grfg003.wnpx.N Lcom.android.jack.shrob.test003.jack.A; "
+ + "com/android/jack/shrob/test003/jack/A Lcom/android/jack/shrob/test003/jack/A; A";
+ checkResourceContent(shrobbedJackDir, "pbz/naqebvq/wnpx/erfbhepr/grfg003/wnpx/A", expected);
+ checkResourceContent(shrobbedJackDir, "pbz/naqebvq/wnpx/erfbhepr/grfg003/wnpx/N.txt", expected);
+ }
+
@Nonnull
private File createJackArchiveWithResources() throws Exception {
// compile source file to a Jack file