ahat-tests: don't write to src directory during build

The art script writes to $PWD/android-data$$ by default, which is
in the source tree and may not be writeable.  It also causes the
timestamp of the top level source dir to change, which can cause
build globs to rerun on the next build and breaks unnecessary
rebuild checks.

Test: m checkbuild
Bug: 68105950
Change-Id: I75ddb6519b1c94132635517a6b65ea24cad25d91
diff --git a/tools/ahat/Android.mk b/tools/ahat/Android.mk
index 5eccba1..2d561dc 100644
--- a/tools/ahat/Android.mk
+++ b/tools/ahat/Android.mk
@@ -62,6 +62,12 @@
 AHAT_TEST_DUMP_BASE_HPROF := $(intermediates.COMMON)/test-dump-base.hprof
 AHAT_TEST_DUMP_PROGUARD_MAP := $(intermediates.COMMON)/test-dump.map
 
+# Directories to use for ANDROID_DATA when generating the test dumps to
+# ensure we don't pollute the source tree with any artifacts from running
+# dalvikvm.
+AHAT_TEST_DUMP_ANDROID_DATA := $(intermediates.COMMON)/test-dump-android_data
+AHAT_TEST_DUMP_BASE_ANDROID_DATA := $(intermediates.COMMON)/test-dump-base-android_data
+
 # Generate the proguard map in the desired location by copying it from
 # wherever the build system generates it by default.
 $(AHAT_TEST_DUMP_PROGUARD_MAP): PRIVATE_AHAT_SOURCE_PROGUARD_MAP := $(proguard_dictionary)
@@ -77,13 +83,21 @@
 
 $(AHAT_TEST_DUMP_HPROF): PRIVATE_AHAT_TEST_ART := $(HOST_OUT_EXECUTABLES)/art
 $(AHAT_TEST_DUMP_HPROF): PRIVATE_AHAT_TEST_DUMP_JAR := $(AHAT_TEST_DUMP_JAR)
+$(AHAT_TEST_DUMP_HPROF): PRIVATE_AHAT_TEST_ANDROID_DATA := $(AHAT_TEST_DUMP_ANDROID_DATA)
 $(AHAT_TEST_DUMP_HPROF): $(AHAT_TEST_DUMP_JAR) $(AHAT_TEST_DUMP_DEPENDENCIES)
-	$(PRIVATE_AHAT_TEST_ART) -cp $(PRIVATE_AHAT_TEST_DUMP_JAR) Main $@
+	rm -rf $(PRIVATE_AHAT_TEST_ANDROID_DATA)
+	mkdir -p $(PRIVATE_AHAT_TEST_ANDROID_DATA)
+	ANDROID_DATA=$(PRIVATE_AHAT_TEST_ANDROID_DATA) \
+	  $(PRIVATE_AHAT_TEST_ART) -cp $(PRIVATE_AHAT_TEST_DUMP_JAR) Main $@
 
 $(AHAT_TEST_DUMP_BASE_HPROF): PRIVATE_AHAT_TEST_ART := $(HOST_OUT_EXECUTABLES)/art
 $(AHAT_TEST_DUMP_BASE_HPROF): PRIVATE_AHAT_TEST_DUMP_JAR := $(AHAT_TEST_DUMP_JAR)
+$(AHAT_TEST_DUMP_BASE_HPROF): PRIVATE_AHAT_TEST_ANDROID_DATA := $(AHAT_TEST_DUMP_BASE_ANDROID_DATA)
 $(AHAT_TEST_DUMP_BASE_HPROF): $(AHAT_TEST_DUMP_JAR) $(AHAT_TEST_DUMP_DEPENDENCIES)
-	$(PRIVATE_AHAT_TEST_ART) -cp $(PRIVATE_AHAT_TEST_DUMP_JAR) Main $@ --base
+	rm -rf $(PRIVATE_AHAT_TEST_ANDROID_DATA)
+	mkdir -p $(PRIVATE_AHAT_TEST_ANDROID_DATA)
+	ANDROID_DATA=$(PRIVATE_AHAT_TEST_ANDROID_DATA) \
+	  $(PRIVATE_AHAT_TEST_ART) -cp $(PRIVATE_AHAT_TEST_DUMP_JAR) Main $@ --base
 
 # --- ahat-tests.jar --------------
 include $(CLEAR_VARS)
@@ -117,4 +131,6 @@
 AHAT_TEST_DUMP_BASE_HPROF :=
 AHAT_TEST_DUMP_PROGUARD_MAP :=
 AHAT_TEST_DUMP_DEPENDENCIES :=
+AHAT_TEST_DUMP_ANDROID_DATA :=
+AHAT_TEST_DUMP_BASE_ANDROID_DATA :=