]> granicus.if.org Git - strace/commitdiff
tests: add more tests for sched_getscheduler and sched_xetscheduler
authorEugene Syromyatnikov <evgsyr@gmail.com>
Mon, 5 Sep 2016 01:31:35 +0000 (04:31 +0300)
committerDmitry V. Levin <ldv@altlinux.org>
Mon, 5 Sep 2016 15:58:35 +0000 (15:58 +0000)
* tests/sched_xetscheduler.c (main): Check for decoding of invalid PID
in sched_getscheduler and sched_setscheduler, invalid address
of sched_param structure, and invalid policy value.

tests/sched_xetscheduler.c

index ffb33076c057fee4fcd7d429a136e656d2529295..7faee8cd055f557cf88c1cbf19114b66d07c5541 100644 (file)
@@ -46,7 +46,26 @@ main(void)
        printf("sched_getscheduler(0) = %ld (%s)\n",
               rc, scheduler);
 
+       rc = syscall(__NR_sched_getscheduler, -1);
+       printf("sched_getscheduler(-1) = %s\n", sprintrc(rc));
+
        param->sched_priority = -1;
+
+       rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, NULL);
+       printf("sched_setscheduler(0, SCHED_FIFO, NULL) = %s\n", sprintrc(rc));
+
+       rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, param + 1);
+       printf("sched_setscheduler(0, SCHED_FIFO, %p) = %s\n", param + 1,
+              sprintrc(rc));
+
+       rc = syscall(__NR_sched_setscheduler, 0, 0xfaceda7a, param);
+       printf("sched_setscheduler(0, %#x /* SCHED_??? */, [%d]) = %s\n",
+              0xfaceda7a, param->sched_priority, sprintrc(rc));
+
+       rc = syscall(__NR_sched_setscheduler, -1, SCHED_FIFO, param);
+       printf("sched_setscheduler(-1, SCHED_FIFO, [%d]) = %s\n",
+              param->sched_priority, sprintrc(rc));
+
        rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, param);
        printf("sched_setscheduler(0, SCHED_FIFO, [%d]) = %s\n",
               param->sched_priority, sprintrc(rc));