From 0c6f0d77ab62ff557fd0cace8284bc67ef7ab79c Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Tue, 1 Jul 2025 09:44:39 +0200 Subject: rtc: Rename lib_test to test_rtc_lib When compiling the RTC library functions test as a module, the module has the non-descriptive name "lib_test.ko". Fix this by renaming it to "test_rtc_lib.ko". Signed-off-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/47019d7f8ced12107b54a372fdf34b1b8f7b6183.1751355848.git.geert@linux-m68k.org Signed-off-by: Alexandre Belloni --- drivers/rtc/Makefile | 2 +- drivers/rtc/lib_test.c | 106 --------------------------------------------- drivers/rtc/test_rtc_lib.c | 106 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 107 insertions(+), 107 deletions(-) delete mode 100644 drivers/rtc/lib_test.c create mode 100644 drivers/rtc/test_rtc_lib.c (limited to 'drivers/rtc') diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile index 4619aa2ac469..789bddfea99d 100644 --- a/drivers/rtc/Makefile +++ b/drivers/rtc/Makefile @@ -15,7 +15,7 @@ rtc-core-$(CONFIG_RTC_INTF_DEV) += dev.o rtc-core-$(CONFIG_RTC_INTF_PROC) += proc.o rtc-core-$(CONFIG_RTC_INTF_SYSFS) += sysfs.o -obj-$(CONFIG_RTC_LIB_KUNIT_TEST) += lib_test.o +obj-$(CONFIG_RTC_LIB_KUNIT_TEST) += test_rtc_lib.o # Keep the list ordered. diff --git a/drivers/rtc/lib_test.c b/drivers/rtc/lib_test.c deleted file mode 100644 index 0eebad1fe2a0..000000000000 --- a/drivers/rtc/lib_test.c +++ /dev/null @@ -1,106 +0,0 @@ -// SPDX-License-Identifier: LGPL-2.1+ - -#include -#include - -/* - * Advance a date by one day. - */ -static void advance_date(int *year, int *month, int *mday, int *yday, int *wday) -{ - *wday = (*wday + 1) % 7; - - if (*mday != rtc_month_days(*month - 1, *year)) { - ++*mday; - ++*yday; - return; - } - - *mday = 1; - if (*month != 12) { - ++*month; - ++*yday; - return; - } - - *month = 1; - *yday = 1; - ++*year; -} - -/* - * Check every day in specified number of years interval starting on 1970-01-01 - * against the expected result. - */ -static void rtc_time64_to_tm_test_date_range(struct kunit *test, int years) -{ - /* - * years = (years / 400) * 400 years - * = (years / 400) * 146097 days - * = (years / 400) * 146097 * 86400 seconds - */ - time64_t total_secs = ((time64_t)years) / 400 * 146097 * 86400; - - int year = 1900; - int month = 1; - int mday = 1; - int yday = 1; - int wday = 1; /* Jan 1st 1900 was a Monday */ - - struct rtc_time result; - time64_t secs; - const time64_t sec_offset = RTC_TIMESTAMP_BEGIN_1900 + ((1 * 60) + 2) * 60 + 3; - - for (secs = 0; secs <= total_secs; secs += 86400) { - - rtc_time64_to_tm(secs + sec_offset, &result); - - #define FAIL_MSG "%d/%02d/%02d (%2d, %d) : %lld", \ - year, month, mday, yday, wday, secs + sec_offset - - KUNIT_ASSERT_EQ_MSG(test, year - 1900, result.tm_year, FAIL_MSG); - KUNIT_ASSERT_EQ_MSG(test, month - 1, result.tm_mon, FAIL_MSG); - KUNIT_ASSERT_EQ_MSG(test, mday, result.tm_mday, FAIL_MSG); - KUNIT_ASSERT_EQ_MSG(test, yday, result.tm_yday, FAIL_MSG); - KUNIT_ASSERT_EQ_MSG(test, 1, result.tm_hour, FAIL_MSG); - KUNIT_ASSERT_EQ_MSG(test, 2, result.tm_min, FAIL_MSG); - KUNIT_ASSERT_EQ_MSG(test, 3, result.tm_sec, FAIL_MSG); - KUNIT_ASSERT_EQ_MSG(test, wday, result.tm_wday, FAIL_MSG); - - advance_date(&year, &month, &mday, &yday, &wday); - } -} - -/* - * Checks every day in a 160000 years interval starting on 1900-01-01 - * against the expected result. - */ -static void rtc_time64_to_tm_test_date_range_160000(struct kunit *test) -{ - rtc_time64_to_tm_test_date_range(test, 160000); -} - -/* - * Checks every day in a 1000 years interval starting on 1900-01-01 - * against the expected result. - */ -static void rtc_time64_to_tm_test_date_range_1000(struct kunit *test) -{ - rtc_time64_to_tm_test_date_range(test, 1000); -} - -static struct kunit_case rtc_lib_test_cases[] = { - KUNIT_CASE(rtc_time64_to_tm_test_date_range_1000), - KUNIT_CASE_SLOW(rtc_time64_to_tm_test_date_range_160000), - {} -}; - -static struct kunit_suite rtc_lib_test_suite = { - .name = "rtc_lib_test_cases", - .test_cases = rtc_lib_test_cases, -}; - -kunit_test_suite(rtc_lib_test_suite); - -MODULE_DESCRIPTION("KUnit test for RTC lib functions"); -MODULE_LICENSE("GPL"); diff --git a/drivers/rtc/test_rtc_lib.c b/drivers/rtc/test_rtc_lib.c new file mode 100644 index 000000000000..0eebad1fe2a0 --- /dev/null +++ b/drivers/rtc/test_rtc_lib.c @@ -0,0 +1,106 @@ +// SPDX-License-Identifier: LGPL-2.1+ + +#include +#include + +/* + * Advance a date by one day. + */ +static void advance_date(int *year, int *month, int *mday, int *yday, int *wday) +{ + *wday = (*wday + 1) % 7; + + if (*mday != rtc_month_days(*month - 1, *year)) { + ++*mday; + ++*yday; + return; + } + + *mday = 1; + if (*month != 12) { + ++*month; + ++*yday; + return; + } + + *month = 1; + *yday = 1; + ++*year; +} + +/* + * Check every day in specified number of years interval starting on 1970-01-01 + * against the expected result. + */ +static void rtc_time64_to_tm_test_date_range(struct kunit *test, int years) +{ + /* + * years = (years / 400) * 400 years + * = (years / 400) * 146097 days + * = (years / 400) * 146097 * 86400 seconds + */ + time64_t total_secs = ((time64_t)years) / 400 * 146097 * 86400; + + int year = 1900; + int month = 1; + int mday = 1; + int yday = 1; + int wday = 1; /* Jan 1st 1900 was a Monday */ + + struct rtc_time result; + time64_t secs; + const time64_t sec_offset = RTC_TIMESTAMP_BEGIN_1900 + ((1 * 60) + 2) * 60 + 3; + + for (secs = 0; secs <= total_secs; secs += 86400) { + + rtc_time64_to_tm(secs + sec_offset, &result); + + #define FAIL_MSG "%d/%02d/%02d (%2d, %d) : %lld", \ + year, month, mday, yday, wday, secs + sec_offset + + KUNIT_ASSERT_EQ_MSG(test, year - 1900, result.tm_year, FAIL_MSG); + KUNIT_ASSERT_EQ_MSG(test, month - 1, result.tm_mon, FAIL_MSG); + KUNIT_ASSERT_EQ_MSG(test, mday, result.tm_mday, FAIL_MSG); + KUNIT_ASSERT_EQ_MSG(test, yday, result.tm_yday, FAIL_MSG); + KUNIT_ASSERT_EQ_MSG(test, 1, result.tm_hour, FAIL_MSG); + KUNIT_ASSERT_EQ_MSG(test, 2, result.tm_min, FAIL_MSG); + KUNIT_ASSERT_EQ_MSG(test, 3, result.tm_sec, FAIL_MSG); + KUNIT_ASSERT_EQ_MSG(test, wday, result.tm_wday, FAIL_MSG); + + advance_date(&year, &month, &mday, &yday, &wday); + } +} + +/* + * Checks every day in a 160000 years interval starting on 1900-01-01 + * against the expected result. + */ +static void rtc_time64_to_tm_test_date_range_160000(struct kunit *test) +{ + rtc_time64_to_tm_test_date_range(test, 160000); +} + +/* + * Checks every day in a 1000 years interval starting on 1900-01-01 + * against the expected result. + */ +static void rtc_time64_to_tm_test_date_range_1000(struct kunit *test) +{ + rtc_time64_to_tm_test_date_range(test, 1000); +} + +static struct kunit_case rtc_lib_test_cases[] = { + KUNIT_CASE(rtc_time64_to_tm_test_date_range_1000), + KUNIT_CASE_SLOW(rtc_time64_to_tm_test_date_range_160000), + {} +}; + +static struct kunit_suite rtc_lib_test_suite = { + .name = "rtc_lib_test_cases", + .test_cases = rtc_lib_test_cases, +}; + +kunit_test_suite(rtc_lib_test_suite); + +MODULE_DESCRIPTION("KUnit test for RTC lib functions"); +MODULE_LICENSE("GPL"); -- cgit v1.2.3