Fix 071-dexfile by having run-test use a unique directory

If userdata.img is flashed, the /data/art-test is owned by the system
user.  However, 071 requires the directory it runs in to have be owned
by the running user (root in eng builds).

Change-Id: I5230908291fd2ff6c5ebda98cfc3ef4c7ea7482e
diff --git a/test/003-omnibus-opcodes/build b/test/003-omnibus-opcodes/build
index f8abd9a..8dbfc90 100644
--- a/test/003-omnibus-opcodes/build
+++ b/test/003-omnibus-opcodes/build
@@ -23,5 +23,6 @@
 ${JAVAC} -d classes `find src2 -name '*.java'`
 
 dx -JXmx256m --debug --dex --dump-to=classes.lst --output=classes.dex classes
-zip ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar classes.dex
-dex2oatd --boot-image=${ANDROID_PRODUCT_OUT}/data/art-test/core.art --dex-file=${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar --dex-location=/data/art-test/$TEST_NAME.jar --oat-file=${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar.oat
+mkdir -p ${ANDROID_PRODUCT_OUT}/data/run-test
+zip ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar classes.dex
+dex2oatd --boot-image=${ANDROID_PRODUCT_OUT}/data/art-test/core.art --dex-file=${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar --dex-location=/data/run-test/$TEST_NAME.jar --oat-file=${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar.oat
diff --git a/test/022-interface/build b/test/022-interface/build
index fd9d22e..43b1cc9 100644
--- a/test/022-interface/build
+++ b/test/022-interface/build
@@ -20,5 +20,6 @@
 # Use classes that are compiled with ecj that exposes an invokeinterface
 # issue when interfaces override methods in Object
 dx --debug --dex --dump-to=classes.lst --output=classes.dex classes
-zip ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar classes.dex
-dex2oatd --boot-image=${ANDROID_PRODUCT_OUT}/data/art-test/core.art --dex-file=${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar --dex-location=/data/art-test/$TEST_NAME.jar --oat-file=${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar.oat
+mkdir -p ${ANDROID_PRODUCT_OUT}/data/run-test
+zip ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar classes.dex
+dex2oatd --boot-image=${ANDROID_PRODUCT_OUT}/data/art-test/core.art --dex-file=${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar --dex-location=/data/run-test/$TEST_NAME.jar --oat-file=${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar.oat
diff --git a/test/023-many-interfaces/build b/test/023-many-interfaces/build
index eb3424a..005390e 100644
--- a/test/023-many-interfaces/build
+++ b/test/023-many-interfaces/build
@@ -25,5 +25,6 @@
 ${JAVAC} -d classes src/*.java
 
 dx --debug --dex --dump-to=classes.lst --output=classes.dex classes
-zip ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar classes.dex
-dex2oatd --boot-image=${ANDROID_PRODUCT_OUT}/data/art-test/core.art --dex-file=${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar --dex-location=/data/art-test/$TEST_NAME.jar --oat-file=${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar.oat
+mkdir -p ${ANDROID_PRODUCT_OUT}/data/run-test
+zip ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar classes.dex
+dex2oatd --boot-image=${ANDROID_PRODUCT_OUT}/data/art-test/core.art --dex-file=${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar --dex-location=/data/run-test/$TEST_NAME.jar --oat-file=${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar.oat
diff --git a/test/056-const-string-jumbo/build b/test/056-const-string-jumbo/build
index a2b4ee3..3e015d1 100644
--- a/test/056-const-string-jumbo/build
+++ b/test/056-const-string-jumbo/build
@@ -43,5 +43,6 @@
 ${JAVAC} -d classes src/*.java
 
 dx -JXmx500m --debug --dex --no-optimize --positions=none --no-locals --dump-to=classes.lst --output=classes.dex classes
-zip ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar classes.dex
-dex2oatd --boot-image=${ANDROID_PRODUCT_OUT}/data/art-test/core.art --dex-file=${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar --dex-location=/data/art-test/$TEST_NAME.jar --oat-file=${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar.oat
+mkdir -p ${ANDROID_PRODUCT_OUT}/data/run-test
+zip ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar classes.dex
+dex2oatd --boot-image=${ANDROID_PRODUCT_OUT}/data/art-test/core.art --dex-file=${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar --dex-location=/data/run-test/$TEST_NAME.jar --oat-file=${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar.oat
diff --git a/test/068-classloader/src/FancyLoader.java b/test/068-classloader/src/FancyLoader.java
index 5eb0249..44f335b 100644
--- a/test/068-classloader/src/FancyLoader.java
+++ b/test/068-classloader/src/FancyLoader.java
@@ -38,7 +38,7 @@
     static final String CLASS_PATH = "classes-ex/";
 
     /* this is the "alternate" DEX/Jar file */
-    static final String DEX_FILE = "/data/art-test/068-classloader-ex.jar";
+    static final String DEX_FILE = "/data/run-test/068-classloader-ex.jar";
 
     /* on Dalvik, this is a DexFile; otherwise, it's null */
     private Class mDexClass;
diff --git a/test/071-dexfile/info.txt b/test/071-dexfile/info.txt
index 7328d71..d58cc86 100644
--- a/test/071-dexfile/info.txt
+++ b/test/071-dexfile/info.txt
@@ -1,4 +1,4 @@
 Exercise some Dalvik-specific DEX file features.  This is not expected to
 work on other VMs.
 
-NOTE: the test requires that /data/art-test/ exists and is writable and not mounted noexec.
+NOTE: the test requires that /data/run-test/ exists and is writable and not mounted noexec.
diff --git a/test/071-dexfile/src/Main.java b/test/071-dexfile/src/Main.java
index 0845e87..1fc84e5 100644
--- a/test/071-dexfile/src/Main.java
+++ b/test/071-dexfile/src/Main.java
@@ -22,8 +22,8 @@
  * DexFile tests (Dalvik-specific).
  */
 public class Main {
-    private static final String CLASS_PATH = "/data/art-test/071-dexfile-ex.jar";
-    private static final String ODEX_DIR = "/data/art-test";
+    private static final String CLASS_PATH = "/data/run-test/071-dexfile-ex.jar";
+    private static final String ODEX_DIR = "/data/run-test";
     //private static final String ODEX_DIR = ".";
     private static final String ODEX_ALT = "/tmp";
     private static final String LIB_DIR = "/nowhere/nothing/";
diff --git a/test/085-old-style-inner-class/build b/test/085-old-style-inner-class/build
index 02190f2..299fc02 100644
--- a/test/085-old-style-inner-class/build
+++ b/test/085-old-style-inner-class/build
@@ -25,5 +25,6 @@
 # Suppress stderr to keep the inner class warnings out of the expected output.
 dx --debug --dex --dump-to=classes.lst --output=classes.dex --dump-width=1000 classes 2>/dev/null
 
-zip ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar classes.dex
-dex2oatd --boot-image=${ANDROID_PRODUCT_OUT}/data/art-test/core.art --dex-file=${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar --dex-location=/data/art-test/$TEST_NAME.jar --oat-file=${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar.oat 2>/dev/null
+mkdir -p ${ANDROID_PRODUCT_OUT}/data/run-test
+zip ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar classes.dex
+dex2oatd --boot-image=${ANDROID_PRODUCT_OUT}/data/art-test/core.art --dex-file=${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar --dex-location=/data/run-test/$TEST_NAME.jar --oat-file=${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar.oat 2>/dev/null
diff --git a/test/086-null-super/src/Main.java b/test/086-null-super/src/Main.java
index 1109dec..2a15b9e 100644
--- a/test/086-null-super/src/Main.java
+++ b/test/086-null-super/src/Main.java
@@ -55,7 +55,7 @@
         private static final String CLASS_NAME =
                 "Main$BrokenDexLoader$Inaccessible";
 
-        private static final String DEX_FILE = "/data/art-test/086-null-super.jar";
+        private static final String DEX_FILE = "/data/run-test/086-null-super.jar";
 
         public BrokenDexLoader(ClassLoader parent) {
             super(parent);
diff --git a/test/087-gc-after-link/src/Main.java b/test/087-gc-after-link/src/Main.java
index b28542f..ca259f9 100644
--- a/test/087-gc-after-link/src/Main.java
+++ b/test/087-gc-after-link/src/Main.java
@@ -55,7 +55,7 @@
         private static final String CLASS_NAME =
                 "Main$BrokenDexLoader$Inaccessible";
 
-        private static final String DEX_FILE = "/data/art-test/087-gc-after-link.jar";
+        private static final String DEX_FILE = "/data/run-test/087-gc-after-link.jar";
 
         public BrokenDexLoader(ClassLoader parent) {
             super(parent);
diff --git a/test/etc/default-build b/test/etc/default-build
index 1d11c9f..308a49f 100755
--- a/test/etc/default-build
+++ b/test/etc/default-build
@@ -25,8 +25,9 @@
 fi
 
 dx -JXmx256m --debug --dex --dump-to=classes.lst --output=classes.dex --dump-width=1000 classes
-zip ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar classes.dex
-dex2oatd --boot-image=${ANDROID_PRODUCT_OUT}/data/art-test/core.art --dex-file=${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar --dex-location=/data/art-test/$TEST_NAME.jar --oat-file=${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar.oat
+mkdir -p ${ANDROID_PRODUCT_OUT}/data/run-test
+zip ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar classes.dex
+dex2oatd --boot-image=${ANDROID_PRODUCT_OUT}/data/art-test/core.art --dex-file=${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar --dex-location=/data/run-test/$TEST_NAME.jar --oat-file=${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar.oat
 
 if [ -r src-ex ]; then
     mkdir classes-ex
@@ -36,8 +37,9 @@
     # quick shuffle so that the stored name is "classes.dex"
     mv classes.dex classes-1.dex
     mv classes-ex.dex classes.dex
-    zip ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.jar classes.dex
-    dex2oatd --boot-image=${ANDROID_PRODUCT_OUT}/data/art-test/core.art --dex-file=${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.jar --dex-location=/data/art-test/$TEST_NAME-ex.jar --oat-file=${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.jar.oat
+    mkdir -p ${ANDROID_PRODUCT_OUT}/data/run-test
+    zip ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME-ex.jar classes.dex
+    dex2oatd --boot-image=${ANDROID_PRODUCT_OUT}/data/art-test/core.art --dex-file=${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME-ex.jar --dex-location=/data/run-test/$TEST_NAME-ex.jar --oat-file=${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME-ex.jar.oat
     mv classes.dex classes-ex.dex
     mv classes-1.dex classes.dex
 fi
diff --git a/test/etc/push-and-run-test-jar b/test/etc/push-and-run-test-jar
index 19d5988..324ac2a 100755
--- a/test/etc/push-and-run-test-jar
+++ b/test/etc/push-and-run-test-jar
@@ -91,17 +91,17 @@
 msg "------------------------------"
 
 if [ "$QUIET" = "n" ]; then
-  adb shell mkdir /data/art-test
-  adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar /data/art-test
-  adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar.oat /data/art-test
-  adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.jar /data/art-test
-  adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.jar.oat /data/art-test
+  adb shell mkdir /data/run-test
+  adb push ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar /data/run-test
+  adb push ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar.oat /data/run-test
+  adb push ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME-ex.jar /data/run-test
+  adb push ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME-ex.jar.oat /data/run-test
 else
-  adb shell mkdir /data/art-test >/dev/null 2>&1
-  adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar /data/art-test >/dev/null 2>&1
-  adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME.jar.oat /data/art-test >/dev/null 2>&1
-  adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.jar /data/art-test >/dev/null 2>&1
-  adb push ${ANDROID_PRODUCT_OUT}/data/art-test/$TEST_NAME-ex.jar.oat /data/art-test >/dev/null 2>&1
+  adb shell mkdir /data/run-test >/dev/null 2>&1
+  adb push ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar /data/run-test >/dev/null 2>&1
+  adb push ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME.jar.oat /data/run-test >/dev/null 2>&1
+  adb push ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME-ex.jar /data/run-test >/dev/null 2>&1
+  adb push ${ANDROID_PRODUCT_OUT}/data/run-test/$TEST_NAME-ex.jar.oat /data/run-test >/dev/null 2>&1
 fi
 
 if [ "$DEBUG" = "y" ]; then
@@ -118,7 +118,7 @@
 
 cmdline="cd /data; $INVOKE_WITH $OATEXEC $DEX_DEBUG $ZYGOTE -Xjnigreflimit:256 \
     -Ximage:/data/art-test/core.art \
-    -cp /data/art-test/$TEST_NAME.jar \
+    -cp /data/run-test/$TEST_NAME.jar \
     Main"
 if [ "$DEV_MODE" = "y" ]; then
   echo $cmdline "$@"