Message ID | 20220428132656.11075-2-liwang@redhat.com |
---|---|
State | Superseded |
Headers | show |
Series | fix some bugs in rct02 | expand |
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
On Fri, Apr 29, 2022 at 7:05 PM Cyril Hrubis <chrubis@suse.cz> wrote: > > 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. > Yes, that is what I really hope to know as well. Not sure if Hiroyuki Yasuhara (already on CC list) can provide more info here.
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)"); + } 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 = {
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(-)