From 25463ec93ea60d6232faef910e61f40ea42f0781 Mon Sep 17 00:00:00 2001 From: Eugene Syromyatnikov Date: Mon, 5 Sep 2016 04:32:02 +0300 Subject: [PATCH] tests: add more tests for ched_rr_get_interval decoding * tests/sched_rr_get_interval.c (main): Check decoding of invalid timespec pointer and successful syscall invocation. --- tests/sched_rr_get_interval.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/tests/sched_rr_get_interval.c b/tests/sched_rr_get_interval.c index 73e2d39a..99943e7b 100644 --- a/tests/sched_rr_get_interval.c +++ b/tests/sched_rr_get_interval.c @@ -3,6 +3,7 @@ #ifdef __NR_sched_rr_get_interval +# include # include # include # include @@ -11,8 +12,24 @@ int main(void) { struct timespec *const tp = tail_alloc(sizeof(struct timespec)); - long rc = syscall(__NR_sched_rr_get_interval, -1, tp); - printf("sched_rr_get_interval(-1, %p) = %s\n", sprintrc(rc)); + long rc; + + rc = syscall(__NR_sched_rr_get_interval, 0, NULL); + printf("sched_rr_get_interval(0, NULL) = %s\n", sprintrc(rc)); + + rc = syscall(__NR_sched_rr_get_interval, 0, tp + 1); + printf("sched_rr_get_interval(0, %p) = %s\n", tp + 1, sprintrc(rc)); + + rc = syscall(__NR_sched_rr_get_interval, -1, tp); + printf("sched_rr_get_interval(-1, %p) = %s\n", tp, sprintrc(rc)); + + rc = syscall(__NR_sched_rr_get_interval, 0, tp); + if (rc == 0) + printf("sched_rr_get_interval(0, {%jd, %jd}) = 0\n", + (intmax_t)tp->tv_sec, (intmax_t)tp->tv_nsec); + else + printf("sched_rr_get_interval(-1, %p) = %s\n", tp, + sprintrc(rc)); puts("+++ exited with 0 +++"); return 0; -- 2.40.0