tests: add xetpriority.test

* resource.c (SYS_FUNC(getpriority), SYS_FUNC(setpriority)): Print
the second syscall argument using %d format.
* tests/xetpriority.c: New file.
* tests/xetpriority.test: New test.
* tests/.gitignore: Add xetpriority.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(TESTS): Add xetpriority.test.
This commit is contained in:
Fei Jie 2016-03-17 17:30:45 +08:00 committed by Dmitry V. Levin
parent b824f9872b
commit 032a9a4358
5 changed files with 54 additions and 2 deletions

View File

@ -184,7 +184,7 @@ SYS_FUNC(osf_getrusage)
SYS_FUNC(getpriority)
{
printxval(priorities, tcp->u_arg[0], "PRIO_???");
tprintf(", %lu", tcp->u_arg[1]);
tprintf(", %d", (int) tcp->u_arg[1]);
return RVAL_DECODED;
}
@ -192,7 +192,7 @@ SYS_FUNC(getpriority)
SYS_FUNC(setpriority)
{
printxval(priorities, tcp->u_arg[0], "PRIO_???");
tprintf(", %lu, %d", tcp->u_arg[1], (int) tcp->u_arg[2]);
tprintf(", %d, %d", (int) tcp->u_arg[1], (int) tcp->u_arg[2]);
return RVAL_DECODED;
}

1
tests/.gitignore vendored
View File

@ -149,4 +149,5 @@ xattr
xet_robust_list
xetitimer
xetpgid
xetpriority
xettimeofday

View File

@ -197,6 +197,7 @@ check_PROGRAMS = \
xet_robust_list \
xetitimer \
xetpgid \
xetpriority \
xettimeofday \
# end of check_PROGRAMS
@ -365,6 +366,7 @@ TESTS = \
xet_robust_list.test \
xetitimer.test \
xetpgid.test \
xetpriority.test \
xettimeofday.test \
\
count.test \

38
tests/xetpriority.c Normal file
View File

@ -0,0 +1,38 @@
#include "tests.h"
#include <sys/syscall.h>
#if defined __NR_getpriority && defined __NR_setpriority
# include <errno.h>
# include <stdio.h>
# include <sys/time.h>
# include <sys/resource.h>
# include <unistd.h>
int
main(void)
{
const int pid = getpid();
int rc = syscall(__NR_getpriority, PRIO_PROCESS,
(unsigned long) 0xffffffff00000000 | pid);
printf("getpriority(PRIO_PROCESS, %d) = %d\n",
pid, rc);
if ((syscall(__NR_setpriority, PRIO_PROCESS,
(unsigned long) 0xffffffff00000000 | pid,
(unsigned long) 0xffffffff00000000)) == 0) {
printf("setpriority(PRIO_PROCESS, %d, 0) = 0\n", pid);
} else {
printf("setpriority(PRIO_PROCESS, %d, 0) = -1 %s (%m)\n",
pid, errno == EPERM ? "EPERM" : "EACCES");
}
puts("+++ exited with 0 +++");
return 0;
}
#else
SKIP_MAIN_UNDEFINED("__NR_getpriority && _NR_setpriority")
#endif

11
tests/xetpriority.test Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
# Check getpriority and setpriority syscalls decoding.
. "${srcdir=.}/init.sh"
run_prog > /dev/null
OUT="$LOG.out"
run_strace -egetpriority,setpriority -a29 $args > "$OUT"
match_diff "$LOG" "$OUT"
rm -f "$OUT"