|  | #!/bin/bash | 
|  | # | 
|  | # Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file | 
|  | # for details. All rights reserved. Use of this source code is governed by a | 
|  | # BSD-style license that can be found in the LICENSE file. | 
|  |  | 
|  | # Helper script for tools/test_android_cts.py | 
|  |  | 
|  | readonly AOSP_PRESET="$1" | 
|  | shift | 
|  | readonly TASK="$1" | 
|  | shift | 
|  |  | 
|  | . build/envsetup.sh | 
|  | lunch "$AOSP_PRESET" | 
|  |  | 
|  | if [[ "$TASK" == "make" ]]; then | 
|  | make "$@" | 
|  | elif [[ "$TASK" == "m" ]]; then | 
|  | m "$@" | 
|  | elif [[ "$TASK" == "mmm" ]]; then | 
|  | mmm "$@" | 
|  | elif [[ "$TASK" == "mmma" ]]; then | 
|  | mmma "$@" | 
|  | elif [[ "$TASK" == "emulator" ]]; then | 
|  | # Launch emulator in bg and kill it in a trap | 
|  | # otherwise it won't get killed when this parent process is killed | 
|  | emulator "$@" & | 
|  | emulator_pid=$! | 
|  | trap "kill $emulator_pid; exit 1" 2 15 | 
|  | while true; do sleep 5; done | 
|  | elif [[ "$TASK" == "emulator_fg" ]]; then | 
|  | emulator "$@" | 
|  | elif [[ "$TASK" == "run-cts" ]]; then | 
|  | adb wait-for-device | 
|  | adb shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done; input keyevent 82' | 
|  |  | 
|  | echo "exit" | \ | 
|  | ANDROID_BUILD_TOP= \ | 
|  | "$@" | 
|  | else | 
|  | echo "Invalid task: '$TASK'" >&2 | 
|  | exit 1 | 
|  | fi |