Clean-up the device after running TerminalAppTests
Bug: 375051310
Test: watch TH
Change-Id: If9b7686d755d35b210a84cfab0af44149520757d
diff --git a/tests/Terminal/Android.bp b/tests/Terminal/Android.bp
index cafbe93..029fbea 100644
--- a/tests/Terminal/Android.bp
+++ b/tests/Terminal/Android.bp
@@ -20,5 +20,8 @@
platform_apis: true,
test_suites: ["general-tests"],
instrumentation_for: "VmTerminalApp",
- data: ["TerminalAppTests-preparer.sh"],
+ data: [
+ "TerminalAppTests-helper.sh",
+ "TerminalAppTests-downloader.sh",
+ ],
}
diff --git a/tests/Terminal/AndroidTest.xml b/tests/Terminal/AndroidTest.xml
index 262421c..c1f33b9 100644
--- a/tests/Terminal/AndroidTest.xml
+++ b/tests/Terminal/AndroidTest.xml
@@ -26,8 +26,22 @@
<option name="force-root" value="true"/>
</target_preparer>
+ <!-- Download the VM image and push it to the device -->
<target_preparer class="com.android.tradefed.targetprep.RunHostScriptTargetPreparer">
- <option name="script-file" value="TerminalAppTests-preparer.sh" />
+ <option name="script-file" value="TerminalAppTests-downloader.sh" />
+ </target_preparer>
+
+ <!-- Push the helper script to the device -->
+ <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
+ <option name="push" value="TerminalAppTests-helper.sh->/data/local/tmp/helper.sh"/>
+ <option name="post-push" value="chmod 755 /data/local/tmp/helper.sh"/>
+ <option name="cleanup" value="true"/>
+ </target_preparer>
+
+ <!-- Run the helper script to enable/disable the Terminal app before and after the test run -->
+ <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
+ <option name="run-command" value="/data/local/tmp/helper.sh setup"/>
+ <option name="teardown-command" value="/data/local/tmp/helper.sh teardown"/>
</target_preparer>
<test class="com.android.tradefed.testtype.AndroidJUnitTest">
diff --git a/tests/Terminal/TerminalAppTests-preparer.sh b/tests/Terminal/TerminalAppTests-downloader.sh
similarity index 86%
rename from tests/Terminal/TerminalAppTests-preparer.sh
rename to tests/Terminal/TerminalAppTests-downloader.sh
index 6022d7d..015caad 100644
--- a/tests/Terminal/TerminalAppTests-preparer.sh
+++ b/tests/Terminal/TerminalAppTests-downloader.sh
@@ -19,10 +19,6 @@
serial=${ANDROID_SERIAL}
user=$(adb -s ${serial} shell am get-current-user)
-# Enable the terminal app
-package_name=$(adb -s ${serial} shell pm list package virtualization.terminal | cut -d ':' -f 2)
-adb -s ${serial} shell pm enable --user ${user} ${package_name}
-
# Identify file to download
arch=$(adb -s ${serial} shell getprop ro.bionic.arch)
if [ ${arch} == "arm64" ]; then
diff --git a/tests/Terminal/TerminalAppTests-helper.sh b/tests/Terminal/TerminalAppTests-helper.sh
new file mode 100644
index 0000000..b9f2b08
--- /dev/null
+++ b/tests/Terminal/TerminalAppTests-helper.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+# Copyright 2024 Google Inc. All rights reserved.
+#
+# 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.
+
+set -e
+
+user=$(am get-current-user)
+package_name=$(pm list package virtualization.terminal | cut -d ':' -f 2)
+
+if [ $1 == "setup" ]; then
+ pm enable --user ${user} ${package_name}
+elif [ $1 == "teardown" ]; then
+ pm clear --user ${user} ${package_name}
+ pm disable --user ${user} ${package_name}
+ rm -rf /data/media/${user}/linux
+else
+ echo Unsupported command: $1
+ exit 1
+fi