Lines Matching +full:self +full:- +full:test
1 // SPDX-License-Identifier: GPL-2.0
3 * Real Time Clock Driver Test Program
39 self->fd = open(rtc_file, O_RDONLY); in FIXTURE_SETUP()
43 close(self->fd); in FIXTURE_TEARDOWN()
50 if (self->fd == -1 && errno == ENOENT) in TEST_F()
51 SKIP(return, "Skipping test since %s does not exist", rtc_file); in TEST_F()
52 ASSERT_NE(-1, self->fd); in TEST_F()
55 rc = ioctl(self->fd, RTC_RD_TIME, &rtc_tm); in TEST_F()
56 ASSERT_NE(-1, rc); in TEST_F()
66 .tm_sec = rtc_time->tm_sec, in rtc_time_to_timestamp()
67 .tm_min = rtc_time->tm_min, in rtc_time_to_timestamp()
68 .tm_hour = rtc_time->tm_hour, in rtc_time_to_timestamp()
69 .tm_mday = rtc_time->tm_mday, in rtc_time_to_timestamp()
70 .tm_mon = rtc_time->tm_mon, in rtc_time_to_timestamp()
71 .tm_year = rtc_time->tm_year, in rtc_time_to_timestamp()
115 if (self->fd == -1 && errno == ENOENT)
116 SKIP(return, "Skipping test since %s does not exist", rtc_file);
117 ASSERT_NE(-1, self->fd);
122 rc = ioctl(self->fd, RTC_RD_TIME, &rtc_tm);
123 ASSERT_NE(-1, rc);
130 rc = ioctl(self->fd, RTC_RD_TIME, &rtc_tm);
131 ASSERT_NE(-1, rc);
153 if (self->fd == -1 && errno == ENOENT)
154 SKIP(return, "Skipping test since %s does not exist", rtc_file);
155 ASSERT_NE(-1, self->fd);
158 rc = ioctl(self->fd, RTC_UIE_ON, 0);
159 if (rc == -1) {
167 rc = read(self->fd, &data, sizeof(data));
168 ASSERT_NE(-1, rc);
174 rc = ioctl(self->fd, RTC_UIE_OFF, 0);
175 ASSERT_NE(-1, rc);
182 if (self->fd == -1 && errno == ENOENT) in TEST_F()
183 SKIP(return, "Skipping test since %s does not exist", rtc_file); in TEST_F()
184 ASSERT_NE(-1, self->fd); in TEST_F()
187 rc = ioctl(self->fd, RTC_UIE_ON, 0); in TEST_F()
188 if (rc == -1) { in TEST_F()
199 FD_SET(self->fd, &readfds); in TEST_F()
201 rc = select(self->fd + 1, &readfds, NULL, NULL, &tv); in TEST_F()
202 ASSERT_NE(-1, rc); in TEST_F()
206 rc = read(self->fd, &data, sizeof(unsigned long)); in TEST_F()
207 ASSERT_NE(-1, rc); in TEST_F()
213 rc = ioctl(self->fd, RTC_UIE_OFF, 0); in TEST_F()
214 ASSERT_NE(-1, rc); in TEST_F()
226 if (self->fd == -1 && errno == ENOENT) in TEST_F()
227 SKIP(return, "Skipping test since %s does not exist", rtc_file); in TEST_F()
228 ASSERT_NE(-1, self->fd); in TEST_F()
230 alarm_state = get_rtc_alarm_state(self->fd); in TEST_F()
232 SKIP(return, "Skipping test since alarms are not supported."); in TEST_F()
234 rc = ioctl(self->fd, RTC_RD_TIME, &tm); in TEST_F()
235 ASSERT_NE(-1, rc); in TEST_F()
240 rc = ioctl(self->fd, RTC_ALM_SET, &tm); in TEST_F()
241 if (rc == -1) { in TEST_F()
252 rc = ioctl(self->fd, RTC_ALM_READ, &tm); in TEST_F()
253 ASSERT_NE(-1, rc); in TEST_F()
259 rc = ioctl(self->fd, RTC_AIE_ON, 0); in TEST_F()
260 ASSERT_NE(-1, rc); in TEST_F()
263 FD_SET(self->fd, &readfds); in TEST_F()
265 rc = select(self->fd + 1, &readfds, NULL, NULL, &tv); in TEST_F()
266 ASSERT_NE(-1, rc); in TEST_F()
270 rc = ioctl(self->fd, RTC_AIE_OFF, 0); in TEST_F()
271 ASSERT_NE(-1, rc); in TEST_F()
273 rc = read(self->fd, &data, sizeof(unsigned long)); in TEST_F()
274 ASSERT_NE(-1, rc); in TEST_F()
277 rc = ioctl(self->fd, RTC_RD_TIME, &tm); in TEST_F()
278 ASSERT_NE(-1, rc); in TEST_F()
294 if (self->fd == -1 && errno == ENOENT) in TEST_F()
295 SKIP(return, "Skipping test since %s does not exist", rtc_file); in TEST_F()
296 ASSERT_NE(-1, self->fd); in TEST_F()
298 alarm_state = get_rtc_alarm_state(self->fd); in TEST_F()
300 SKIP(return, "Skipping test since alarms are not supported."); in TEST_F()
302 rc = ioctl(self->fd, RTC_RD_TIME, &alarm.time); in TEST_F()
303 ASSERT_NE(-1, rc); in TEST_F()
310 rc = ioctl(self->fd, RTC_WKALM_SET, &alarm); in TEST_F()
311 if (rc == -1) { in TEST_F()
322 rc = ioctl(self->fd, RTC_WKALM_RD, &alarm); in TEST_F()
323 ASSERT_NE(-1, rc); in TEST_F()
331 FD_SET(self->fd, &readfds); in TEST_F()
333 rc = select(self->fd + 1, &readfds, NULL, NULL, &tv); in TEST_F()
334 ASSERT_NE(-1, rc); in TEST_F()
337 rc = read(self->fd, &data, sizeof(unsigned long)); in TEST_F()
338 ASSERT_NE(-1, rc); in TEST_F()
340 rc = ioctl(self->fd, RTC_RD_TIME, &tm); in TEST_F()
341 ASSERT_NE(-1, rc); in TEST_F()
356 if (self->fd == -1 && errno == ENOENT)
357 SKIP(return, "Skipping test since %s does not exist", rtc_file);
358 ASSERT_NE(-1, self->fd);
360 alarm_state = get_rtc_alarm_state(self->fd);
362 SKIP(return, "Skipping test since alarms are not supported.");
364 rc = ioctl(self->fd, RTC_RD_TIME, &tm);
365 ASSERT_NE(-1, rc);
367 secs = timegm((struct tm *)&tm) + 60 - tm.tm_sec;
370 rc = ioctl(self->fd, RTC_ALM_SET, &tm);
371 if (rc == -1) {
382 rc = ioctl(self->fd, RTC_ALM_READ, &tm);
383 ASSERT_NE(-1, rc);
389 rc = ioctl(self->fd, RTC_AIE_ON, 0);
390 ASSERT_NE(-1, rc);
393 FD_SET(self->fd, &readfds);
395 rc = select(self->fd + 1, &readfds, NULL, NULL, &tv);
396 ASSERT_NE(-1, rc);
400 rc = ioctl(self->fd, RTC_AIE_OFF, 0);
401 ASSERT_NE(-1, rc);
403 rc = read(self->fd, &data, sizeof(unsigned long));
404 ASSERT_NE(-1, rc);
407 rc = ioctl(self->fd, RTC_RD_TIME, &tm);
408 ASSERT_NE(-1, rc);
424 if (self->fd == -1 && errno == ENOENT)
425 SKIP(return, "Skipping test since %s does not exist", rtc_file);
426 ASSERT_NE(-1, self->fd);
428 alarm_state = get_rtc_alarm_state(self->fd);
430 SKIP(return, "Skipping test since alarms are not supported.");
432 rc = ioctl(self->fd, RTC_RD_TIME, &alarm.time);
433 ASSERT_NE(-1, rc);
435 secs = timegm((struct tm *)&alarm.time) + 60 - alarm.time.tm_sec;
440 rc = ioctl(self->fd, RTC_WKALM_SET, &alarm);
441 if (rc == -1) {
452 rc = ioctl(self->fd, RTC_WKALM_RD, &alarm);
453 ASSERT_NE(-1, rc);
461 FD_SET(self->fd, &readfds);
463 rc = select(self->fd + 1, &readfds, NULL, NULL, &tv);
464 ASSERT_NE(-1, rc);
467 rc = read(self->fd, &data, sizeof(unsigned long));
468 ASSERT_NE(-1, rc);
470 rc = ioctl(self->fd, RTC_RD_TIME, &tm);
471 ASSERT_NE(-1, rc);
479 int ret = -1; in main()
492 /* Run the test if rtc_file is accessible */ in main()
496 ksft_exit_skip("[SKIP]: Cannot access rtc file %s - Exiting\n", in main()