mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-08 04:02:27 +00:00
Add protocol example tests
This commit is contained in:
49
examples/protocols/sntp/example_test.py
Normal file
49
examples/protocols/sntp/example_test.py
Normal file
@@ -0,0 +1,49 @@
|
||||
from __future__ import unicode_literals
|
||||
from tiny_test_fw import Utility
|
||||
import datetime
|
||||
import re
|
||||
import ttfw_idf
|
||||
|
||||
|
||||
@ttfw_idf.idf_example_test(env_tag='Example_WIFI')
|
||||
def test_examples_sntp(env, extra_data):
|
||||
|
||||
dut = env.get_dut('sntp', 'examples/protocols/sntp')
|
||||
dut.start_app()
|
||||
|
||||
dut.expect_all('Time is not set yet. Connecting to WiFi and getting time over NTP.',
|
||||
'Initializing SNTP',
|
||||
'Waiting for system time to be set... (1/10)',
|
||||
'Notification of a time synchronization event',
|
||||
timeout=60)
|
||||
|
||||
TIME_FORMAT = '%a %b %d %H:%M:%S %Y'
|
||||
TIME_FORMAT_REGEX = r'\w+ \w+ \d{1,2} \d{2}:\d{2}:\d{2} \d{4}'
|
||||
TIME_DIFF = datetime.timedelta(seconds=10 + 2) # cpu spends 10 seconds in deep sleep
|
||||
NY_time = None
|
||||
SH_time = None
|
||||
|
||||
def check_time(prev_NY_time, prev_SH_time):
|
||||
NY_str = dut.expect(re.compile(r'The current date/time in New York is: ({})'.format(TIME_FORMAT_REGEX)))[0]
|
||||
SH_str = dut.expect(re.compile(r'The current date/time in Shanghai is: ({})'.format(TIME_FORMAT_REGEX)))[0]
|
||||
Utility.console_log('New York: "{}"'.format(NY_str))
|
||||
Utility.console_log('Shanghai: "{}"'.format(SH_str))
|
||||
dut.expect('Entering deep sleep for 10 seconds')
|
||||
Utility.console_log('Sleeping...')
|
||||
new_NY_time = datetime.datetime.strptime(NY_str, TIME_FORMAT)
|
||||
new_SH_time = datetime.datetime.strptime(SH_str, TIME_FORMAT)
|
||||
|
||||
# The initial time is not checked because datetime has problems with timezones
|
||||
assert prev_NY_time is None or new_NY_time - prev_NY_time < TIME_DIFF
|
||||
assert prev_SH_time is None or new_SH_time - prev_SH_time < TIME_DIFF
|
||||
|
||||
return (new_NY_time, new_SH_time)
|
||||
|
||||
NY_time, SH_time = check_time(NY_time, SH_time)
|
||||
for i in range(2, 4):
|
||||
dut.expect('example: Boot count: {}'.format(i), timeout=30)
|
||||
NY_time, SH_time = check_time(NY_time, SH_time)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
test_examples_sntp()
|
Reference in New Issue
Block a user