Re: [PATCH v5] selftests: rtc: Fixes rtctest error handling.

From: Shuah Khan
Date: Wed Aug 16 2023 - 12:00:12 EST


On 7/17/23 15:15, Alexandre Belloni wrote:
On 17/07/2023 23:22:51+0530, Atul Kumar Pant wrote:
Adds a check to verify if the rtc device file is valid or not
and prints a useful error message if the file is not accessible.

Signed-off-by: Atul Kumar Pant <atulpant.linux@xxxxxxxxx>

Please collect and keep the tags you got on previous versions

---

changes since v4:
Updated the commit message.

changes since v3:
Added Linux-kselftest and Linux-kernel mailing lists.

changes since v2:
Changed error message when rtc file does not exist.

changes since v1:
Removed check for uid=0
If rtc file is invalid, then exit the test.

tools/testing/selftests/rtc/rtctest.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/rtc/rtctest.c b/tools/testing/selftests/rtc/rtctest.c
index 63ce02d1d5cc..630fef735c7e 100644
--- a/tools/testing/selftests/rtc/rtctest.c
+++ b/tools/testing/selftests/rtc/rtctest.c
@@ -17,6 +17,7 @@
#include <unistd.h>
#include "../kselftest_harness.h"
+#include "../kselftest.h"
#define NUM_UIE 3
#define ALARM_DELTA 3
@@ -419,6 +420,8 @@ __constructor_order_last(void)
int main(int argc, char **argv)
{
+ int ret = -1;
+
switch (argc) {
case 2:
rtc_file = argv[1];
@@ -430,5 +433,11 @@ int main(int argc, char **argv)
return 1;
}
- return test_harness_run(argc, argv);
+ // Run the test if rtc_file is valid
+ if (access(rtc_file, F_OK) == 0)
+ ret = test_harness_run(argc, argv);
+ else
+ ksft_exit_fail_msg("[ERROR]: Cannot access rtc file %s - Exiting\n", rtc_file);

This should be skip not a fail. access() could for a number of reasons.
Since the test isn't run when access() returns error, this would be a
skip. Also the new message could be improved to use strerror() to
print message with details on why access() failed.
thanks,
-- Shuah