X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/331050969b7edfa86a03da85d94795ed63337638..d1239eae921d013ffeb118b1a768308e28bd9f11:/testsuite/rsync.fns diff --git a/testsuite/rsync.fns b/testsuite/rsync.fns index e7f753a9..1bb23f97 100644 --- a/testsuite/rsync.fns +++ b/testsuite/rsync.fns @@ -260,9 +260,35 @@ test_xfail() { exit 78 } +# Determine what shell command will appropriately test for links. +ln -s foo "$scratchdir/testlink" +for cmd in test /bin/test /usr/bin/test /usr/ucb/bin/test /usr/ucb/test +do + for switch in -h -L + do + if $cmd $switch "$scratchdir/testlink" 2>/dev/null + then + # how nice + TEST_SYMLINK_CMD="$cmd $switch" + # i wonder if break 2 is portable? + break 2 + fi + done +done + + +if [ "x$TEST_SYMLINK_CMD" = 'x' ] +then + test_fail "Couldn't determine how to test for symlinks" +else + echo "Testing for symlinks using '$TEST_SYMLINK_CMD'" +fi + + # Test whether something is a link, allowing for shell peculiarities is_a_link() { - test -L "$1" || test -h "$1" || /usr/bin/test -L "$1" || /usr/bin/test -h "$1" + # note the variable contains the first option and therefore is not quoted + $TEST_SYMLINK_CMD "$1" }