blob: 68bfb35d5a07f8d6c4725d5e64483781ac679a29 [file] [log] [blame]
"""ADB stress test for sleep/wake.
usage: adb_sleep_wake_stress.py [-h] [-d float] [-c int]
optional arguments:
-h, --help Show this help message and exit.
-d float, --duration float Duration of time to run stress test (in hrs).
-c int, --count int Number of devices/emulators connected.
-p, --progress Print progress.
--log-dir Base directory under which logs will be placed.
"""
import os
import subprocess
import util
def test_sleep(dut):
"""Verify that putting the device to sleep is successful.
Args:
dut: Serial number of device to connect to.
Returns:
True if the device was successfully put to sleep, else False
"""
# Simulate power button press.
# It would be good if we verified the device was currently awake.
# Otherwise, this will actually wake up the device.
arg = 'adb -s ' + str(dut) + ' shell input keyevent POWER'
process = subprocess.Popen(arg.split(), stdout=subprocess.PIPE)
output, error = process.communicate()
success = True
for line in output.split('\n'):
if line.startswith('adb: error'):
success = False
print('\nERROR:\nFAILED to put device to sleep: ' + str(dut))
print(output)
return success
def test_wake(dut):
"""Verify that the device can be woken up.
Args:
dut: Serial number of device under test.
Returns:
True if the device was successfully woken up, else False.
"""
arg = 'adb -s ' + str(dut) + ' shell input keyevent POWER'
process = subprocess.Popen(arg.split(), stdout=subprocess.PIPE)
output, error = process.communicate()
success = True
for line in output.split('\n'):
if line.startswith('adb: error'):
print('\nERROR:\nFAILED to wake device: ' + str(dut))
print(output)
success = False
return success
def test_device(dut):
return test_sleep(dut) and test_wake(dut)
if __name__ == '__main__':
args = util.parse_args()
util.launcher(test_device, args.duration, args.count, is_print_progress=args.progress,
log_dir=os.path.join(args.log_dir, 'adb_sleep_wake_stress'))