]
self._android_flavor._bot_info.run(
cmd, env=self._android_flavor._default_env)
+ cmd = [
+ os.path.join(self._android_flavor.android_bin, 'adb_wait_for_charge'),
+ '-s', self._serial,
+ ]
+ self._android_flavor._bot_info.run(
+ cmd, env=self._android_flavor._default_env)
def maybe_wait_for_device(self):
"""Run 'adb wait-for-device' if it hasn't already been run."""
--- /dev/null
+#!/bin/bash
+#
+# Wait for the device to be charged enough for testing.
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+source $SCRIPT_DIR/android_setup.sh
+source $SCRIPT_DIR/utils/setup_adb.sh
+
+# Helper function used by get_battery_level. Parses the battery level from
+# dumpsys output.
+function _parse_battery_level {
+ SPLIT=( $@ )
+
+ HAS_BATTERY=1
+ LEVEL=""
+
+ for i in "${!SPLIT[@]}"; do
+ if [ "${SPLIT[$i]}" = "level:" ]; then
+ LEVEL="${SPLIT[$i+1]}"
+ fi
+ if [ "${SPLIT[$i]}" = "present:" ]; then
+ PRESENT="$(echo "${SPLIT[$i+1]}" | tr -d '\r')"
+ if [ "$PRESENT" = "0" ]; then
+ HAS_BATTERY=0
+ fi
+ if [ "$PRESENT" = "false" ]; then
+ HAS_BATTERY=0
+ fi
+ fi
+ done
+
+ if [ "$HAS_BATTERY" = "1" ]; then
+ echo "$LEVEL" | tr -d '\r'
+ return
+ fi
+ # If there's no battery, report a full battery.
+ echo "Device has no battery." 1>&2
+ echo "100"
+}
+
+# Echo the battery level percentage of the attached Android device.
+function get_battery_level {
+ STATS="$($ADB $DEVICE_SERIAL shell dumpsys batteryproperties)"
+ SPLIT=( $STATS )
+ RV="$(_parse_battery_level ${SPLIT[@]})"
+ if [ -n "$RV" ]; then
+ echo "$RV"
+ return
+ fi
+
+ echo "Battery level fallback..." 1>&2
+
+ STATS="$($ADB $DEVICE_SERIAL shell dumpsys battery)"
+ SPLIT=( $STATS )
+ RV="$(_parse_battery_level ${SPLIT[@]})"
+ if [ "$RV" != "-1" ]; then
+ echo "$RV"
+ return
+ fi
+
+ echo "Could not determine battery level!" 1>&2
+ # Just exit to prevent hanging forever or failing the build.
+ echo "0"
+}
+
+# Wait for battery charge.
+DESIRED_BATTERY_LEVEL=80
+CURRENT_BATTERY_LEVEL="$(get_battery_level)"
+while [ "${CURRENT_BATTERY_LEVEL}" -lt "${DESIRED_BATTERY_LEVEL}" ]; do
+ echo "Battery level is ${CURRENT_BATTERY_LEVEL}; waiting to charge to ${DESIRED_BATTERY_LEVEL}"
+ sleep 5
+ CURRENT_BATTERY_LEVEL="$(get_battery_level)"
+done
+
+echo "Charged!"
\ No newline at end of file
#!/bin/bash
#
-# Wait for the device to be ready to run tests.
+# Wait for the device to be connected.
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source $SCRIPT_DIR/android_setup.sh
source $SCRIPT_DIR/utils/setup_adb.sh
-# Helper function used by get_battery_level. Parses the battery level from
-# dumpsys output.
-function _parse_battery_level {
- SPLIT=( $@ )
-
- HAS_BATTERY=1
- LEVEL=""
-
- for i in "${!SPLIT[@]}"; do
- if [ "${SPLIT[$i]}" = "level:" ]; then
- LEVEL="${SPLIT[$i+1]}"
- fi
- if [ "${SPLIT[$i]}" = "present:" ]; then
- PRESENT="$(echo "${SPLIT[$i+1]}" | tr -d '\r')"
- if [ "$PRESENT" = "0" ]; then
- HAS_BATTERY=0
- fi
- if [ "$PRESENT" = "false" ]; then
- HAS_BATTERY=0
- fi
- fi
- done
-
- if [ "$HAS_BATTERY" = "1" ]; then
- echo "$LEVEL" | tr -d '\r'
- return
- fi
- # If there's no battery, report a full battery.
- echo "Device has no battery." 1>&2
- echo "100"
-}
-
-# Echo the battery level percentage of the attached Android device.
-function get_battery_level {
- STATS="$($ADB $DEVICE_SERIAL shell dumpsys batteryproperties)"
- SPLIT=( $STATS )
- RV="$(_parse_battery_level ${SPLIT[@]})"
- if [ -n "$RV" ]; then
- echo "$RV"
- return
- fi
-
- echo "Battery level fallback..." 1>&2
-
- STATS="$($ADB $DEVICE_SERIAL shell dumpsys battery)"
- SPLIT=( $STATS )
- RV="$(_parse_battery_level ${SPLIT[@]})"
- if [ "$RV" != "-1" ]; then
- echo "$RV"
- return
- fi
-
- echo "Could not determine battery level!" 1>&2
- # Just exit to prevent hanging forever or failing the build.
- echo "0"
-}
-
set -e
# Wait for the device to be connected and fully booted.
sleep 5
done
-# Wait for battery charge.
-DESIRED_BATTERY_LEVEL=80
-CURRENT_BATTERY_LEVEL="$(get_battery_level)"
-while [ "${CURRENT_BATTERY_LEVEL}" -lt "${DESIRED_BATTERY_LEVEL}" ]; do
- echo "Battery level is ${CURRENT_BATTERY_LEVEL}; waiting to charge to ${DESIRED_BATTERY_LEVEL}"
- sleep 5
- CURRENT_BATTERY_LEVEL="$(get_battery_level)"
-done
-
-echo "Ready!"
+echo "Connected!"