Re: [LTP] [PATCH 1/3] rtc02: skip test with unsupport set RTC platform

Cyril Hrubis
2022-04-29T11:05:54Z

Hi!
> Some hardware(e.g. Fujisu FX700) does not provides a feature to set the
> RTC clock, thus test failed with EINVAL from ioctl(RTC_SET_TIME).
>
> tst_test.c:1431: TINFO: Timeout per run is 0h 05m 00s
> rtc02.c:66: TINFO: To set RTC date/time is: 2020-10-09 13:23:30
> rtc02.c:70: TFAIL: ioctl() RTC_SET_TIME: EINVAL (22)
> tst_rtctime.c:116: TWARN: open(/dev/rtc,0,7020) failed: EBUSY (16)
> tst_wallclock.c:117: TWARN: tst_rtc_settime() realtime failed: EBADF (9)
>
> Signed-off-by: Li Wang <liwang@redhat.com>
> Cc: Hiroyuki Yasuhara <hyasuhar@redhat.com>
> ---
> testcases/kernel/device-drivers/rtc/rtc02.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/testcases/kernel/device-drivers/rtc/rtc02.c b/testcases/kernel/device-drivers/rtc/rtc02.c
> index ef83aad89..8484a0074 100644
> --- a/testcases/kernel/device-drivers/rtc/rtc02.c
> +++ b/testcases/kernel/device-drivers/rtc/rtc02.c
> @@ -22,6 +22,7 @@
> #include "tst_wallclock.h"
> #include "tst_test.h"
>
> +static int rtc_unsupport;
> static char *rtc_dev = "/dev/rtc";
>
> static char *rtctime_to_str(struct rtc_time *tm)
> @@ -67,6 +68,10 @@ static void set_rtc_test(void)
>
> ret = tst_rtc_settime(rtc_dev, &set_tm);
> if (ret != 0) {
> + if (errno == EINVAL) {
> + rtc_unsupport = 1;
> + tst_brk(TCONF, "RTC may not support be set via ioctl(RTC_SET_TIME)");
> + }

I wonder if there is a different way how to figure out setting RTC is
not supported, this may potentionaly mask away a breakage in a driver
that is supposed to be able to set time like this.

> tst_res(TFAIL | TERRNO, "ioctl() RTC_SET_TIME");
> return;
> }
> @@ -99,7 +104,8 @@ static void rtc_setup(void)
>
> static void rtc_cleanup(void)
> {
> - tst_rtc_clock_restore(rtc_dev);
> + if (!rtc_unsupport)
> + tst_rtc_clock_restore(rtc_dev);
> }
>
> static struct tst_test test = {
> --
> 2.35.1
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp

--
Cyril Hrubis
chrubis@suse.cz