diff options
| author | Pádraig Brady <P@draigBrady.com> | 2024-08-19 12:43:09 +0100 |
|---|---|---|
| committer | Pádraig Brady <P@draigBrady.com> | 2024-08-19 14:47:07 +0100 |
| commit | 403cb48413519396b7df0943cb5fbab5b3d5b3e2 (patch) | |
| tree | 47c46d5fe4fc90aca7524652758451f0be4f2ab3 /tests | |
| parent | maint: adjust to recent removal of verror.c (diff) | |
| download | coreutils-403cb48413519396b7df0943cb5fbab5b3d5b3e2.tar.gz coreutils-403cb48413519396b7df0943cb5fbab5b3d5b3e2.zip | |
install: dereference source symlinks when comparing
* NEWS: Mention the change in behavior.
* src/install.c (need_copy): s/lstat/stat/ for the source.
* tests/install/install-C.sh: Add test cases
(and improve existing test case which wan't valid
due to the existing non standard modes on test files).
Addresses https://bugs.gnu.org/72707
Diffstat (limited to 'tests')
| -rwxr-xr-x | tests/install/install-C.sh | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/tests/install/install-C.sh b/tests/install/install-C.sh index a6b332e14..2751fb0b6 100755 --- a/tests/install/install-C.sh +++ b/tests/install/install-C.sh @@ -78,9 +78,18 @@ compare out out_installed_second || fail=1 ginstall -Cv -m$mode3 a b > out || fail=1 compare out out_installed_second || fail=1 -# files are not regular files +# non regular files +ginstall -v -m$mode1 a b > out || fail=1 # reset to regular mode +compare out out_installed_second || fail=1 +# symlink source is always dereferenced (and so regular here) +ginstall -v -m$mode1 a d > out || fail=1 # create regular dest +echo "'a' -> 'd'" > out_installed_first_ad || framework_failure_ +compare out out_installed_first_ad || fail=1 ln -s a c || framework_failure_ -ln -s b d || framework_failure_ +ginstall -Cv -m$mode1 c d > out || fail=1 +compare out out_empty || fail=1 +# symlink dest never created by install so deemed non regular +ln -nsf b d || framework_failure_ ginstall -Cv -m$mode1 c d > out || fail=1 echo "removed 'd' 'c' -> 'd'" > out_installed_second_cd |
