diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-08-30 14:13:12 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2012-08-30 18:55:59 +0200 |
commit | 9eb4c31eb78c28dd9f72d1cbb940270311be343c (patch) | |
tree | ea3078bc1b002a9f948ed41445ca32318002a1d3 /tests/cp/nfs-removal-race | |
parent | 00f5ba15dd91a3d9780fe1fbd06a4df436ae6714 (diff) | |
download | coreutils-9eb4c31eb78c28dd9f72d1cbb940270311be343c.tar.xz |
tests: add .sh and .pl suffixes to shell and perl tests, respectively
Not only this shrinks the size of the generated Makefile (from > 6300
lines to ~3000), but will allow further simplifications in future
changes.
* tests/Makefile.am (TEST_EXTENSIONS): Add '.sh' and '.pl'.
(PL_LOG_COMPILER, SH_LOG_COMPILER): New, still defined simply to
$(LOG_COMPILER) for the time being.
(TESTS, root_tests): Adjust as described.
* All tests: Rename as described.
Diffstat (limited to 'tests/cp/nfs-removal-race')
-rwxr-xr-x | tests/cp/nfs-removal-race | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/tests/cp/nfs-removal-race b/tests/cp/nfs-removal-race deleted file mode 100755 index cb8aba37f..000000000 --- a/tests/cp/nfs-removal-race +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/sh -# Running cp S D on an NFS client while another client has just removed D -# would lead (w/coreutils-8.16 and earlier) to cp's initial stat call -# seeing (via stale NFS cache) that D exists, so that cp would then call -# open without the O_CREAT flag. Yet, the open must actually consult -# the server, which confesses that D has been deleted, thus causing the -# open call to fail with ENOENT. -# -# This test simulates that situation by intercepting stat for a nonexistent -# destination, D, and making the stat fill in the result struct for another -# file and return 0. -# -# This test is skipped on systems that lack LD_PRELOAD support; that's fine. -# Similarly, on a system that lacks <dlfcn.h> or __xstat, skipping it is fine. - -# Copyright (C) 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_ cp - -# Replace each stat call with a call to this wrapper. -cat > k.c <<'EOF' || framework_failure_ -#define _GNU_SOURCE -#include <sys/types.h> -#include <dlfcn.h> - -#define __xstat __xstat_orig - -#include <sys/stat.h> -#include <stddef.h> - -#undef __xstat - -int -__xstat (int ver, const char *path, struct stat *st) -{ - static int (*real_stat)(int ver, const char *path, struct stat *st) = NULL; - if (!real_stat) - real_stat = dlsym (RTLD_NEXT, "__xstat"); - /* When asked to stat nonexistent "d", - return results suggesting it exists. */ - return real_stat (ver, *path == 'd' && path[1] == 0 ? "d2" : path, st); -} -EOF - -# Then compile/link it: -$CC -shared -fPIC -O2 k.c -o k.so -ldl \ - || framework_failure_ 'failed to compile with -shared -fPIC' - -touch d2 || framework_failure_ -echo xyz > src || framework_failure_ - -# Finally, run the test: -LD_PRELOAD=./k.so cp src d || fail=1 - -compare src d || fail=1 -Exit $fail |