diff --git a/testing/drivertest/drivertest_rtc.c b/testing/drivertest/drivertest_rtc.c index 8afe7375f..7fc948c06 100644 --- a/testing/drivertest/drivertest_rtc.c +++ b/testing/drivertest/drivertest_rtc.c @@ -40,6 +40,7 @@ #include <cmocka.h> #include <nuttx/timers/rtc.h> +#include <nuttx/time.h> /**************************************************************************** * Pre-processor Definitions @@ -117,16 +118,28 @@ static void test_case_rtc(FAR void **state) fd = open(rtc_state->devpath, O_WRONLY); assert_return_code(fd, 0); + memset(&set_time, 0, sizeof(set_time)); + set_time.tm_year = 2000 - TM_YEAR_BASE; + set_time.tm_mon = TM_FEBRUARY; + set_time.tm_mday = 1; + set_time.tm_wday = TM_SATURDAY; + + ret = ioctl(fd, RTC_SET_TIME, (unsigned long)((uintptr_t)&set_time)); + assert_return_code(ret, OK); + ret = ioctl(fd, RTC_HAVE_SET_TIME, (unsigned long)((uintptr_t)&have_set_time)); assert_return_code(ret, OK); assert_true(have_set_time); - ret = ioctl(fd, RTC_SET_TIME, (unsigned long)((uintptr_t)&set_time)); - assert_return_code(ret, OK); - ret = ioctl(fd, RTC_RD_TIME, (unsigned long)((uintptr_t)&rd_time)); assert_return_code(ret, OK); + + assert_int_equal(set_time.tm_year, rd_time.tm_year); + assert_int_equal(set_time.tm_mon, rd_time.tm_mon); + assert_int_equal(set_time.tm_mday, rd_time.tm_mday); + assert_int_equal(set_time.tm_wday, rd_time.tm_wday); + ret = strftime(timbuf, sizeof(timbuf), "%a, %b %d %H:%M:%S %Y", (FAR struct tm *)&rd_time); assert_return_code(ret, OK);