| #!/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 |