All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Naresh Kamboju <naresh.kamboju@linaro.org>
Cc: "open list:KERNEL SELFTEST FRAMEWORK"
	<linux-kselftest@vger.kernel.org>,
	"open list" <linux-kernel@vger.kernel.org>,
	lkft-triage@lists.linaro.org, "Shuah Khan" <shuah@kernel.org>,
	"Mateusz Jończyk" <mat.jonczyk@o2.pl>,
	"Alessandro Zummo" <a.zummo@towertech.it>
Subject: Re: kselftest rtctests failed on arm64 Raspberry Pi 4 - rtctest.c:34:date_read:Expected -1 (-1) != self->fd (-1)
Date: Tue, 8 Nov 2022 22:35:23 +0100	[thread overview]
Message-ID: <Y2rLm3O2mrG7PcZN@mail.local> (raw)
In-Reply-To: <CA+G9fYvBtwi8jmQZNvYwjR425BXGgCG2ej3iE6gtgfRzZmQnOw@mail.gmail.com>

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);
 
-- 
2.38.1

> 
> 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/testrun/12848560/suite/kselftest-rtc/tests/
> 
> Test results compare,
> https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20221107/testrun/12848560/suite/kselftest-rtc/test/rtc.rtctest/history/
> 
> 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

-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

  reply	other threads:[~2022-11-08 21:35 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-08  9:47 kselftest rtctests failed on arm64 Raspberry Pi 4 - rtctest.c:34:date_read:Expected -1 (-1) != self->fd (-1) Naresh Kamboju
2022-11-08 21:35 ` Alexandre Belloni [this message]
2022-11-10  7:39   ` Naresh Kamboju

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y2rLm3O2mrG7PcZN@mail.local \
    --to=alexandre.belloni@bootlin.com \
    --cc=a.zummo@towertech.it \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=lkft-triage@lists.linaro.org \
    --cc=mat.jonczyk@o2.pl \
    --cc=naresh.kamboju@linaro.org \
    --cc=shuah@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.