diff mbox series

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

Message ID 20230717175251.54390-1-atulpant.linux@gmail.com
State Handled Elsewhere
Headers show
Series [v5] selftests: rtc: Fixes rtctest error handling. | expand

Commit Message

Atul Kumar Pant July 17, 2023, 5:52 p.m. UTC
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@gmail.com>
---

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(-)

Comments

Alexandre Belloni July 17, 2023, 9:15 p.m. UTC | #1
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@gmail.com>

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);
> +
> +	return ret;
>  }
> -- 
> 2.25.1
>
Shuah Khan Aug. 16, 2023, 3:59 p.m. UTC | #2
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@gmail.com>
> 
> 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
Atul Kumar Pant Aug. 17, 2023, 9:15 a.m. UTC | #3
On Wed, Aug 16, 2023 at 09:59:30AM -0600, Shuah Khan wrote:
> 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@gmail.com>
> > 
> > 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

	Thank for the feedback. I have made the changes based on above
	comments and updated the patch.
diff mbox series

Patch

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);
+
+	return ret;
 }