diff options
author | 2021-05-21 09:21:42 -0400 | |
---|---|---|
committer | 2021-05-21 09:21:42 -0400 | |
commit | f06784df5a44c2aeb450ff88346a96f0bc9eb732 (patch) | |
tree | 49e9923a65f7cf572a6f0833737b72848299b1c8 /file_cmds/tests/cp.sh | |
parent | 0e3bb24ea8cde1573760b88ad56c1cc00be15cc8 (diff) | |
parent | 8d788054a62508f8d1b93067be16fb73f987ca8e (diff) | |
download | apple_cmds-f06784df5a44c2aeb450ff88346a96f0bc9eb732.tar.gz apple_cmds-f06784df5a44c2aeb450ff88346a96f0bc9eb732.tar.zst apple_cmds-f06784df5a44c2aeb450ff88346a96f0bc9eb732.zip |
Merge branch 'apple'
Diffstat (limited to 'file_cmds/tests/cp.sh')
-rw-r--r-- | file_cmds/tests/cp.sh | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/file_cmds/tests/cp.sh b/file_cmds/tests/cp.sh new file mode 100644 index 0000000..24afa56 --- /dev/null +++ b/file_cmds/tests/cp.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +# Regression test for 69452380 +function regression_69452380() +{ + echo "Verifying that cp -p preserves symlink's attributes, rather than the attributes of the symlink's target." + test_dir=`mktemp -d /tmp/69452380_src_XXXX` + touch ${test_dir}/target + mkdir ${test_dir}/link_dir + # Create symlink (must use relative path for the failure to occur) + cd ${test_dir}/link_dir + ln -s ../target link + # cp (with attribute preservation) the test dir containing both the + # target and the link (in a subdirectory) to a new dir. + # Prior to 69452380, this failed because we followed the symlink to + # try and preserve attributes for a non-existing file, instead of + # preserving the attributes of the symlink itself. + cp -R -P -p ${test_dir} /tmp/69452380_tgt_${RANDOM} +} + +set -eu -o pipefail + +regression_69452380 |