# Test rsync's somewhat over-featured symlink control: the default
# behaviour is that symlinks should not be copied at all.
-. $srcdir/testsuite/rsync.fns
+. "$suitedir/rsync.fns"
-build_symlinks
+set -x
+
+build_symlinks || test_fail "failed to build symlinks"
# Copy recursively, but without -l or -L or -a, and all the symlinks
# should be missing.
-"$rsync_bin" -r "$fromdir/" "$todir" || test_fail "rsync returned $?"
-
-[ -e $todir/referent ] || test_fail "referent was not copied"
-[ -e $todir/from ] && test_fail "extra level of directories"
-[ -e $todir/dangling ] && test_fail "dangling symlink was copied"
-[ -e $todir/relative ] && test_fail "relative symlink was copied"
-[ -e $todir/absolute ] && test_fail "absolute symlink was copied"
-
-true # cool
+$RSYNC -r "$fromdir/" "$todir" || test_fail "$RSYNC returned $?"
+
+[ -f "$todir/referent" ] || test_fail "referent was not copied"
+[ -d "$todir/from" ] && test_fail "extra level of directories"
+if is_a_link "$todir/dangling"
+then
+ test_fail "dangling symlink was copied"
+fi
+
+if is_a_link "$todir/relative"
+then
+ test_fail "relative symlink was copied"
+fi
+
+if is_a_link "$todir/absolute"
+then
+ test_fail "absolute symlink was copied"
+fi
+
+# The script would have aborted on error, so getting here means we've won.
+exit 0