diff mbox

rtc: rtctest: Improve support detection

Message ID 20170811091455.11041-2-ldoktor@redhat.com
State Changes Requested
Headers show

Commit Message

Lukáš Doktor Aug. 11, 2017, 9:14 a.m. UTC
The rtc-generic and opal-rtc are failing to run this test as they do not
support all the features. Let's treat the error returns and skip to the
following test.

Theoretically the test_DATE should be also adjusted, but as it's enabled
on demand I think it makes sense to fail in such case.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
---
 tools/testing/selftests/timers/rtctest.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

Comments

Alexandre Belloni Aug. 12, 2017, 8:22 p.m. UTC | #1
Hi,

On 11/08/2017 at 11:14:55 +0200, Lukáš Doktor wrote:
> The rtc-generic and opal-rtc are failing to run this test as they do not
> support all the features. Let's treat the error returns and skip to the
> following test.
> 
> Theoretically the test_DATE should be also adjusted, but as it's enabled
> on demand I think it makes sense to fail in such case.
> 
> Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
> ---
>  tools/testing/selftests/timers/rtctest.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/testing/selftests/timers/rtctest.c b/tools/testing/selftests/timers/rtctest.c
> index f61170f..6344842 100644
> --- a/tools/testing/selftests/timers/rtctest.c
> +++ b/tools/testing/selftests/timers/rtctest.c
> @@ -125,7 +125,7 @@ int main(int argc, char **argv)
>  	/* Turn on update interrupts (one per second) */
>  	retval = ioctl(fd, RTC_UIE_ON, 0);
>  	if (retval == -1) {
> -		if (errno == EINVAL) {
> +		if (errno == EINVAL || errno == EINVAL) {

Well, this needs to be fixed.

>  			fprintf(stderr,
>  				"\n...Update IRQs not supported.\n");
>  			goto test_READ;
> @@ -221,6 +221,11 @@ int main(int argc, char **argv)
>  	/* Read the current alarm settings */
>  	retval = ioctl(fd, RTC_ALM_READ, &rtc_tm);
>  	if (retval == -1) {
> +		if (errno == EINVAL) {
> +			fprintf(stderr,
> +					"\n...EINVAL reading current alarm setting.\n");
> +			goto test_PIE;
> +		}
>  		perror("RTC_ALM_READ ioctl");
>  		exit(errno);
>  	}
> @@ -231,7 +236,7 @@ int main(int argc, char **argv)
>  	/* Enable alarm interrupts */
>  	retval = ioctl(fd, RTC_AIE_ON, 0);
>  	if (retval == -1) {
> -		if (errno == EINVAL) {
> +		if (errno == EINVAL || errno ==EIO) {
>  			fprintf(stderr,
>  				"\n...Alarm IRQs not supported.\n");
>  			goto test_PIE;
> -- 
> 2.9.4
>
Lukáš Doktor Aug. 15, 2017, 8:20 a.m. UTC | #2
Dne 12.8.2017 v 22:22 Alexandre Belloni napsal(a):
> Hi,
> 
> On 11/08/2017 at 11:14:55 +0200, Lukáš Doktor wrote:
>> The rtc-generic and opal-rtc are failing to run this test as they do not
>> support all the features. Let's treat the error returns and skip to the
>> following test.
>>
>> Theoretically the test_DATE should be also adjusted, but as it's enabled
>> on demand I think it makes sense to fail in such case.
>>
>> Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
>> ---
>>  tools/testing/selftests/timers/rtctest.c | 9 +++++++--
>>  1 file changed, 7 insertions(+), 2 deletions(-)
>>
>> diff --git a/tools/testing/selftests/timers/rtctest.c b/tools/testing/selftests/timers/rtctest.c
>> index f61170f..6344842 100644
>> --- a/tools/testing/selftests/timers/rtctest.c
>> +++ b/tools/testing/selftests/timers/rtctest.c
>> @@ -125,7 +125,7 @@ int main(int argc, char **argv)
>>  	/* Turn on update interrupts (one per second) */
>>  	retval = ioctl(fd, RTC_UIE_ON, 0);
>>  	if (retval == -1) {
>> -		if (errno == EINVAL) {
>> +		if (errno == EINVAL || errno == EINVAL) {
> 
> Well, this needs to be fixed.
> 

Yes, this chunk is actually not needed anymore (it was based on outdated copy we use in Autotest which had ENOTTY which is probably not needed nowadays). Let me send v2 without this.

Regards,
Lukáš

>>  			fprintf(stderr,
>>  				"\n...Update IRQs not supported.\n");
>>  			goto test_READ;
>> @@ -221,6 +221,11 @@ int main(int argc, char **argv)
>>  	/* Read the current alarm settings */
>>  	retval = ioctl(fd, RTC_ALM_READ, &rtc_tm);
>>  	if (retval == -1) {
>> +		if (errno == EINVAL) {
>> +			fprintf(stderr,
>> +					"\n...EINVAL reading current alarm setting.\n");
>> +			goto test_PIE;
>> +		}
>>  		perror("RTC_ALM_READ ioctl");
>>  		exit(errno);
>>  	}
>> @@ -231,7 +236,7 @@ int main(int argc, char **argv)
>>  	/* Enable alarm interrupts */
>>  	retval = ioctl(fd, RTC_AIE_ON, 0);
>>  	if (retval == -1) {
>> -		if (errno == EINVAL) {
>> +		if (errno == EINVAL || errno ==EIO) {
>>  			fprintf(stderr,
>>  				"\n...Alarm IRQs not supported.\n");
>>  			goto test_PIE;
>> -- 
>> 2.9.4
>>
>
diff mbox

Patch

diff --git a/tools/testing/selftests/timers/rtctest.c b/tools/testing/selftests/timers/rtctest.c
index f61170f..6344842 100644
--- a/tools/testing/selftests/timers/rtctest.c
+++ b/tools/testing/selftests/timers/rtctest.c
@@ -125,7 +125,7 @@  int main(int argc, char **argv)
 	/* Turn on update interrupts (one per second) */
 	retval = ioctl(fd, RTC_UIE_ON, 0);
 	if (retval == -1) {
-		if (errno == EINVAL) {
+		if (errno == EINVAL || errno == EINVAL) {
 			fprintf(stderr,
 				"\n...Update IRQs not supported.\n");
 			goto test_READ;
@@ -221,6 +221,11 @@  int main(int argc, char **argv)
 	/* Read the current alarm settings */
 	retval = ioctl(fd, RTC_ALM_READ, &rtc_tm);
 	if (retval == -1) {
+		if (errno == EINVAL) {
+			fprintf(stderr,
+					"\n...EINVAL reading current alarm setting.\n");
+			goto test_PIE;
+		}
 		perror("RTC_ALM_READ ioctl");
 		exit(errno);
 	}
@@ -231,7 +236,7 @@  int main(int argc, char **argv)
 	/* Enable alarm interrupts */
 	retval = ioctl(fd, RTC_AIE_ON, 0);
 	if (retval == -1) {
-		if (errno == EINVAL) {
+		if (errno == EINVAL || errno ==EIO) {
 			fprintf(stderr,
 				"\n...Alarm IRQs not supported.\n");
 			goto test_PIE;