OLD | NEW |
1 #!/bin/bash | 1 #!/bin/bash |
2 # | 2 # |
3 # Wait for the device to be ready to run tests. | 3 # Wait for the device to be connected. |
4 | 4 |
5 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" | 5 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
6 source $SCRIPT_DIR/android_setup.sh | 6 source $SCRIPT_DIR/android_setup.sh |
7 source $SCRIPT_DIR/utils/setup_adb.sh | 7 source $SCRIPT_DIR/utils/setup_adb.sh |
8 | 8 |
9 # Helper function used by get_battery_level. Parses the battery level from | |
10 # dumpsys output. | |
11 function _parse_battery_level { | |
12 SPLIT=( $@ ) | |
13 | |
14 HAS_BATTERY=1 | |
15 LEVEL="" | |
16 | |
17 for i in "${!SPLIT[@]}"; do | |
18 if [ "${SPLIT[$i]}" = "level:" ]; then | |
19 LEVEL="${SPLIT[$i+1]}" | |
20 fi | |
21 if [ "${SPLIT[$i]}" = "present:" ]; then | |
22 PRESENT="$(echo "${SPLIT[$i+1]}" | tr -d '\r')" | |
23 if [ "$PRESENT" = "0" ]; then | |
24 HAS_BATTERY=0 | |
25 fi | |
26 if [ "$PRESENT" = "false" ]; then | |
27 HAS_BATTERY=0 | |
28 fi | |
29 fi | |
30 done | |
31 | |
32 if [ "$HAS_BATTERY" = "1" ]; then | |
33 echo "$LEVEL" | tr -d '\r' | |
34 return | |
35 fi | |
36 # If there's no battery, report a full battery. | |
37 echo "Device has no battery." 1>&2 | |
38 echo "100" | |
39 } | |
40 | |
41 # Echo the battery level percentage of the attached Android device. | |
42 function get_battery_level { | |
43 STATS="$($ADB $DEVICE_SERIAL shell dumpsys batteryproperties)" | |
44 SPLIT=( $STATS ) | |
45 RV="$(_parse_battery_level ${SPLIT[@]})" | |
46 if [ -n "$RV" ]; then | |
47 echo "$RV" | |
48 return | |
49 fi | |
50 | |
51 echo "Battery level fallback..." 1>&2 | |
52 | |
53 STATS="$($ADB $DEVICE_SERIAL shell dumpsys battery)" | |
54 SPLIT=( $STATS ) | |
55 RV="$(_parse_battery_level ${SPLIT[@]})" | |
56 if [ "$RV" != "-1" ]; then | |
57 echo "$RV" | |
58 return | |
59 fi | |
60 | |
61 echo "Could not determine battery level!" 1>&2 | |
62 # Just exit to prevent hanging forever or failing the build. | |
63 echo "0" | |
64 } | |
65 | |
66 set -e | 9 set -e |
67 | 10 |
68 # Wait for the device to be connected and fully booted. | 11 # Wait for the device to be connected and fully booted. |
69 while [ "$($ADB $DEVICE_SERIAL shell getprop sys.boot_completed | tr -d '\r')" !
= "1" ]; do | 12 while [ "$($ADB $DEVICE_SERIAL shell getprop sys.boot_completed | tr -d '\r')" !
= "1" ]; do |
70 echo "Waiting for the device to be connected and ready." | 13 echo "Waiting for the device to be connected and ready." |
71 sleep 5 | 14 sleep 5 |
72 done | 15 done |
73 | 16 |
74 # Wait for battery charge. | 17 echo "Connected!" |
75 DESIRED_BATTERY_LEVEL=80 | |
76 CURRENT_BATTERY_LEVEL="$(get_battery_level)" | |
77 while [ "${CURRENT_BATTERY_LEVEL}" -lt "${DESIRED_BATTERY_LEVEL}" ]; do | |
78 echo "Battery level is ${CURRENT_BATTERY_LEVEL}; waiting to charge to ${DESIRE
D_BATTERY_LEVEL}" | |
79 sleep 5 | |
80 CURRENT_BATTERY_LEVEL="$(get_battery_level)" | |
81 done | |
82 | |
83 echo "Ready!" | |
OLD | NEW |