summaryrefslogtreecommitdiff
path: root/tools/buildbot-setup-device.sh
diff options
context:
space:
mode:
author Ulya Trafimovich <skvadrik@google.com> 2023-01-19 18:26:43 +0000
committer Ulya Trofimovich <skvadrik@google.com> 2023-01-30 10:27:37 +0000
commit513801a31b69c4cf9397a85afd570a4c02b1f914 (patch)
tree8acc80bbfc629f7ef285fbb2a419ff9889814d5a /tools/buildbot-setup-device.sh
parent3633fe4e7dc8a4acaea0d9911c86683b51c1db2b (diff)
Add support for running ART tests on a Linux virtual machine.
Test: setup a local VM and run ART tests on it: lunch aosp_arm64-userdebug export ART_TEST_SSH_USER=ubuntu export ART_TEST_SSH_HOST=localhost export ART_TEST_SSH_PORT=10001 export ART_TEST_ON_VM=true . art/tools/buildbot-utils.sh art/tools/buildbot-build.sh --target # Create, boot and configure the VM. art/tools/buildbot-vm.sh create art/tools/buildbot-vm.sh boot art/tools/buildbot-vm.sh setup-ssh # password: 'ubuntu' art/tools/buildbot-cleanup-device.sh art/tools/buildbot-setup-device.sh art/tools/buildbot-sync.sh art/test.py --target -r 001-HelloWorld art/tools/run-gtests.sh Test: check that non-VM testing still works: lunch aosp_arm32-userdebug . art/tools/buildbot-utils.sh art/tools/buildbot-build.sh --target export ART_TEST_CHROOT=/data/local/art-test-chroot art/tools/buildbot-cleanup-device.sh art/tools/buildbot-setup-device.sh art/tools/buildbot-sync.sh art/test.py --target -r --32 001-HelloWorld Change-Id: I1393f8132b0b5d6ad10e291504550a5e7751f8e2
Diffstat (limited to 'tools/buildbot-setup-device.sh')
-rwxr-xr-xtools/buildbot-setup-device.sh33
1 files changed, 32 insertions, 1 deletions
diff --git a/tools/buildbot-setup-device.sh b/tools/buildbot-setup-device.sh
index 811ba8005f..90d680b7d2 100755
--- a/tools/buildbot-setup-device.sh
+++ b/tools/buildbot-setup-device.sh
@@ -25,7 +25,38 @@ else
verbose=false
fi
-# Setup as root, as some actions performed here require it.
+# Testing on a Linux VM requires special setup.
+if [[ -n "$ART_TEST_ON_VM" ]]; then
+ [[ -d "$ART_TEST_VM_DIR" ]] || { msgfatal "no VM found in $ART_TEST_VM_DIR"; }
+ $ART_SSH_CMD "true" || { msgerror "no VM (tried \"$ART_SSH_CMD true\""; }
+ $ART_SSH_CMD "
+ mkdir $ART_TEST_CHROOT
+
+ mkdir $ART_TEST_CHROOT/apex
+ mkdir $ART_TEST_CHROOT/bin
+ mkdir $ART_TEST_CHROOT/data
+ mkdir $ART_TEST_CHROOT/data/local
+ mkdir $ART_TEST_CHROOT/data/local/tmp
+ mkdir $ART_TEST_CHROOT/dev
+ mkdir $ART_TEST_CHROOT/etc
+ mkdir $ART_TEST_CHROOT/lib
+ mkdir $ART_TEST_CHROOT/linkerconfig
+ mkdir $ART_TEST_CHROOT/proc
+ mkdir $ART_TEST_CHROOT/sys
+ mkdir $ART_TEST_CHROOT/system
+ mkdir $ART_TEST_CHROOT/tmp
+
+ sudo mount -t proc /proc art-test-chroot/proc
+ sudo mount -t sysfs /sys art-test-chroot/sys
+ sudo mount --bind /dev art-test-chroot/dev
+ sudo mount --bind /bin art-test-chroot/bin
+ sudo mount --bind /lib art-test-chroot/lib
+ $ART_CHROOT_CMD echo \"Hello from chroot! I am \$(uname -a).\"
+ "
+ exit 0
+fi
+
+# Regular Android device. Setup as root, as some actions performed here require it.
adb version
adb root
adb wait-for-device