diff options
Diffstat (limited to 'tests/touch/no-dereference')
-rwxr-xr-x | tests/touch/no-dereference | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/tests/touch/no-dereference b/tests/touch/no-dereference deleted file mode 100755 index aee9a5cfc..000000000 --- a/tests/touch/no-dereference +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/sh -# Ensure that touch -h works. - -# Copyright (C) 2009-2012 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 <http://www.gnu.org/licenses/>. - -. "${srcdir=.}/init.sh"; path_prepend_ ../src -print_ver_ touch - -ln -s nowhere dangling || framework_failure_ -touch file || framework_failure_ -ln -s file link || framework_failure_ - - -# These first tests should work on every platform. -# -h does not create files, but it warns. Use -c to silence warning. -touch -h no-file 2> err && fail=1 -test -s err || fail=1 -touch -h -c no-file 2> err || fail=1 -test -s err && fail=1 - -# -h works on regular files -touch -h file || fail=1 - -# -h coupled with -r uses timestamp of the symlink, not the referent. -touch -h -r dangling file || fail=1 -test -f nowhere && fail=1 - -# The remaining tests of -h require kernel support for changing symlink times. -grep '^#define HAVE_UTIMENSAT 1' "$CONFIG_HEADER" > /dev/null || -grep '^#define HAVE_LUTIMES 1' "$CONFIG_HEADER" > /dev/null || - skip_ 'this system lacks the utimensat function' - -# Changing time of dangling symlink is okay. -# Skip the test if this fails, but the error text corresponds to -# ENOSYS (possible with old kernel but new glibc). -touch -h dangling 2> err -case $? in - 0) test -f nowhere && fail=1 - test -s err && fail=1;; - 1) grep 'Function not implemented' err \ - && skip_ 'this system lacks the utimensat function' - fail=1;; - *) fail=1;; -esac - -# Change the mtime of a symlink. -touch -m -h -d 2009-10-10 link || fail=1 -case $(stat --format=%y link) in - 2009-10-10*) ;; - *) fail=1 ;; -esac -case $(stat --format=%y file) in - 2009-10-10*) fail=1;; -esac - -# Test interactions with -. -touch -h - > file || fail=1 - -test="$abs_top_builddir/src/test" - -# If >&- works, test "touch -ch -" etc. -# >&- apparently does not work in HP-UX 11.23. -# This test is ineffective unless /dev/stdout also works. -# If stdout is open, it is not a symlink. -if "$test" -w /dev/stdout >/dev/null && - "$test" ! -w /dev/stdout >&-; then - touch -h - >&- && fail=1 - touch -h -c - >&- || fail=1 -fi - -Exit $fail |