From 87c0b56a77c35f09e03c7c70980ae84ae2f3aea0 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Tue, 19 Apr 2016 18:45:25 +0000 Subject: [PATCH] tests: remove obsolete non-strict uid tests Recently added strict tests for uid/gid related syscalls made old uid tests obsolete. * tests/uid.awk: Remove. * tests/uid.c: Remove. * tests/uid.test: Remove. * tests/uid16.c: Remove. * tests/uid16.test: Remove. * tests/uid32.c: Remove. * tests/uid32.test: Remove. * tests/.gitignore: Remove uid, uid16, and uid32. * tests/Makefile.am (check_PROGRAMS): Likewise. (DECODER_TESTS): Remove uid.test, uid16.test, and uid32.test. (EXTRA_DIST): Remove uid.awk. --- tests/.gitignore | 3 -- tests/Makefile.am | 7 ---- tests/uid.awk | 95 --------------------------------------------- tests/uid.c | 81 --------------------------------------- tests/uid.test | 23 ----------- tests/uid16.c | 98 ----------------------------------------------- tests/uid16.test | 7 ---- tests/uid32.c | 68 -------------------------------- tests/uid32.test | 7 ---- 9 files changed, 389 deletions(-) delete mode 100644 tests/uid.awk delete mode 100644 tests/uid.c delete mode 100755 tests/uid.test delete mode 100644 tests/uid16.c delete mode 100755 tests/uid16.test delete mode 100644 tests/uid32.c delete mode 100755 tests/uid32.test diff --git a/tests/.gitignore b/tests/.gitignore index e8cbdf78..2f5f95e4 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -203,9 +203,6 @@ times times-fail truncate truncate64 -uid -uid16 -uid32 uio umask umount diff --git a/tests/Makefile.am b/tests/Makefile.am index 7502f3f9..295d2214 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -253,9 +253,6 @@ check_PROGRAMS = \ times-fail \ truncate \ truncate64 \ - uid \ - uid16 \ - uid32 \ uio \ umask \ umount \ @@ -494,9 +491,6 @@ DECODER_TESTS = \ times.test \ truncate.test \ truncate64.test \ - uid.test \ - uid16.test \ - uid32.test \ uio.test \ umask.test \ umount.test \ @@ -590,7 +584,6 @@ EXTRA_DIST = init.sh run.sh match.awk \ strace-r.expected \ struct_flock.c \ sun_path.expected \ - uid.awk \ uio.expected \ umovestr.expected \ wait.expected \ diff --git a/tests/uid.awk b/tests/uid.awk deleted file mode 100644 index a5fdf1aa..00000000 --- a/tests/uid.awk +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/gawk -# -# Copyright (c) 2014-2015 Dmitry V. Levin -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. The name of the author may not be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -BEGIN { - r_uint = "(0|[1-9][0-9]*)" - r_getuid = "getuid" suffix "\\(\\)[[:space:]]+= " r_uint - r_getxuid = "getxuid" suffix "\\(\\)[[:space:]]+= " r_uint " \\(euid " r_uint "\\)" - regexp = "^(" r_getuid "|" r_getxuid ")$" - expected = "getuid" - fail = 0 -} - -regexp == "" { - fail = 1 - next -} - -{ - if (match($0, regexp, a)) { - if (expected == "getuid") { - if ("" != a[2]) - uid = a[2] - else - uid = a[3] - expected = "setuid" - regexp = "^setuid" suffix "\\(" uid "\\)[[:space:]]+= 0$" - } else if (expected == "setuid") { - expected = "getresuid" - regexp = "^getresuid" suffix "\\(\\[" uid "\\], \\[" uid "\\], \\[" uid "\\]\\)[[:space:]]+= 0$" - } else if (expected == "getresuid") { - expected = "setreuid" - regexp = "^setreuid" suffix "\\(-1, -1\\)[[:space:]]+= 0$" - } else if (expected == "setreuid") { - expected = "setresuid" - regexp = "^setresuid" suffix "\\(" uid ", -1, -1\\)[[:space:]]+= 0$" - } else if (expected == "setresuid") { - expected = "fchown" - regexp = "^fchown" suffix "\\(1, -1, -1\\)[[:space:]]+= 0$" - } else if (expected == "fchown") { - expected = "1st getgroups" - regexp = "^getgroups" suffix "\\(0, NULL\\)[[:space:]]+= " r_uint "$" - } else if (expected == "1st getgroups") { - ngroups = a[1] - if (ngroups == "0") - list="" - else if (ngroups == "1") - list=r_uint - else - list=r_uint "(, " r_uint "){" (ngroups - 1) "}" - expected = "2nd getgroups" - regexp = "^getgroups" suffix "\\(" ngroups ", \\[" list "\\]\\)[[:space:]]+= " ngroups "$" - } else if (expected == "2nd getgroups") { - expected = "the last line" - regexp = "^\\+\\+\\+ exited with 0 \\+\\+\\+$" - } else if (expected == "the last line") { - expected = "nothing" - regexp = "" - } - } -} - -END { - if (fail) { - print "Unexpected output after exit" - exit 1 - } - if (regexp == "") - exit 0 - print "error: " expected " doesn't match" - exit 1 -} diff --git a/tests/uid.c b/tests/uid.c deleted file mode 100644 index 35e0b91a..00000000 --- a/tests/uid.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2014-2016 Dmitry V. Levin - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "tests.h" -#include - -#if (defined __NR_getuid || defined __NR_getxuid) \ - && defined(__NR_setuid) \ - && defined(__NR_getresuid) \ - && defined(__NR_setreuid) \ - && defined(__NR_setresuid) \ - && defined(__NR_fchown) \ - && defined(__NR_getgroups) - -# include -# include -# include -# include - -int -main(void) -{ - int uid; - int size; - int *list = 0; - -# ifndef __NR_getuid -# define __NR_getuid __NR_getxuid -# endif - uid = syscall(__NR_getuid); - check_overflowuid(uid); - - assert(syscall(__NR_setuid, uid) == 0); - { - /* - * uids returned by getresuid should be ignored - * to avoid 16bit vs 32bit issues. - */ - int r, e, s; - assert(syscall(__NR_getresuid, &r, &e, &s) == 0); - } - assert(syscall(__NR_setreuid, -1, -1L) == 0); - assert(syscall(__NR_setresuid, uid, -1, -1L) == 0); - assert(syscall(__NR_fchown, 1, -1, -1L) == 0); - assert((size = syscall(__NR_getgroups, 0, list)) >= 0); - assert(list = calloc(size + 1, sizeof(*list))); - assert(syscall(__NR_getgroups, size, list) == size); - return 0; -} - -#else - -SKIP_MAIN_UNDEFINED("(__NR_getuid || __NR_getxuid)" - " && __NR_setuid && __NR_getresuid && __NR_setreuid" - " && __NR_setresuid && __NR_fchown && __NR_getgroups") - -#endif diff --git a/tests/uid.test b/tests/uid.test deleted file mode 100755 index 9c5a97f8..00000000 --- a/tests/uid.test +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/sh - -# Check uid decoding. - -. "${srcdir=.}/init.sh" - -s="${uid_syscall_suffix-}" -w="${uid_t_size-}" - -run_prog ./uid$s$w - -case "$STRACE_ARCH" in - alpha) getuid=getxuid ;; - *) getuid=getuid ;; -esac - -syscalls="$getuid$s,setuid$s,getresuid$s,setreuid$s,setresuid$s,fchown$s,getgroups$s" -run_strace -e trace="$syscalls" $args - -AWK=gawk -match_awk "$LOG" "$srcdir"/uid.awk "$STRACE $args output mismatch" -v suffix="$s" - -exit 0 diff --git a/tests/uid16.c b/tests/uid16.c deleted file mode 100644 index bc713878..00000000 --- a/tests/uid16.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) 2014-2016 Dmitry V. Levin - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "tests.h" -#include - -#if defined(__NR_getuid) \ - && defined(__NR_setuid) \ - && defined(__NR_getresuid) \ - && defined(__NR_setreuid) \ - && defined(__NR_setresuid) \ - && defined(__NR_fchown) \ - && defined(__NR_getgroups) \ - \ - && defined(__NR_getuid32) \ - && defined(__NR_setuid32) \ - && defined(__NR_getresuid32) \ - && defined(__NR_setreuid32) \ - && defined(__NR_setresuid32) \ - && defined(__NR_fchown32) \ - && defined(__NR_getgroups32) \ - \ - && __NR_getuid != __NR_getuid32 \ - && __NR_setuid != __NR_setuid32 \ - && __NR_getresuid != __NR_getresuid32 \ - && __NR_setreuid != __NR_setreuid32 \ - && __NR_setresuid != __NR_setresuid32 \ - && __NR_fchown != __NR_fchown32 \ - && __NR_getgroups != __NR_getgroups32 \ - /**/ - -# include -# include -# include -# include - -int -main(void) -{ - int uid; - int size; - int *list = 0; - - uid = syscall(__NR_getuid); - check_overflowuid(uid); - - assert(syscall(__NR_setuid, uid) == 0); - { - /* - * uids returned by getresuid should be ignored - * to avoid 16bit vs 32bit issues. - */ - int r, e, s; - assert(syscall(__NR_getresuid, &r, &e, &s) == 0); - } - assert(syscall(__NR_setreuid, -1, 0xffff) == 0); - assert(syscall(__NR_setresuid, uid, -1, 0xffff) == 0); - assert(syscall(__NR_fchown, 1, -1, 0xffff) == 0); - assert((size = syscall(__NR_getgroups, 0, list)) >= 0); - assert(list = calloc(size + 1, sizeof(*list))); - assert(syscall(__NR_getgroups, size, list) == size); - return 0; -} - -#else - -SKIP_MAIN_UNDEFINED("__NR_getuid && __NR_setuid && __NR_getresuid" - " && __NR_setreuid && __NR_setresuid" - " && __NR_fchown && __NR_getgroups" - " && __NR_getuid32 && __NR_setuid32 && __NR_getresuid32" - " && __NR_setreuid32 && __NR_setresuid32" - " && __NR_fchown32 && __NR_getgroups32") - -#endif diff --git a/tests/uid16.test b/tests/uid16.test deleted file mode 100755 index b9da79d1..00000000 --- a/tests/uid16.test +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -# Check uid16_t decoding. - -uid_t_size=16 - -. "${srcdir=.}/uid.test" diff --git a/tests/uid32.c b/tests/uid32.c deleted file mode 100644 index 9c30d92a..00000000 --- a/tests/uid32.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2014-2016 Dmitry V. Levin - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "tests.h" -#include - -#if defined(__NR_getuid32) \ - && defined(__NR_setuid32) \ - && defined(__NR_getresuid32) \ - && defined(__NR_setreuid32) \ - && defined(__NR_setresuid32) \ - && defined(__NR_fchown32) \ - && defined(__NR_getgroups32) - -# include -# include -# include - -int -main(void) -{ - int r, e, s; - int size; - int *list = 0; - - r = syscall(__NR_getuid32); - assert(syscall(__NR_setuid32, r) == 0); - assert(syscall(__NR_getresuid32, &r, &e, &s) == 0); - assert(syscall(__NR_setreuid32, -1, -1L) == 0); - assert(syscall(__NR_setresuid32, r, -1, -1L) == 0); - assert(syscall(__NR_fchown32, 1, -1, -1L) == 0); - assert((size = syscall(__NR_getgroups32, 0, list)) >= 0); - assert(list = calloc(size + 1, sizeof(*list))); - assert(syscall(__NR_getgroups32, size, list) == size); - return 0; -} - -#else - -SKIP_MAIN_UNDEFINED("__NR_getuid32 && __NR_setuid32 && __NR_getresuid32" - " && __NR_setreuid32 && __NR_setresuid32" - " && __NR_fchown32 && __NR_getgroups32") - -#endif diff --git a/tests/uid32.test b/tests/uid32.test deleted file mode 100755 index 82ba9b7f..00000000 --- a/tests/uid32.test +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -# Check uid32 decoding. - -uid_syscall_suffix=32 - -. "${srcdir=.}/uid.test" -- 2.40.0