ART: Fix run-tests for emulator
On a standard emulator, there is no sdcard emulation, so trying to
create a temp file in /sdcard will fail - it will try to create in
the root file system, which is read-only.
Change-Id: If7d1ad82db156177a5be58c2f79ed730cf7ab6b9
diff --git a/test/802-deoptimization/src/DeoptimizationController.java b/test/802-deoptimization/src/DeoptimizationController.java
index c031c07..c926669 100644
--- a/test/802-deoptimization/src/DeoptimizationController.java
+++ b/test/802-deoptimization/src/DeoptimizationController.java
@@ -22,15 +22,23 @@
* Controls deoptimization using dalvik.system.VMDebug class.
*/
public class DeoptimizationController {
- public static void startDeoptomization() {
+ private static File createTempFile() throws Exception {
try {
- File tempFile;
+ return File.createTempFile("test", ".trace");
+ } catch (IOException e) {
+ System.setProperty("java.io.tmpdir", "/data/local/tmp");
try {
- tempFile = File.createTempFile("test", ".trace");
- } catch (IOException e) {
+ return File.createTempFile("test", ".trace");
+ } catch (IOException e2) {
System.setProperty("java.io.tmpdir", "/sdcard");
- tempFile = File.createTempFile("test", ".trace");
+ return File.createTempFile("test", ".trace");
}
+ }
+ }
+
+ public static void startDeoptimization() {
+ try {
+ File tempFile = createTempFile();
tempFile.deleteOnExit();
String tempFileName = tempFile.getPath();
@@ -43,7 +51,7 @@
}
}
- public static void stopDeoptomization() {
+ public static void stopDeoptimization() {
try {
VMDebug.stopMethodTracing();
if (VMDebug.getMethodTracingMode() != 0) {