diff options
Diffstat (limited to 'tools/testing/selftests/timers')
| -rw-r--r-- | tools/testing/selftests/timers/Makefile | 1 | ||||
| -rw-r--r-- | tools/testing/selftests/timers/set-timer-lat.c | 13 | 
2 files changed, 8 insertions, 6 deletions
| diff --git a/tools/testing/selftests/timers/Makefile b/tools/testing/selftests/timers/Makefile index ae4593115408..3496680981f2 100644 --- a/tools/testing/selftests/timers/Makefile +++ b/tools/testing/selftests/timers/Makefile @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0  CFLAGS += -O3 -Wl,-no-as-needed -Wall  LDFLAGS += -lrt -lpthread -lm diff --git a/tools/testing/selftests/timers/set-timer-lat.c b/tools/testing/selftests/timers/set-timer-lat.c index 9c92b7bd5641..50da45437daa 100644 --- a/tools/testing/selftests/timers/set-timer-lat.c +++ b/tools/testing/selftests/timers/set-timer-lat.c @@ -143,7 +143,8 @@ int setup_timer(int clock_id, int flags, int interval, timer_t *tm1)  			printf("%-22s %s missing CAP_WAKE_ALARM?    : [UNSUPPORTED]\n",  					clockstring(clock_id),  					flags ? "ABSTIME":"RELTIME"); -			return 0; +			/* Indicate timer isn't set, so caller doesn't wait */ +			return 1;  		}  		printf("%s - timer_create() failed\n", clockstring(clock_id));  		return -1; @@ -213,8 +214,9 @@ int do_timer(int clock_id, int flags)  	int err;  	err = setup_timer(clock_id, flags, interval, &tm1); +	/* Unsupported case - return 0 to not fail the test */  	if (err) -		return err; +		return err == 1 ? 0 : err;  	while (alarmcount < 5)  		sleep(1); @@ -228,18 +230,17 @@ int do_timer_oneshot(int clock_id, int flags)  	timer_t tm1;  	const int interval = 0;  	struct timeval timeout; -	fd_set fds;  	int err;  	err = setup_timer(clock_id, flags, interval, &tm1); +	/* Unsupported case - return 0 to not fail the test */  	if (err) -		return err; +		return err == 1 ? 0 : err;  	memset(&timeout, 0, sizeof(timeout));  	timeout.tv_sec = 5; -	FD_ZERO(&fds);  	do { -		err = select(FD_SETSIZE, &fds, NULL, NULL, &timeout); +		err = select(0, NULL, NULL, NULL, &timeout);  	} while (err == -1 && errno == EINTR);  	timer_delete(tm1); |