Merge pull request #16368 from kaspar030/backport/2021.04/fix_ztimer_is_set

ztimer: fix `ztimer_is_set()` [backport 2021.04]
This commit is contained in:
Kaspar Schleiser 2021-04-22 13:02:30 +02:00 committed by GitHub
commit e42ef1924f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 0 deletions

View File

@ -281,6 +281,10 @@ static ztimer_t *_now_next(ztimer_clock_t *clock)
}
#endif
}
else {
/* reset next pointer so ztimer_is_set() works */
entry->next = NULL;
}
return (ztimer_t *)entry;
}
else {

View File

@ -249,6 +249,41 @@ static void test_ztimer_mock_set16(void)
TEST_ASSERT_EQUAL_INT(0x100207d2, now);
}
/**
* @brief Testing ztimer_is_set()
*/
static void test_ztimer_mock_is_set(void)
{
ztimer_mock_t zmock;
ztimer_clock_t *z = &zmock.super;
/* Basic sanity test of the mock implementation */
ztimer_mock_init(&zmock, 32);
uint32_t count = 0;
ztimer_t alarm = { .callback = cb_incr, .arg = &count, };
ztimer_t alarm2 = { .callback = cb_incr, .arg = &count, };
ztimer_set(z, &alarm, 1000);
ztimer_set(z, &alarm2, 2000);
TEST_ASSERT_EQUAL_INT(0, count);
TEST_ASSERT(ztimer_is_set(z, &alarm));
TEST_ASSERT(ztimer_is_set(z, &alarm2));
ztimer_mock_advance(&zmock, 1000);
TEST_ASSERT_EQUAL_INT(1, count);
TEST_ASSERT(!ztimer_is_set(z, &alarm));
TEST_ASSERT(ztimer_is_set(z, &alarm2));
ztimer_mock_advance(&zmock, 1000);
TEST_ASSERT_EQUAL_INT(2, count);
TEST_ASSERT(!ztimer_is_set(z, &alarm));
TEST_ASSERT(!ztimer_is_set(z, &alarm2));
}
Test *tests_ztimer_mock_tests(void)
{
EMB_UNIT_TESTFIXTURES(fixtures) {
@ -258,6 +293,7 @@ Test *tests_ztimer_mock_tests(void)
new_TestFixture(test_ztimer_mock_now3),
new_TestFixture(test_ztimer_mock_set32),
new_TestFixture(test_ztimer_mock_set16),
new_TestFixture(test_ztimer_mock_is_set),
};
EMB_UNIT_TESTCALLER(ztimer_tests, NULL, NULL, fixtures);