kselftest rtctests failed on arm64 Raspberry Pi 4 Model B device and passed on other devices and qemu emulators. Please refer to the full logs and test comparison results links.
Reported-by: Linux Kernel Functional Testing lkft@linaro.org
Test run log: -------------
[ 248.627989] kselftest: Running tests in rtc TAP version 13 1..1 # selftests: rtc: rtctest [ 249.116824] audit: type=1701 audit(1651167970.071:12): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=2818 comm="rtctest" exe="/opt/kselftests/default-in-kernel/rtc/rtctest" sig=6 res=1 [ 249.133837] audit: type=1701 audit(1651167970.079:13): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=2819 comm="rtctest" exe="/opt/kselftests/default-in-kernel/rtc/rtctest" sig=6 res=1 [ 249.151179] audit: type=1701 audit(1651167970.083:14): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=2820 comm="rtctest" exe="/opt/kselftests/default-in-kernel/rtc/rtctest" sig=6 res=1 [ 249.168401] audit: type=1701 audit(1651167970.091:15): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=2821 comm="rtctest" exe="/opt/kselftests/default-in-kernel/rtc/rtctest" sig=6 res=1 [ 249.185406] audit: type=1701 audit(1651167970.095:16): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=2822 comm="rtctest" exe="/opt/kselftests/default-in-kernel/rtc/rtctest" sig=6 res=1 [ 249.202343] audit: type=1701 audit(1651167970.103:17): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=2823 comm="rtctest" exe="/opt/kselftests/default-in-kernel/rtc/rtctest" sig=6 res=1 #[ 249.219262] audit: type=1701 audit(1651167970.111:18): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=2824 comm="rtctest" exe="/opt/kselftests/default-in-kernel/rtc/rtctest" sig=6 res=1 [ 249.236233] audit: type=1701 audit(1651167970.115:19): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=2825 comm="rtctest" exe="/opt/kselftests/default-in-kernel/rtc/rtctest" sig=6 res=1 TAP version 13 # 1..8 # # Starting 8 tests from 2 test cases. # # RUN rtc.date_read ... # # rtctest.c:34:date_read:Expected -1 (-1) != self->fd (-1) # # date_read: Test terminated by assertion # # FAIL rtc.date_read # not ok 1 rtc.date_read # # RUN rtc.date_read_loop ... # # rtctest.c:34:date_read_loop:Expected -1 (-1) != self->fd (-1) # # date_read_loop: Test terminated by assertion # # FAIL rtc.date_read_loop # not ok 2 rtc.date_read_loop # # RUN rtc.uie_read ... # # rtctest.c:34:uie_read:Expected -1 (-1) != self->fd (-1) # # uie_read: Test terminated by assertion # # FAIL rtc.uie_read # not ok 3 rtc.uie_read # # RUN rtc.uie_select ... # # rtctest.c:34:uie_select:Expected -1 (-1) != self->fd (-1) # # uie_select: Test terminated by assertion # # FAIL rtc.uie_select # not ok 4 rtc.uie_select # # RUN rtc.alarm_alm_set ... # # rtctest.c:34:alarm_alm_set:Expected -1 (-1) != self->fd (-1) # # alarm_alm_set: Test terminated by assertion # # FAIL rtc.alarm_alm_set # not ok 5 rtc.alarm_alm_set # # RUN rtc.alarm_wkalm_set ... # # rtctest.c:34:alarm_wkalm_set:Expected -1 (-1) != self->fd (-1) # # alarm_wkalm_set: Test terminated by assertion # # FAIL rtc.alarm_wkalm_set # not ok 6 rtc.alarm_wkalm_set # # RUN rtc.alarm_alm_set_minute ... # # rtctest.c:34:alarm_alm_set_minute:Expected -1 (-1) != self->fd (-1) # # alarm_alm_set_minute: Test terminated by assertion # # FAIL rtc.alarm_alm_set_minute # not ok 7 rtc.alarm_alm_set_minute # # RUN rtc.alarm_wkalm_set_minute ... # # rtctest.c:34:alarm_wkalm_set_minute:Expected -1 (-1) != self->fd (-1) # # alarm_wkalm_set_minute: Test terminated by assertion # # FAIL rtc.alarm_wkalm_set_minute # not ok 8 rtc.alarm_wkalm_set_minute # # FAILED: 0 / 8 tests passed. # # Totals: pass:0 fail:8 xfail:0 xpass:0 skip:0 error:0 not ok 1 selftests: rtc: rtctest # exit=1
Test results details, https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20221107/tes...
Test results compare, https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20221107/tes...
Test detailed log, https://lkft.validation.linaro.org/scheduler/job/5812742#L1759
metadata: git_ref: master git_repo: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next git_sha: d8e87774068af213ab5b058b1b114dc397b577aa git_describe: next-20221107 kernel_version: 6.1.0-rc3 kernel-config: https://builds.tuxbuild.com/2HChVOSNxUpvfAfLTnaK7zyTdUi/config build-url: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next/-/pipelines/687092361 artifact-location: https://builds.tuxbuild.com/2HChVOSNxUpvfAfLTnaK7zyTdUi toolchain: gcc-11
-- Linaro QA https://qa-reports.linaro.org
Hello,
On 08/11/2022 15:17:04+0530, Naresh Kamboju wrote:
kselftest rtctests failed on arm64 Raspberry Pi 4 Model B device and passed on other devices and qemu emulators. Please refer to the full logs and test comparison results links.
It seems your board doesn't have an rtc at all, the tests will not run unless you add one.
You can try the following patch:
From e93ddc7046aba97b39b0ceffc53ebf1f10ad9868 Mon Sep 17 00:00:00 2001 From: Alexandre Belloni alexandre.belloni@bootlin.com Date: Tue, 8 Nov 2022 22:18:55 +0100 Subject: [PATCH] selftests: rtc: skip when RTC is not present
There is not point in failing the tests when there the RTC is not present, simply skip the test.
Signed-off-by: Alexandre Belloni alexandre.belloni@bootlin.com --- tools/testing/selftests/rtc/rtctest.c | 33 ++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/rtc/rtctest.c b/tools/testing/selftests/rtc/rtctest.c index 2b9d929a24ed..63ce02d1d5cc 100644 --- a/tools/testing/selftests/rtc/rtctest.c +++ b/tools/testing/selftests/rtc/rtctest.c @@ -31,7 +31,6 @@ FIXTURE(rtc) {
FIXTURE_SETUP(rtc) { self->fd = open(rtc_file, O_RDONLY); - ASSERT_NE(-1, self->fd); }
FIXTURE_TEARDOWN(rtc) { @@ -42,6 +41,10 @@ TEST_F(rtc, date_read) { int rc; struct rtc_time rtc_tm;
+ if (self->fd == -1 && errno == ENOENT) + SKIP(return, "Skipping test since %s does not exist", rtc_file); + ASSERT_NE(-1, self->fd); + /* Read the RTC time/date */ rc = ioctl(self->fd, RTC_RD_TIME, &rtc_tm); ASSERT_NE(-1, rc); @@ -85,6 +88,10 @@ TEST_F_TIMEOUT(rtc, date_read_loop, READ_LOOP_DURATION_SEC + 2) { struct rtc_time rtc_tm; time_t start_rtc_read, prev_rtc_read;
+ if (self->fd == -1 && errno == ENOENT) + SKIP(return, "Skipping test since %s does not exist", rtc_file); + ASSERT_NE(-1, self->fd); + TH_LOG("Continuously reading RTC time for %ds (with %dms breaks after every read).", READ_LOOP_DURATION_SEC, READ_LOOP_SLEEP_MS);
@@ -119,6 +126,10 @@ TEST_F_TIMEOUT(rtc, uie_read, NUM_UIE + 2) { int i, rc, irq = 0; unsigned long data;
+ if (self->fd == -1 && errno == ENOENT) + SKIP(return, "Skipping test since %s does not exist", rtc_file); + ASSERT_NE(-1, self->fd); + /* Turn on update interrupts */ rc = ioctl(self->fd, RTC_UIE_ON, 0); if (rc == -1) { @@ -144,6 +155,10 @@ TEST_F(rtc, uie_select) { int i, rc, irq = 0; unsigned long data;
+ if (self->fd == -1 && errno == ENOENT) + SKIP(return, "Skipping test since %s does not exist", rtc_file); + ASSERT_NE(-1, self->fd); + /* Turn on update interrupts */ rc = ioctl(self->fd, RTC_UIE_ON, 0); if (rc == -1) { @@ -183,6 +198,10 @@ TEST_F(rtc, alarm_alm_set) { time_t secs, new; int rc;
+ if (self->fd == -1 && errno == ENOENT) + SKIP(return, "Skipping test since %s does not exist", rtc_file); + ASSERT_NE(-1, self->fd); + rc = ioctl(self->fd, RTC_RD_TIME, &tm); ASSERT_NE(-1, rc);
@@ -237,6 +256,10 @@ TEST_F(rtc, alarm_wkalm_set) { time_t secs, new; int rc;
+ if (self->fd == -1 && errno == ENOENT) + SKIP(return, "Skipping test since %s does not exist", rtc_file); + ASSERT_NE(-1, self->fd); + rc = ioctl(self->fd, RTC_RD_TIME, &alarm.time); ASSERT_NE(-1, rc);
@@ -285,6 +308,10 @@ TEST_F_TIMEOUT(rtc, alarm_alm_set_minute, 65) { time_t secs, new; int rc;
+ if (self->fd == -1 && errno == ENOENT) + SKIP(return, "Skipping test since %s does not exist", rtc_file); + ASSERT_NE(-1, self->fd); + rc = ioctl(self->fd, RTC_RD_TIME, &tm); ASSERT_NE(-1, rc);
@@ -339,6 +366,10 @@ TEST_F_TIMEOUT(rtc, alarm_wkalm_set_minute, 65) { time_t secs, new; int rc;
+ if (self->fd == -1 && errno == ENOENT) + SKIP(return, "Skipping test since %s does not exist", rtc_file); + ASSERT_NE(-1, self->fd); + rc = ioctl(self->fd, RTC_RD_TIME, &alarm.time); ASSERT_NE(-1, rc);
Hi Alexandre,
On Wed, 9 Nov 2022 at 03:05, Alexandre Belloni alexandre.belloni@bootlin.com wrote:
Hello,
On 08/11/2022 15:17:04+0530, Naresh Kamboju wrote:
kselftest rtctests failed on arm64 Raspberry Pi 4 Model B device and passed on other devices and qemu emulators. Please refer to the full logs and test comparison results links.
It seems your board doesn't have an rtc at all, the tests will not run unless you add one.
You can try the following patch:
Daniel Diaz tested the following patch and results were changed from FAIL to SKIP [1].
Reported-by: Linux Kernel Functional Testing lkft@linaro.org Tested-by: Daniel Diaz daniel.diaz@linaro.org
[ 241.791361] kselftest: Running tests in rtc TAP version 13 1..1 # selftests: rtc: rtctest # TAP version 13 # 1..8 # # Starting 8 tests from 2 test cases. # # RUN rtc.date_read ... # # SKIP Skipping test since /dev/rtc0 does not exist # # OK rtc.date_read # ok 1 # SKIP Skipping test since /dev/rtc0 does not exist # # RUN rtc.date_read_loop ... # # SKIP Skipping test since /dev/rtc0 does not exist # # OK rtc.date_read_loop # ok 2 # SKIP Skipping test since /dev/rtc0 does not exist # # RUN rtc.uie_read ... # # SKIP Skipping test since /dev/rtc0 does not exist # # OK rtc.uie_read # ok 3 # SKIP Skipping test since /dev/rtc0 does not exist # # RUN rtc.uie_select ... # # SKIP Skipping test since /dev/rtc0 does not exist # # OK rtc.uie_select # ok 4 # SKIP Skipping test since /dev/rtc0 does not exist # # RUN rtc.alarm_alm_set ... # # SKIP Skipping test since /dev/rtc0 does not exist # # OK rtc.alarm_alm_set # ok 5 # SKIP Skipping test since /dev/rtc0 does not exist # # RUN rtc.alarm_wkalm_set ... # # SKIP Skipping test since /dev/rtc0 does not exist # # OK rtc.alarm_wkalm_set # ok 6 # SKIP Skipping test since /dev/rtc0 does not exist # # RUN rtc.alarm_alm_set_minute ... # # SKIP Skipping test since /dev/rtc0 does not exist # # OK rtc.alarm_alm_set_minute # ok 7 # SKIP Skipping test since /dev/rtc0 does not exist # # RUN rtc.alarm_wkalm_set_minute ... # # SKIP Skipping test since /dev/rtc0 does not exist # # OK rtc.alarm_wkalm_set_minute # ok 8 # SKIP Skipping test since /dev/rtc0 does not exist # # PASSED: 8 / 8 tests passed. # # Totals: pass:0 fail:0 xfail:0 xpass:0 skip:8 error:0 ok 1 selftests: rtc: rtctest
From e93ddc7046aba97b39b0ceffc53ebf1f10ad9868 Mon Sep 17 00:00:00 2001 From: Alexandre Belloni alexandre.belloni@bootlin.com Date: Tue, 8 Nov 2022 22:18:55 +0100 Subject: [PATCH] selftests: rtc: skip when RTC is not present
There is not point in failing the tests when there the RTC is not present, simply skip the test.
Signed-off-by: Alexandre Belloni alexandre.belloni@bootlin.com
tools/testing/selftests/rtc/rtctest.c | 33 ++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/rtc/rtctest.c b/tools/testing/selftests/rtc/rtctest.c index 2b9d929a24ed..63ce02d1d5cc 100644 --- a/tools/testing/selftests/rtc/rtctest.c +++ b/tools/testing/selftests/rtc/rtctest.c @@ -31,7 +31,6 @@ FIXTURE(rtc) {
FIXTURE_SETUP(rtc) { self->fd = open(rtc_file, O_RDONLY);
ASSERT_NE(-1, self->fd);
}
FIXTURE_TEARDOWN(rtc) { @@ -42,6 +41,10 @@ TEST_F(rtc, date_read) { int rc; struct rtc_time rtc_tm;
if (self->fd == -1 && errno == ENOENT)
SKIP(return, "Skipping test since %s does not exist", rtc_file);
ASSERT_NE(-1, self->fd);
/* Read the RTC time/date */ rc = ioctl(self->fd, RTC_RD_TIME, &rtc_tm); ASSERT_NE(-1, rc);
@@ -85,6 +88,10 @@ TEST_F_TIMEOUT(rtc, date_read_loop, READ_LOOP_DURATION_SEC + 2) { struct rtc_time rtc_tm; time_t start_rtc_read, prev_rtc_read;
if (self->fd == -1 && errno == ENOENT)
SKIP(return, "Skipping test since %s does not exist", rtc_file);
ASSERT_NE(-1, self->fd);
TH_LOG("Continuously reading RTC time for %ds (with %dms breaks after every read).", READ_LOOP_DURATION_SEC, READ_LOOP_SLEEP_MS);
@@ -119,6 +126,10 @@ TEST_F_TIMEOUT(rtc, uie_read, NUM_UIE + 2) { int i, rc, irq = 0; unsigned long data;
if (self->fd == -1 && errno == ENOENT)
SKIP(return, "Skipping test since %s does not exist", rtc_file);
ASSERT_NE(-1, self->fd);
/* Turn on update interrupts */ rc = ioctl(self->fd, RTC_UIE_ON, 0); if (rc == -1) {
@@ -144,6 +155,10 @@ TEST_F(rtc, uie_select) { int i, rc, irq = 0; unsigned long data;
if (self->fd == -1 && errno == ENOENT)
SKIP(return, "Skipping test since %s does not exist", rtc_file);
ASSERT_NE(-1, self->fd);
/* Turn on update interrupts */ rc = ioctl(self->fd, RTC_UIE_ON, 0); if (rc == -1) {
@@ -183,6 +198,10 @@ TEST_F(rtc, alarm_alm_set) { time_t secs, new; int rc;
if (self->fd == -1 && errno == ENOENT)
SKIP(return, "Skipping test since %s does not exist", rtc_file);
ASSERT_NE(-1, self->fd);
rc = ioctl(self->fd, RTC_RD_TIME, &tm); ASSERT_NE(-1, rc);
@@ -237,6 +256,10 @@ TEST_F(rtc, alarm_wkalm_set) { time_t secs, new; int rc;
if (self->fd == -1 && errno == ENOENT)
SKIP(return, "Skipping test since %s does not exist", rtc_file);
ASSERT_NE(-1, self->fd);
rc = ioctl(self->fd, RTC_RD_TIME, &alarm.time); ASSERT_NE(-1, rc);
@@ -285,6 +308,10 @@ TEST_F_TIMEOUT(rtc, alarm_alm_set_minute, 65) { time_t secs, new; int rc;
if (self->fd == -1 && errno == ENOENT)
SKIP(return, "Skipping test since %s does not exist", rtc_file);
ASSERT_NE(-1, self->fd);
rc = ioctl(self->fd, RTC_RD_TIME, &tm); ASSERT_NE(-1, rc);
@@ -339,6 +366,10 @@ TEST_F_TIMEOUT(rtc, alarm_wkalm_set_minute, 65) { time_t secs, new; int rc;
if (self->fd == -1 && errno == ENOENT)
SKIP(return, "Skipping test since %s does not exist", rtc_file);
ASSERT_NE(-1, self->fd);
rc = ioctl(self->fd, RTC_RD_TIME, &alarm.time); ASSERT_NE(-1, rc);
[1] https://lkft.validation.linaro.org/scheduler/job/5831980#L1760
-- Linaro LKFT https://lkft.linaro.org