From: Dmitry V. Levin Date: Thu, 30 Jul 2015 08:24:32 +0000 (+0000) Subject: tests: add oldselect.test X-Git-Tag: v4.11~313 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ea7ef9365f9949225b6526e7b8eaf07997247222;p=strace tests: add oldselect.test * tests/oldselect.c: New file. * tests/oldselect.expected: Likewise. * tests/oldselect.test: New test. * tests/Makefile.am (check_PROGRAMS): Add oldselect. (TESTS): Add oldselect.test. (EXTRA_DIST): Add oldselect.expected. * tests/.gitignore: Add oldselect. --- diff --git a/tests/.gitignore b/tests/.gitignore index 51d8dd2a..801acee6 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -18,6 +18,7 @@ mmsg net-accept-connect netlink_inet_diag netlink_unix_diag +oldselect pc pipe sched_xetattr diff --git a/tests/Makefile.am b/tests/Makefile.am index 2eb31330..4a51a4d4 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -29,6 +29,7 @@ check_PROGRAMS = \ net-accept-connect \ netlink_inet_diag \ netlink_unix_diag \ + oldselect \ pc \ pipe \ sched_xetattr \ @@ -98,6 +99,7 @@ TESTS = \ net.test \ net-fd.test \ net-yy.test \ + oldselect.test \ pipe.test \ pc.test \ sun_path.test \ @@ -143,6 +145,7 @@ EXTRA_DIST = init.sh run.sh match.awk \ net-fd.expected \ net-yy-accept.awk \ net-yy-connect.awk \ + oldselect.expected \ pipe.expected \ restart_syscall.expected \ restart_syscall_unknown.expected \ diff --git a/tests/oldselect.c b/tests/oldselect.c new file mode 100644 index 00000000..3204ef53 --- /dev/null +++ b/tests/oldselect.c @@ -0,0 +1,45 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include + +#if defined __NR_select && defined __NR__newselect \ + && __NR_select != __NR__newselect \ + && !defined SPARC + +int +main(void) +{ + int fds[2]; + fd_set r = {}, w = {}; + struct timeval timeout = { .tv_sec = 0, .tv_usec = 42 }; + long args[] = { + 2, (long) &r, (long) &w, 0, (long) &timeout, + 0xdeadbeef, 0xbadc0ded, 0xdeadbeef, 0xbadc0ded, 0xdeadbeef + }; + + (void) close(0); + (void) close(1); + if (pipe(fds)) + return 77; + + FD_SET(0, &w); + FD_SET(1, &r); + if (syscall(__NR_select, args)) + return 77; + + return 0; +} + +#else + +int +main(void) +{ + return 77; +} + +#endif diff --git a/tests/oldselect.expected b/tests/oldselect.expected new file mode 100644 index 00000000..14049ab1 --- /dev/null +++ b/tests/oldselect.expected @@ -0,0 +1 @@ +oldselect\(2, \[1\], \[0\], NULL, \{0, 42\}\) += 0 \(Timeout\) diff --git a/tests/oldselect.test b/tests/oldselect.test new file mode 100755 index 00000000..edd3693e --- /dev/null +++ b/tests/oldselect.test @@ -0,0 +1,11 @@ +#!/bin/sh + +# Check oldselect syscall decoding. + +. "${srcdir=.}/init.sh" + +run_prog +run_strace -e oldselect $args +match_grep + +exit 0