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