[PATCH 5/9] tests: Additional decoder tests in sched_rr_get_interval

Eugene Syromyatnikov evgsyr at gmail.com
Mon Sep 5 01:32:02 UTC 2016


Some additional syscall parser tests:
 * Incorrect timespec pointer.
 * Successful call.

* tests/sched_rr_get_interval.c: Additional tests.
---
 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 73e2d39..99943e7 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 <stdint.h>
 # include <stdio.h>
 # include <sched.h>
 # include <unistd.h>
@@ -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;
-- 
1.7.10.4





More information about the Strace-devel mailing list