| From 44b966a6dc41ef399cbca24f45ad5d75f45304bb Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 25 May 2021 10:36:14 +0800 |
| Subject: selftests: timers: rtcpie: skip test if default RTC device does not |
| exist |
| |
| From: Po-Hsu Lin <po-hsu.lin@canonical.com> |
| |
| [ Upstream commit 0d3e5a057992bdc66e4dca2ca50b77fa4a7bd90e ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| 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 47b5bad1b393..4ef2184f1558 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"); |
| -- |
| 2.30.2 |
| |