realpath.sh/test.sh

43 lines
633 B
Bash
Raw Normal View History

2018-03-14 00:26:12 +01:00
#!/bin/sh
bin=$PWD/realpath.sh
dir="$(mktemp -d)"
cd "$dir"
do_test() {
name=$dir/$2
target=$3
case "$name" in
*/*) mkdir -p "${name%/*}";;
esac
2018-03-14 00:45:19 +01:00
if [ -n "$target" ]; then
2018-03-14 00:48:42 +01:00
ln -sfn "$target" "$name"
2018-03-14 00:45:19 +01:00
else
touch "$name"
fi
2018-03-14 00:26:12 +01:00
is=$($bin "$name")
should=$(readlink -f "$name")
if [ "$is" == "$should" ]; then
echo "Test $1 success"
else
echo "Test $1 fail: \"${bin##*/} $name\" returned \"$is\" instead of \"$should\""
stat "$name"
fi
2018-03-14 00:48:42 +01:00
rm -rf "$name"
2018-03-14 00:26:12 +01:00
}
touch t
do_test 1 a /bin
do_test 2 a/b .
do_test 3 a/b ..
do_test 4 a/b ../t
2018-03-14 00:45:19 +01:00
do_test 5 a
2018-03-14 00:48:42 +01:00
do_test 6 a/ /bin
do_test 7 a/
2018-03-14 00:26:12 +01:00
rm -rf "$dir"