Message ID | 20210726075608.43981-2-po-hsu.lin@canonical.com |
---|---|
State | Accepted |
Headers | show |
Series | selftests: timers: rtcpie: skip test if default RTC device does not exist | expand |
On 26.07.21 09:56, Po-Hsu Lin wrote: > BugLink: https://bugs.launchpad.net/bugs/1937991 > > This test will require /dev/rtc0, the default RTC device, or one > specified by user to run. Since this default RTC is not guaranteed to > exist on all of the devices, so check its existence first, otherwise > skip this test with the kselftest skip code 4. > > Without this patch this test will fail like this on a s390x zVM: > $ selftests: timers: rtcpie > $ /dev/rtc0: No such file or directory > not ok 1 selftests: timers: rtcpie # exit=22 > > With this patch: > $ selftests: timers: rtcpie > $ Default RTC /dev/rtc0 does not exist. Test Skipped! > not ok 9 selftests: timers: rtcpie # SKIP > > Fixed up change log so "With this patch" text doesn't get dropped. > Shuah Khan <skhan@linuxfoundation.org> > > Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com> > Signed-off-by: Shuah Khan <skhan@linuxfoundation.org> > (cherry picked from commit 0d3e5a057992bdc66e4dca2ca50b77fa4a7bd90e) > Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com> Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com> Thanks > --- > tools/testing/selftests/timers/rtcpie.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/timers/rtcpie.c b/tools/testing/selftests/timers/rtcpie.c > index 47b5bad..4ef2184 100644 > --- a/tools/testing/selftests/timers/rtcpie.c > +++ b/tools/testing/selftests/timers/rtcpie.c > @@ -18,6 +18,8 @@ > #include <stdlib.h> > #include <errno.h> > > +#include "../kselftest.h" > + > /* > * This expects the new RTC class driver framework, working with > * clocks that will often not be clones of what the PC-AT had. > @@ -35,8 +37,14 @@ int main(int argc, char **argv) > switch (argc) { > case 2: > rtc = argv[1]; > - /* FALLTHROUGH */ > + break; > case 1: > + fd = open(default_rtc, O_RDONLY); > + if (fd == -1) { > + printf("Default RTC %s does not exist. Test Skipped!\n", default_rtc); > + exit(KSFT_SKIP); > + } > + close(fd); > break; > default: > fprintf(stderr, "usage: rtctest [rtcdev] [d]\n"); >
diff --git a/tools/testing/selftests/timers/rtcpie.c b/tools/testing/selftests/timers/rtcpie.c index 47b5bad..4ef2184 100644 --- a/tools/testing/selftests/timers/rtcpie.c +++ b/tools/testing/selftests/timers/rtcpie.c @@ -18,6 +18,8 @@ #include <stdlib.h> #include <errno.h> +#include "../kselftest.h" + /* * This expects the new RTC class driver framework, working with * clocks that will often not be clones of what the PC-AT had. @@ -35,8 +37,14 @@ int main(int argc, char **argv) switch (argc) { case 2: rtc = argv[1]; - /* FALLTHROUGH */ + break; case 1: + fd = open(default_rtc, O_RDONLY); + if (fd == -1) { + printf("Default RTC %s does not exist. Test Skipped!\n", default_rtc); + exit(KSFT_SKIP); + } + close(fd); break; default: fprintf(stderr, "usage: rtctest [rtcdev] [d]\n");