From: Jim Meyering Date: Sun, 20 Apr 2008 21:29:19 +0000 (+0200) Subject: tests: convert umask-check to a function X-Git-Tag: v6.12~105 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=90bc2fe272debe8540a59b9a1e565c43e87e4635;p=platform%2Fupstream%2Fcoreutils.git tests: convert umask-check to a function * tests/test-lib.sh (working_umask_or_skip_): New function, from... * tests/umask-check: ...here. Remove file. * tests/Makefile.am (EXTRA_DIST): Remove umask-check. * tests/mkdir/perm: Use the function rather than sourcing the file. * tests/cp/cp-parents: Likewise. * tests/cp/parent-perm: Likewise. Bruno Haible reported that parent-perm was failing to run umask-check. --- diff --git a/tests/Makefile.am b/tests/Makefile.am index 83e96e6..b8fdc57 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -22,8 +22,7 @@ EXTRA_DIST = \ sample-test \ setgid-check \ sparse-file \ - test-lib.sh \ - umask-check + test-lib.sh ## N O T E :: Please do not add new tests/ directories. ## There are too many already. Put new tests in misc/. diff --git a/tests/cp/cp-parents b/tests/cp/cp-parents index fe62f2b..5b3913a 100755 --- a/tests/cp/cp-parents +++ b/tests/cp/cp-parents @@ -23,9 +23,10 @@ if test "$VERBOSE" = yes; then mv --version fi -. $top_srcdir/tests/umask-check . $top_srcdir/tests/test-lib.sh +working_umask_or_skip_ + # Run the setgid check from the just-created directory. . "$abs_top_srcdir/tests/setgid-check" diff --git a/tests/cp/parent-perm b/tests/cp/parent-perm index bca0f87..d2c2533 100755 --- a/tests/cp/parent-perm +++ b/tests/cp/parent-perm @@ -24,7 +24,7 @@ fi . $top_srcdir/tests/envvar-check . $top_srcdir/tests/test-lib.sh -. $abs_srcdir/../umask-check +working_umask_or_skip_ mkdir -p a/b/c a/b/d e || framework_failure touch a/b/c/foo a/b/d/foo || framework_failure diff --git a/tests/mkdir/perm b/tests/mkdir/perm index c6c9417..5e01013 100755 --- a/tests/mkdir/perm +++ b/tests/mkdir/perm @@ -24,7 +24,8 @@ fi . $top_srcdir/tests/test-lib.sh . "$abs_top_srcdir/tests/setgid-check" -. "$abs_top_srcdir/tests/umask-check" + +working_umask_or_skip_ fail=0 diff --git a/tests/test-lib.sh b/tests/test-lib.sh index 80621bb..8f56ab1 100644 --- a/tests/test-lib.sh +++ b/tests/test-lib.sh @@ -173,6 +173,23 @@ mkfifo_or_skip_() fi } +# Skip the current test if umask doesn't work as usual. +# This test should be run in the temporary directory that ends +# up being removed via the trap commands. +working_umask_or_skip_() +{ + umask 022 + touch file1 file2 + chmod 644 file2 + perms=`ls -l file1 file2 | sed 's/ .*//' | uniq` + rm -f file1 file2 + + case $perms in + *' + '*) skip_test_ 'your build directory has unusual umask semantics' + esac +} + test_dir_=$(pwd) this_test_() { echo "./$0" | sed 's,.*/,,'; } diff --git a/tests/umask-check b/tests/umask-check deleted file mode 100644 index 238d658..0000000 --- a/tests/umask-check +++ /dev/null @@ -1,31 +0,0 @@ -# -*- sh -*- -# Disable the current test if umask doesn't work as usual. - -# Copyright (C) 2005, 2007 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 . */ - -# This test should be run in the temporary directory that ends -# up being removed via the trap commands. - -umask 022 -touch file1 file2 -chmod 644 file2 -perms=`ls -l file1 file2 | sed 's/ .*//' | uniq` -rm -f file1 file2 - -case $perms in -*' -'*) skip_test_ 'your build directory has unusual umask semantics' -esac