|
6 | 6 | /*
|
7 | 7 | * Advance a date by one day.
|
8 | 8 | */
|
9 |
| -static void advance_date(int *year, int *month, int *mday, int *yday) |
| 9 | +static void advance_date(int *year, int *month, int *mday, int *yday, int *wday) |
10 | 10 | {
|
| 11 | + *wday = (*wday + 1) % 7; |
| 12 | + |
11 | 13 | if (*mday != rtc_month_days(*month - 1, *year)) {
|
12 | 14 | ++*mday;
|
13 | 15 | ++*yday;
|
@@ -43,23 +45,29 @@ static void rtc_time64_to_tm_test_date_range(struct kunit *test, int years)
|
43 | 45 | int month = 1;
|
44 | 46 | int mday = 1;
|
45 | 47 | int yday = 1;
|
| 48 | + int wday = 4; /* Jan 1st 1970 was a Thursday */ |
46 | 49 |
|
47 | 50 | struct rtc_time result;
|
48 | 51 | time64_t secs;
|
| 52 | + const time64_t sec_offset = ((1 * 60) + 2) * 60 + 3; |
49 | 53 |
|
50 | 54 | for (secs = 0; secs <= total_secs; secs += 86400) {
|
51 | 55 |
|
52 |
| - rtc_time64_to_tm(secs, &result); |
| 56 | + rtc_time64_to_tm(secs + sec_offset, &result); |
53 | 57 |
|
54 |
| - #define FAIL_MSG "%d/%02d/%02d (%2d) : %lld", \ |
55 |
| - year, month, mday, yday, secs |
| 58 | + #define FAIL_MSG "%d/%02d/%02d (%2d, %d) : %lld", \ |
| 59 | + year, month, mday, yday, wday, secs + sec_offset |
56 | 60 |
|
57 | 61 | KUNIT_ASSERT_EQ_MSG(test, year - 1900, result.tm_year, FAIL_MSG);
|
58 | 62 | KUNIT_ASSERT_EQ_MSG(test, month - 1, result.tm_mon, FAIL_MSG);
|
59 | 63 | KUNIT_ASSERT_EQ_MSG(test, mday, result.tm_mday, FAIL_MSG);
|
60 | 64 | KUNIT_ASSERT_EQ_MSG(test, yday, result.tm_yday, FAIL_MSG);
|
| 65 | + KUNIT_ASSERT_EQ_MSG(test, 1, result.tm_hour, FAIL_MSG); |
| 66 | + KUNIT_ASSERT_EQ_MSG(test, 2, result.tm_min, FAIL_MSG); |
| 67 | + KUNIT_ASSERT_EQ_MSG(test, 3, result.tm_sec, FAIL_MSG); |
| 68 | + KUNIT_ASSERT_EQ_MSG(test, wday, result.tm_wday, FAIL_MSG); |
61 | 69 |
|
62 |
| - advance_date(&year, &month, &mday, &yday); |
| 70 | + advance_date(&year, &month, &mday, &yday, &wday); |
63 | 71 | }
|
64 | 72 | }
|
65 | 73 |
|
|
0 commit comments