From 3269104d172bdc0c9ed0a01e6706f1f6e1a2bdda Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 3 May 2008 15:43:13 +0200 Subject: tests: move "group-names" into test-lib.sh * tests/group-names: Remove file Move contents into ... * tests/test-lib.sh (require_membership_in_two_groups_): ...here. New function. * tests/chgrp/basic: Use the function, not the file. * tests/chgrp/default-no-deref: Likewise. * tests/chgrp/deref: Likewise. * tests/chgrp/no-x: Likewise. * tests/chgrp/posix-H: Likewise. * tests/chgrp/recurse: Likewise. * tests/cp/existing-perm-race: Likewise. * tests/Makefile.am (EXTRA_DIST): Remove group-names. --- tests/Makefile.am | 1 - tests/chgrp/basic | 2 +- tests/chgrp/default-no-deref | 2 +- tests/chgrp/deref | 2 +- tests/chgrp/no-x | 2 +- tests/chgrp/posix-H | 2 +- tests/chgrp/recurse | 2 +- tests/cp/existing-perm-race | 2 +- tests/group-names | 35 ----------------------------------- tests/test-lib.sh | 23 +++++++++++++++++++++++ 10 files changed, 30 insertions(+), 43 deletions(-) delete mode 100644 tests/group-names diff --git a/tests/Makefile.am b/tests/Makefile.am index 515cfe6fe..62defa25a 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -12,7 +12,6 @@ EXTRA_DIST = \ README \ check.mk \ envvar-check \ - group-names \ input-tty \ lang-default \ mk-script \ diff --git a/tests/chgrp/basic b/tests/chgrp/basic index c21aec04f..889a62c9a 100755 --- a/tests/chgrp/basic +++ b/tests/chgrp/basic @@ -21,8 +21,8 @@ if test "$VERBOSE" = yes; then chgrp --version fi -. $top_srcdir/tests/group-names . $top_srcdir/tests/test-lib.sh +require_membership_in_two_groups_ fail=0 diff --git a/tests/chgrp/default-no-deref b/tests/chgrp/default-no-deref index e1f711d7c..ff484ed00 100755 --- a/tests/chgrp/default-no-deref +++ b/tests/chgrp/default-no-deref @@ -21,8 +21,8 @@ if test "$VERBOSE" = yes; then chgrp --version fi -. $top_srcdir/tests/group-names . $top_srcdir/tests/test-lib.sh +require_membership_in_two_groups_ set _ $groups; shift g2=$2 diff --git a/tests/chgrp/deref b/tests/chgrp/deref index f3453fb7a..ce70b9d2f 100755 --- a/tests/chgrp/deref +++ b/tests/chgrp/deref @@ -21,8 +21,8 @@ if test "$VERBOSE" = yes; then chgrp --version fi -. $top_srcdir/tests/group-names . $top_srcdir/tests/test-lib.sh +require_membership_in_two_groups_ set _ $groups; shift g1=$1 diff --git a/tests/chgrp/no-x b/tests/chgrp/no-x index fbe100265..93dd520c3 100755 --- a/tests/chgrp/no-x +++ b/tests/chgrp/no-x @@ -22,8 +22,8 @@ if test "$VERBOSE" = yes; then chgrp --version fi -. $top_srcdir/tests/group-names . $top_srcdir/tests/test-lib.sh +require_membership_in_two_groups_ skip_if_root_ set _ $groups; shift diff --git a/tests/chgrp/posix-H b/tests/chgrp/posix-H index 88345767b..0b18b44ce 100755 --- a/tests/chgrp/posix-H +++ b/tests/chgrp/posix-H @@ -21,8 +21,8 @@ if test "$VERBOSE" = yes; then chgrp --version fi -. $top_srcdir/tests/group-names . $top_srcdir/tests/test-lib.sh +require_membership_in_two_groups_ set _ $groups; shift g1=$1 diff --git a/tests/chgrp/recurse b/tests/chgrp/recurse index 4ae30f969..52b0e1973 100755 --- a/tests/chgrp/recurse +++ b/tests/chgrp/recurse @@ -21,8 +21,8 @@ if test "$VERBOSE" = yes; then chgrp --version fi -. $top_srcdir/tests/group-names . $top_srcdir/tests/test-lib.sh +require_membership_in_two_groups_ set _ $groups; shift g1=$1 diff --git a/tests/cp/existing-perm-race b/tests/cp/existing-perm-race index aa6d7c99a..f2a328723 100755 --- a/tests/cp/existing-perm-race +++ b/tests/cp/existing-perm-race @@ -21,8 +21,8 @@ if test "$VERBOSE" = yes; then cp --version fi -. $top_srcdir/tests/group-names . $top_srcdir/tests/test-lib.sh +require_membership_in_two_groups_ set _ $groups; shift g1=$1 diff --git a/tests/group-names b/tests/group-names deleted file mode 100644 index f9e063861..000000000 --- a/tests/group-names +++ /dev/null @@ -1,35 +0,0 @@ -# -*- sh -*- -# Set `groups' to a space-separated list of at least two groups of which -# the user is a member. - -# Copyright (C) 2000, 2004, 2005 Free Software Foundation, Inc. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -groups=${COREUTILS_GROUPS-`(id -G || /usr/xpg4/bin/id -G) 2>/dev/null`} -case "$groups" in - *' '*) ;; - *) cat <&2 -$0: this test requires that you be a member of more than one group, -but running \`id -G' either failed or found just one. If you really -are a member of at least two groups, then rerun this test with -COREUTILS_GROUPS set in your environment to the space-separated list -of group names or numbers. E.g., - - env COREUTILS_GROUPS='users cdrom' make check - -EOF - (exit 77); exit 77 - ;; -esac diff --git a/tests/test-lib.sh b/tests/test-lib.sh index acdcbfb9c..bd6be422b 100644 --- a/tests/test-lib.sh +++ b/tests/test-lib.sh @@ -174,6 +174,29 @@ skip_if_root_() { uid_is_privileged_ && skip_test_ "must be run as non-root"; } error_() { echo "$0: $@" 1>&2; (exit 1); exit 1; } framework_failure() { error_ 'failure in testing framework'; } +# Set `groups' to a space-separated list of at least two groups +# of which the user is a member. +require_membership_in_two_groups_() +{ + test $# = 0 || framework_failure + + groups=${COREUTILS_GROUPS-`(id -G || /usr/xpg4/bin/id -G) 2>/dev/null`} + case "$groups" in + *' '*) ;; + *) skip_test_ ' +$0: this test requires that you be a member of more than one group, +but running `id -G'\'' either failed or found just one. If you really +are a member of at least two groups, then rerun this test with +COREUTILS_GROUPS set in your environment to the space-separated list +of group names or numbers. E.g., + + env COREUTILS_GROUPS='users cdrom' make check + +' + ;; + esac +} + mkfifo_or_skip_() { test $# = 1 || framework_failure -- cgit v1.2.3-70-g09d2