43 lines
1.7 KiB
Python
43 lines
1.7 KiB
Python
from __future__ import unicode_literals
|
|
from tiny_test_fw import Utility
|
|
import re
|
|
import time
|
|
import ttfw_idf
|
|
|
|
|
|
@ttfw_idf.idf_example_test(env_tag='Example_GENERIC')
|
|
def test_examples_ulp(env, extra_data):
|
|
|
|
dut = env.get_dut('ulp', 'examples/system/ulp')
|
|
dut.start_app()
|
|
|
|
dut.expect_all('Not ULP wakeup, initializing ULP',
|
|
'Entering deep sleep',
|
|
timeout=30)
|
|
|
|
def generate_gpio0_events():
|
|
for _ in range(5):
|
|
dut.port_inst.setDTR(True) # Pulling GPIO0 low using DTR
|
|
time.sleep(0.25)
|
|
dut.port_inst.setDTR(False)
|
|
time.sleep(0.25)
|
|
|
|
nvs_value = None
|
|
for _ in range(5):
|
|
generate_gpio0_events()
|
|
dut.expect('ULP wakeup, saving pulse count', timeout=5)
|
|
Utility.console_log('Woke up...')
|
|
init_count = int(dut.expect(re.compile(r'Read pulse count from NVS:\s+(\d+)'), timeout=5)[0], 10)
|
|
assert nvs_value in (init_count, None), ('Read count is {} and previously written value is {}'
|
|
''.format(init_count, nvs_value))
|
|
inc = int(dut.expect(re.compile(r'Pulse count from ULP:\s+(\d+)'), timeout=5)[0], 10)
|
|
assert inc in (5, 6), 'pulse count is {}'.format(inc)
|
|
new_count = int(dut.expect(re.compile(r'Wrote updated pulse count to NVS:\s+(\d+)'), timeout=5)[0], 10)
|
|
assert init_count + inc == new_count, '{} + {} != {}'.format(init_count, inc, new_count)
|
|
nvs_value = new_count
|
|
Utility.console_log('Pulse count written to NVS: {}. Entering deep sleep...'.format(nvs_value))
|
|
dut.expect('Entering deep sleep', timeout=5)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
test_examples_ulp()
|