| #!/bin/bash |
| # It is to be used with BYOB setup to run tests on cloud VMs. |
| # It will run UI and boot tests on them. |
| # |
| # It takes 3 command line arguments. |
| # DIST_DIR => Absolute path for the distribution directory. |
| # API => API number for the system image |
| # ORI => branch code for the system image |
| # |
| # It will return 0 if it is able to execute tests, otherwise |
| # it will return 1. |
| # |
| # For the test results please refer to go/dashboard-adt |
| # |
| # Owner: akagrawal@google.com |
| |
| DIST_DIR=$1 |
| API=$2 |
| ORI=$3 |
| |
| function run_with_timeout () { |
| ( $1 $2 $3 $4 ) & pid=$! |
| ( sleep $5 && kill -HUP $pid ) 2>/dev/null & watcher=$! |
| if wait $pid 2>/dev/null; then |
| pkill -HUP -P $watcher |
| wait $watcher |
| else |
| echo "Test time out." |
| exit 1 |
| fi |
| } |
| |
| echo "Checkout adt-infra repo" |
| # $ADT_INFRA has to be set on the build machine. It should have absolute path |
| # where adt-infra needs to be checked out. |
| rm -rf $ADT_INFRA |
| git clone https://android.googlesource.com/platform/external/adt-infra -b emu-master-dev $ADT_INFRA |
| |
| BUILD_DIR="out/prebuilt_cached/builds" |
| |
| export ANDROID_HOME=$SDK_SYS_IMAGE |
| export ANDROID_SDK_ROOT=$SDK_SYS_IMAGE |
| |
| echo "Setup builds" |
| $ADT_INFRA/emu_test/utils/setup_builds.sh $BUILD_DIR $API |
| |
| echo "Run Boot tests from $ADT_INFRA" |
| cmd="$ADT_INFRA/emu_test/utils/run_boot_test.sh" |
| run_with_timeout $cmd $DIST_DIR $ORI $API 5400 |
| |
| # Skip UI tests for presubmit build which has a build number starts with P. |
| if [[ $BUILD_NUMBER != P* ]]; then |
| echo "Run UI tests from $ADT_INFRA" |
| cmd="$ADT_INFRA/emu_test/utils/run_ui_test.sh" |
| run_with_timeout $cmd $DIST_DIR $ORI $API 10800 |
| fi |
| |
| echo "Cleanup prebuilts" |
| rm -rf /buildbot/prebuilt/* |
| |
| exit 0 |