This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git
commit 35cf746025fbd23f6367c0e8cb014bb110219b83 Author: ouyangxiangzhen <[email protected]> AuthorDate: Tue Sep 2 11:06:03 2025 +0800 testing/drivers: Fix wrong test-cases. This commit fixed totally wrong test-cases for the periodical timers. Signed-off-by: ouyangxiangzhen <[email protected]> --- testing/drivers/drivertest/drivertest_posix_timer.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/testing/drivers/drivertest/drivertest_posix_timer.c b/testing/drivers/drivertest/drivertest_posix_timer.c index ccca6e1c2..13eb4425a 100644 --- a/testing/drivers/drivertest/drivertest_posix_timer.c +++ b/testing/drivers/drivertest/drivertest_posix_timer.c @@ -65,6 +65,7 @@ struct posix_timer_state_s { struct itimerspec it; uint64_t tim; + uint32_t trigger_count; uint32_t deviation; }; @@ -157,15 +158,16 @@ static void posix_timer_callback(union sigval arg) { FAR struct posix_timer_state_s *sigev_para = (FAR struct posix_timer_state_s *)arg.sival_ptr; - int range = get_timestamp() - (*sigev_para).tim; + uint64_t expected = (*sigev_para).tim + + DEFAULT_TIME_OUT * (*sigev_para).trigger_count; + int range = get_timestamp() - expected; syslog(0, "range: %d ms\n", range); - assert(range >= sigev_para->it.it_interval.tv_sec * 1000 - - sigev_para->deviation); + assert(range >= sigev_para->it.it_interval.tv_sec * 1000); syslog(LOG_DEBUG, "callback trigger!!!\n"); - (*sigev_para).tim = get_timestamp(); + (*sigev_para).trigger_count++; } /**************************************************************************** @@ -226,6 +228,7 @@ int main(int argc, FAR char *argv[]) .it.it_value.tv_nsec = 0, .it.it_interval.tv_sec = DEFAULT_TIME_OUT, .it.it_interval.tv_nsec = 0, + .trigger_count = 0, .deviation = RTC_DEFAULT_DEVIATION };
