]> granicus.if.org Git - strace/commitdiff
tests: uncouple pselect6 from select.test
authorDmitry V. Levin <ldv@altlinux.org>
Fri, 18 Sep 2015 21:45:36 +0000 (21:45 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sat, 19 Sep 2015 01:04:49 +0000 (04:04 +0300)
* tests/select.c Do not include <string.h>.
Include <sys/syscall.h>.
[!__NR_select]: Skip the test.
(main): Remove pselect6 support, test just select syscall.
* tests/select.test: Remove all pselect6 checks, test just
select syscall.

tests/select.c
tests/select.test

index 86e80c52c060385ba664e6085b4913984a05129d..db87704ed1e352c74c7113c5bac2c97d5c85fef5 100644 (file)
@@ -2,13 +2,23 @@
  * Based on test by Dr. David Alan Gilbert <dave@treblig.org>
  */
 #include <stdio.h>
-#include <string.h>
 #include <unistd.h>
 #include <sys/select.h>
+#include <sys/syscall.h>
+
+#undef NR_select
+
+#if defined __NR__newselect
+# define NR_select __NR__newselect
+#elif defined __NR_select
+# define NR_select __NR_select
+#endif
+
+#ifdef NR_select
 
 static fd_set set[0x1000000 / sizeof(fd_set)];
 
-int main(int ac, char **av)
+int main(void)
 {
        int fds[2];
        struct {
@@ -18,7 +28,6 @@ int main(int ac, char **av)
                .tv = { .tv_usec = 123 },
                .pad = { 0xdeadbeef, 0xbadc0ded }
        };
-       int is_select = ac < 2 || strcmp(av[1], "pselect6");
 
        if (pipe(fds))
                return 77;
@@ -29,17 +38,11 @@ int main(int ac, char **av)
        FD_ZERO(set);
        FD_SET(fds[0], set);
        FD_SET(fds[1], set);
-       if (select(fds[1] + 1, set, set, set, NULL) != 1)
+       if (syscall(NR_select, fds[1] + 1, set, set, set, NULL) != 1)
                return 77;
-       if (is_select)
-               printf("select(%d, [%d %d], [%d %d], [%d %d], NULL) = 1 ()\n",
-                      fds[1] + 1, fds[0], fds[1],
-                      fds[0], fds[1], fds[0], fds[1]);
-       else
-               printf("pselect6(%d, [%d %d], [%d %d], [%d %d], NULL, NULL) "
-                      "= 1 ()\n",
-                      fds[1] + 1, fds[0], fds[1],
-                      fds[0], fds[1], fds[0], fds[1]);
+       printf("select(%d, [%d %d], [%d %d], [%d %d], NULL) = 1 ()\n",
+              fds[1] + 1, fds[0], fds[1],
+              fds[0], fds[1], fds[0], fds[1]);
 
        /*
         * Now the crash case that trinity found, negative nfds
@@ -47,29 +50,31 @@ int main(int ac, char **av)
         */
        FD_ZERO(set);
        FD_SET(fds[1],set);
-       if (select(-1, NULL, set, NULL, NULL) != -1)
+       if (syscall(NR_select, -1, NULL, set, NULL, NULL) != -1)
                return 77;
-       if (is_select)
-               printf("select(-1, NULL, %p, NULL, NULL) "
-                      "= -1 EINVAL (Invalid argument)\n", set);
-       else
-               printf("pselect6(-1, NULL, %p, NULL, NULL, NULL) "
-                      "= -1 EINVAL (Invalid argument)\n", set);
+       printf("select(-1, NULL, %p, NULL, NULL) "
+              "= -1 EINVAL (Invalid argument)\n", set);
 
        /*
         * Another variant, with nfds exceeding FD_SETSIZE limit.
         */
        FD_ZERO(set);
        FD_SET(fds[0],set);
-       if (select(FD_SETSIZE + 1, set, set + 1, NULL, &tm.tv))
+       if (syscall(NR_select, FD_SETSIZE + 1, set, set + 1, NULL, &tm.tv))
                return 77;
-       if (is_select)
-               printf("select(%d, [%d], [], NULL, {0, 123}) = 0 (Timeout)\n",
-                      FD_SETSIZE + 1, fds[0]);
-       else
-               printf("pselect6(%d, [%d], [], NULL, {0, 123000}, NULL) "
-                      "= 0 (Timeout)\n", FD_SETSIZE + 1, fds[0]);
+       printf("select(%d, [%d], [], NULL, {0, 123}) = 0 (Timeout)\n",
+              FD_SETSIZE + 1, fds[0]);
 
        puts("+++ exited with 0 +++");
        return 0;
 }
+
+#else
+
+int
+main(void)
+{
+       return 77;
+}
+
+#endif
index 846f9be1b320b98aa54f879cbf1b5d6e433209f3..74a78d971c1849bfd4d73eb9efc480608ae2b214 100755 (executable)
@@ -1,23 +1,14 @@
 #!/bin/sh
 
-# Check select/pselect6 syscall decoding.
+# Check select syscall decoding.
 
 . "${srcdir=.}/init.sh"
 
-exe="./${ME_%.test}"
-syscall=select
-run_prog "$exe" $syscall > /dev/null
-run_strace $args > /dev/null
-
-check_prog grep
-if LC_ALL=C grep -x "pselect6(.*" "$LOG" > /dev/null; then
-       syscall=pselect6
-       run_prog "$exe" $syscall > /dev/null
-fi
-
+run_prog > /dev/null
 OUT="$LOG.out"
-run_strace -a36 -e$syscall $args > "$OUT"
+run_strace -a36 -eselect $args > "$OUT"
 match_diff "$OUT" "$LOG"
+
 rm -f "$OUT"
 
 exit 0