xref: /aosp_15_r20/platform_testing/emu_test/run_test.sh (revision dd0948b35e70be4c0246aabd6c72554a5eb8b22a)
1*dd0948b3SAndroid Build Coastguard Worker#!/bin/bash
2*dd0948b3SAndroid Build Coastguard Worker# It is to be used with BYOB setup to run tests on cloud VMs.
3*dd0948b3SAndroid Build Coastguard Worker# It will run UI and boot tests on them.
4*dd0948b3SAndroid Build Coastguard Worker#
5*dd0948b3SAndroid Build Coastguard Worker# It takes 3 command line arguments.
6*dd0948b3SAndroid Build Coastguard Worker# DIST_DIR => Absolute path for the distribution directory.
7*dd0948b3SAndroid Build Coastguard Worker# API => API number for the system image
8*dd0948b3SAndroid Build Coastguard Worker# ORI => branch code for the system image
9*dd0948b3SAndroid Build Coastguard Worker#
10*dd0948b3SAndroid Build Coastguard Worker# It will return 0 if it is able to execute tests, otherwise
11*dd0948b3SAndroid Build Coastguard Worker# it will return 1.
12*dd0948b3SAndroid Build Coastguard Worker#
13*dd0948b3SAndroid Build Coastguard Worker# For the test results please refer to go/dashboard-adt
14*dd0948b3SAndroid Build Coastguard Worker#
15*dd0948b3SAndroid Build Coastguard Worker# Owner: [email protected]
16*dd0948b3SAndroid Build Coastguard Worker
17*dd0948b3SAndroid Build Coastguard WorkerDIST_DIR=$1
18*dd0948b3SAndroid Build Coastguard WorkerAPI=$2
19*dd0948b3SAndroid Build Coastguard WorkerORI=$3
20*dd0948b3SAndroid Build Coastguard Worker
21*dd0948b3SAndroid Build Coastguard Workerfunction run_with_timeout () {
22*dd0948b3SAndroid Build Coastguard Worker   ( $1 $2 $3 $4 ) & pid=$!
23*dd0948b3SAndroid Build Coastguard Worker   ( sleep $5 && kill -HUP $pid ) 2>/dev/null & watcher=$!
24*dd0948b3SAndroid Build Coastguard Worker   if wait $pid 2>/dev/null; then
25*dd0948b3SAndroid Build Coastguard Worker      pkill -HUP -P $watcher
26*dd0948b3SAndroid Build Coastguard Worker      wait $watcher
27*dd0948b3SAndroid Build Coastguard Worker   else
28*dd0948b3SAndroid Build Coastguard Worker      echo "Test time out."
29*dd0948b3SAndroid Build Coastguard Worker      exit 1
30*dd0948b3SAndroid Build Coastguard Worker   fi
31*dd0948b3SAndroid Build Coastguard Worker}
32*dd0948b3SAndroid Build Coastguard Worker
33*dd0948b3SAndroid Build Coastguard Workerecho "Checkout adt-infra repo"
34*dd0948b3SAndroid Build Coastguard Worker# $ADT_INFRA has to be set on the build machine. It should have absolute path
35*dd0948b3SAndroid Build Coastguard Worker# where adt-infra needs to be checked out.
36*dd0948b3SAndroid Build Coastguard Workerrm -rf $ADT_INFRA
37*dd0948b3SAndroid Build Coastguard Workergit clone https://android.googlesource.com/platform/external/adt-infra -b emu-master-dev $ADT_INFRA
38*dd0948b3SAndroid Build Coastguard Worker
39*dd0948b3SAndroid Build Coastguard WorkerBUILD_DIR="out/prebuilt_cached/builds"
40*dd0948b3SAndroid Build Coastguard Worker
41*dd0948b3SAndroid Build Coastguard Workerexport ANDROID_HOME=$SDK_SYS_IMAGE
42*dd0948b3SAndroid Build Coastguard Workerexport ANDROID_SDK_ROOT=$SDK_SYS_IMAGE
43*dd0948b3SAndroid Build Coastguard Worker
44*dd0948b3SAndroid Build Coastguard Workerecho "Setup builds"
45*dd0948b3SAndroid Build Coastguard Worker$ADT_INFRA/emu_test/utils/setup_builds.sh $BUILD_DIR $API
46*dd0948b3SAndroid Build Coastguard Worker
47*dd0948b3SAndroid Build Coastguard Workerecho "Run Boot tests from $ADT_INFRA"
48*dd0948b3SAndroid Build Coastguard Workercmd="$ADT_INFRA/emu_test/utils/run_boot_test.sh"
49*dd0948b3SAndroid Build Coastguard Workerrun_with_timeout $cmd $DIST_DIR $ORI $API 5400
50*dd0948b3SAndroid Build Coastguard Worker
51*dd0948b3SAndroid Build Coastguard Worker# Skip UI tests for presubmit build which has a build number starts with P.
52*dd0948b3SAndroid Build Coastguard Workerif [[ $BUILD_NUMBER != P* ]]; then
53*dd0948b3SAndroid Build Coastguard Worker    echo "Run UI tests from $ADT_INFRA"
54*dd0948b3SAndroid Build Coastguard Worker    cmd="$ADT_INFRA/emu_test/utils/run_ui_test.sh"
55*dd0948b3SAndroid Build Coastguard Worker    run_with_timeout $cmd $DIST_DIR $ORI $API 10800
56*dd0948b3SAndroid Build Coastguard Workerfi
57*dd0948b3SAndroid Build Coastguard Worker
58*dd0948b3SAndroid Build Coastguard Workerecho "Cleanup prebuilts"
59*dd0948b3SAndroid Build Coastguard Workerrm -rf /buildbot/prebuilt/*
60*dd0948b3SAndroid Build Coastguard Worker
61*dd0948b3SAndroid Build Coastguard Workerexit 0
62