From: Elvira Khabirova Date: Fri, 21 Aug 2015 15:49:14 +0000 (+0300) Subject: tests: add rt_sigqueueinfo.test X-Git-Tag: v4.11~237 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3b7674c6dff3413778d02e8848dd507f21085181;p=strace tests: add rt_sigqueueinfo.test * tests/rt_sigqueueinfo.c: New file. * tests/rt_sigqueueinfo.test: New test. * tests/Makefile.am (check_PROGRAMS): Add rt_sigqueueinfo. (TESTS): Add rt_sigqueueinfo.test. * tests/.gitignore: Add rt_sigqueueinfo. --- diff --git a/tests/.gitignore b/tests/.gitignore index 4e609c0c..ef0d5738 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -27,6 +27,7 @@ pipe ppoll readlink readlinkat +rt_sigqueueinfo sched_xetattr scm_rights seccomp diff --git a/tests/Makefile.am b/tests/Makefile.am index 1b078e01..316cc409 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -40,6 +40,7 @@ check_PROGRAMS = \ ppoll \ readlink \ readlinkat \ + rt_sigqueueinfo \ sched_xetattr \ scm_rights \ seccomp \ @@ -101,6 +102,7 @@ TESTS = \ ipc_sem.test \ readlink.test \ readlinkat.test \ + rt_sigqueueinfo.test \ sched_xetattr.test \ scm_rights-fd.test \ seccomp.test \ diff --git a/tests/rt_sigqueueinfo.c b/tests/rt_sigqueueinfo.c new file mode 100644 index 00000000..ab00da84 --- /dev/null +++ b/tests/rt_sigqueueinfo.c @@ -0,0 +1,27 @@ +#include +#include +#include + +int +main (void) +{ + struct sigaction sa = { + .sa_handler = SIG_IGN + }; + union sigval value = { + .sival_ptr = (void *) (unsigned long) 0xdeadbeefbadc0ded + }; + pid_t pid = getpid(); + + if (sigaction(SIGUSR1, &sa, NULL) == -1) + return 77; + if (sigqueue(pid, SIGUSR1, value) == -1) + return 77; + printf("rt_sigqueueinfo(%u, SIGUSR1, {si_signo=SIGUSR1, " + "si_code=SI_QUEUE, si_pid=%u, si_uid=%u, " + "si_value={int=%d, ptr=%p}}) = 0\n", + pid, pid, getuid(), value.sival_int, value.sival_ptr); + printf("+++ exited with 0 +++\n"); + + return 0; +} diff --git a/tests/rt_sigqueueinfo.test b/tests/rt_sigqueueinfo.test new file mode 100755 index 00000000..bf766817 --- /dev/null +++ b/tests/rt_sigqueueinfo.test @@ -0,0 +1,13 @@ +#!/bin/sh + +# Check decoding of rt_sigqueueinfo syscall + +. "${srcdir=.}/init.sh" + +run_prog > /dev/null +OUT="$LOG.out" +run_strace -ert_sigqueueinfo -esignal=none $args > "$OUT" +match_diff "$OUT" "$LOG" +rm -f "$OUT" + +exit 0