tests/periph_rtc: test clear alarm

This commit is contained in:
Daniel Lockau 2020-12-15 09:20:43 +01:00
parent 33afc0ddab
commit e7054b4f53
2 changed files with 29 additions and 6 deletions

View File

@ -92,8 +92,30 @@ int main(void)
/* verify alarm */
rtc_get_alarm(&time);
print_time(" Alarm is set to ", &time);
/* clear alarm */
rtc_clear_alarm();
rtc_get_time(&time);
print_time(" Alarm cleared at ", &time);
/* verify alarm has been cleared */
xtimer_sleep(PERIOD);
rtc_get_time(&time);
if (mutex_trylock(&rtc_mtx)) {
print_time(" Error: Alarm at ", &time);
}
else {
print_time(" No alarm at ", &time);
}
/* set alarm */
rtc_get_time(&time);
inc_secs(&time, PERIOD);
rtc_set_alarm(&time, cb, &rtc_mtx);
print_time(" Setting alarm to ", &time);
puts("");
/* loop over a few alarm cycles */
while (1) {
mutex_lock(&rtc_mtx);
puts("Alarm!");

View File

@ -21,14 +21,9 @@ def testfunc(child):
alarm_count = int(child.match.group(1))
child.expect(r' Setting clock to ({})'.format(DATE_PATTERN))
clock_set = child.match.group(1)
if BOARD == 'native':
child.expect(r'.*rtc_set_time: not implemented')
child.expect(r'Clock value is now ({})'.format(DATE_PATTERN))
clock_value = child.match.group(1)
if BOARD != 'native':
# Set clock is not implemented for native board so no need to compare
# clock values
assert clock_set == clock_value
assert clock_set == clock_value
child.expect(r' Setting alarm to ({})'.format(DATE_PATTERN))
alarm_set = child.match.group(1)
@ -36,6 +31,12 @@ def testfunc(child):
alarm_value = child.match.group(1)
assert alarm_set == alarm_value
child.expect(r" Alarm cleared at ({})".format(DATE_PATTERN))
child.expect(r" No alarm at ({})".format(DATE_PATTERN))
no_alarm_value = child.match.group(1)
assert alarm_value == no_alarm_value
child.expect(r" Setting alarm to ({})".format(DATE_PATTERN))
for _ in range(alarm_count):
child.expect_exact('Alarm!')