drivertest/rtc:fix rtc testcase.

deviation from (-10,0) to (-10,10)

Signed-off-by: yangguangcai <yangguangcai@xiaomi.com>
This commit is contained in:
yangguangcai 2023-05-30 19:50:19 +08:00 committed by Xiang Xiao
parent cd802f6a8f
commit 0c8579151f

View File

@ -203,7 +203,7 @@ static void test_case_rtc_02(FAR void **state)
struct rtc_setalarm_s rtc_setalarm;
struct rtc_rdalarm_s rtc_rdalarm;
struct rtc_setrelative_s rtc_setrelative;
struct rtc_time rd_time;
struct rtc_time set_time;
uint32_t before_timestamp;
uint32_t range;
sigset_t set;
@ -217,8 +217,11 @@ static void test_case_rtc_02(FAR void **state)
fd = open(rtc_state->devpath, O_RDWR);
assert_return_code(fd, 0);
ret = ioctl(fd, RTC_RD_TIME, &rd_time);
assert_return_code(ret, OK);
memset(&set_time, 0, sizeof(set_time));
set_time.tm_year = 2000 - TM_YEAR_BASE;
set_time.tm_mon = TM_JANUARY;
set_time.tm_mday = 1;
set_time.tm_wday = TM_SATURDAY;
/* Set rtc alarm */
@ -227,10 +230,13 @@ static void test_case_rtc_02(FAR void **state)
rtc_setalarm.event.sigev_notify = SIGEV_SIGNAL;
rtc_setalarm.event.sigev_signo = RTC_SIGNO;
rtc_setalarm.event.sigev_value.sival_ptr = NULL;
rtc_setalarm.time = rd_time;
rtc_setalarm.time = set_time;
add_timeout(&rtc_setalarm.time);
ret = ioctl(fd, RTC_SET_TIME, (unsigned long)((uintptr_t)&set_time));
assert_return_code(ret, OK);
ret = ioctl(fd, RTC_SET_ALARM, &rtc_setalarm);
assert_return_code(ret, OK);
@ -242,7 +248,7 @@ static void test_case_rtc_02(FAR void **state)
ret = ioctl(fd, RTC_RD_ALARM, &rtc_rdalarm);
assert_return_code(ret, OK);
assert_int_equal(mktime((struct tm *)&rd_time) + DEFAULT_TIME_OUT,
assert_int_equal(mktime((struct tm *)&rtc_rdalarm.time),
mktime((struct tm *)&rtc_setalarm.time));
ret = sigwaitinfo(&set, NULL);
@ -250,14 +256,14 @@ static void test_case_rtc_02(FAR void **state)
range = abs(get_timestamp() - before_timestamp);
assert_in_range(range, DEFAULT_TIME_OUT * 1000 - RTC_DEFAULT_DEVIATION,
DEFAULT_TIME_OUT * 1000);
DEFAULT_TIME_OUT * 1000 + RTC_DEFAULT_DEVIATION);
/* Cancel rtc alarm */
ret = ioctl(fd, RTC_RD_TIME, &rd_time);
ret = ioctl(fd, RTC_SET_TIME, (unsigned long)((uintptr_t)&set_time));
assert_return_code(ret, OK);
rtc_setalarm.time = rd_time;
rtc_setalarm.time = set_time;
add_timeout(&rtc_setalarm.time);
ret = ioctl(fd, RTC_SET_ALARM, &rtc_setalarm);
@ -285,7 +291,7 @@ static void test_case_rtc_02(FAR void **state)
range = abs(get_timestamp() - before_timestamp);
assert_in_range(range, DEFAULT_TIME_OUT * 1000 - RTC_DEFAULT_DEVIATION,
DEFAULT_TIME_OUT * 1000);
DEFAULT_TIME_OUT * 1000 + RTC_DEFAULT_DEVIATION);
close(fd);
}
#endif
@ -300,7 +306,7 @@ static void rtc_periodic_callback(union sigval arg)
FAR int *tim = (int *)arg.sival_ptr;
int range = get_timestamp() - *tim;
assert_in_range(range, DEFAULT_TIME_OUT * 1000 - RTC_DEFAULT_DEVIATION,
DEFAULT_TIME_OUT * 1000);
DEFAULT_TIME_OUT * 1000 + RTC_DEFAULT_DEVIATION);
syslog(LOG_DEBUG, "rtc periodic callback trigger!!!\n");
*tim = get_timestamp();
}