Use temporary directory for each invocation to compiledump

Bug: 172905243
Change-Id: I0ae5c57b1b5ecb2e0ee443586bf1c3f19272eb1d
diff --git a/tools/run_on_app_dump.py b/tools/run_on_app_dump.py
index 0bfb39d..296fa50 100755
--- a/tools/run_on_app_dump.py
+++ b/tools/run_on_app_dump.py
@@ -549,32 +549,33 @@
     'config_file_consumer': remove_print_lines,
   })
 
-  compile_result = compiledump.run1(temp_dir, args, [])
-
-  out_jar = os.path.join(temp_dir, "out.jar")
-  out_mapping = os.path.join(temp_dir, "out.jar.map")
   app_jar = os.path.join(
     temp_dir, '{}_{}_{}_dex_out.jar'.format(
       app.name, shrinker, compilation_step_index))
   app_mapping = os.path.join(
     temp_dir, '{}_{}_{}_dex_out.jar.map'.format(
       app.name, shrinker, compilation_step_index))
-
-  if compile_result != 0 or not os.path.isfile(out_jar):
-    assert False, "Compilation of app_jar failed"
-  shutil.move(out_jar, app_jar)
-  shutil.move(out_mapping, app_mapping)
-
   recomp_jar = None
-  if compilation_step_index < compilation_steps - 1:
-    args['classfile'] = True
-    args['min_api'] = "10000"
-    compile_result = compiledump.run1(temp_dir, args, [])
-    if compile_result == 0:
-      recomp_jar = os.path.join(
-        temp_dir, '{}_{}_{}_cf_out.jar'.format(
-          app.name, shrinker, compilation_step_index))
-      shutil.move(out_jar, recomp_jar)
+
+  with utils.TempDir() as compile_temp_dir:
+    compile_result = compiledump.run1(compile_temp_dir, args, [])
+    out_jar = os.path.join(compile_temp_dir, "out.jar")
+    out_mapping = os.path.join(compile_temp_dir, "out.jar.map")
+
+    if compile_result != 0 or not os.path.isfile(out_jar):
+      assert False, 'Compilation of {} failed'.format(dump_for_app(app_dir, app))
+    shutil.move(out_jar, app_jar)
+    shutil.move(out_mapping, app_mapping)
+
+    if compilation_step_index < compilation_steps - 1:
+      args['classfile'] = True
+      args['min_api'] = "10000"
+      compile_result = compiledump.run1(compile_temp_dir, args, [])
+      if compile_result == 0:
+        recomp_jar = os.path.join(
+          temp_dir, '{}_{}_{}_cf_out.jar'.format(
+            app.name, shrinker, compilation_step_index))
+        shutil.move(out_jar, recomp_jar)
 
   return (app_jar, app_mapping, recomp_jar)
 
@@ -605,17 +606,16 @@
     'config_file_consumer': rewrite_file
   })
 
-  compile_result = compiledump.run1(temp_dir, args, [])
-
-  out_jar = os.path.join(temp_dir, "out.jar")
   test_jar = os.path.join(
     temp_dir, '{}_{}_{}_test_out.jar'.format(
       app.name, shrinker, compilation_step_index))
 
-  if compile_result != 0 or not os.path.isfile(out_jar):
-    return None
-
-  shutil.move(out_jar, test_jar)
+  with utils.TempDir() as compile_temp_dir:
+    compile_result = compiledump.run1(compile_temp_dir, args, [])
+    out_jar = os.path.join(compile_temp_dir, "out.jar")
+    if compile_result != 0 or not os.path.isfile(out_jar):
+      return None
+    shutil.move(out_jar, test_jar)
 
   return test_jar