ln -s ../a/foo .
cd ..
+fail=0
+
# It should fail with a message something like this:
# ./cp: `a/foo' and `b/foo' are the same file
./cp -d a/foo b 2>/dev/null
# Fail this test if the exit status is not 1
-test $? = 1 || exit 1
+test $? = 1 || fail=1
+
+test "`cat a/foo`" = $msg || fail=1
-test "`cat a/foo`" = bar || exit 1
+rm -rf a b
-exit 0
+exit $fail
ln -s ../a .
cd ..
+fail=0
+
# It should fail with a message something like this:
# ./cp: `a' and `b/foo' are the same file
./cp -d a b 2>/dev/null
# Fail this test if the exit status is not 1
-test $? = 1 || exit 1
+test $? = 1 || fail=1
+
+test "`cat a`" = $msg || fail=1
-test "`cat a`" = bar || exit 1
+rm -rf a b
-exit 0
+exit $fail
echo $msg > a
ln -s a b
+fail=0
+
# It should fail with a message something like this:
# ./cp: `a' and `b' are the same file
./cp -d a b 2>/dev/null
# Fail this test if the exit status is not 1
-test $? = 1 || exit 1
+test $? = 1 || fail=1
+
+test "`cat a`" = $msg || fail=1
-test "`cat a`" = bar || exit 1
+rm -f a b
-exit 0
+exit $fail