diff options
Diffstat (limited to 'bin/cash/tests/builtins/cd1.0')
-rw-r--r-- | bin/cash/tests/builtins/cd1.0 | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/bin/cash/tests/builtins/cd1.0 b/bin/cash/tests/builtins/cd1.0 new file mode 100644 index 00000000..82a7d105 --- /dev/null +++ b/bin/cash/tests/builtins/cd1.0 @@ -0,0 +1,30 @@ +# $FreeBSD: releng/12.0/bin/sh/tests/builtins/cd1.0 228975 2011-12-30 00:04:11Z uqs $ +set -e + +P=${TMPDIR:-/tmp} +cd $P +T=$(mktemp -d sh-test.XXXXXX) + +chmod 0 $T +if [ `id -u` -ne 0 ]; then + # Root can always cd, regardless of directory permissions. + cd -L $T 2>/dev/null && exit 1 + [ "$PWD" = "$P" ] + [ "$(pwd)" = "$P" ] + cd -P $T 2>/dev/null && exit 1 + [ "$PWD" = "$P" ] + [ "$(pwd)" = "$P" ] +fi + +chmod 755 $T +cd $T +mkdir -p 1/2/3 +ln -s 1/2 link1 +ln -s 2/3 1/link2 +(cd -L 1/../1 && [ "$(pwd -L)" = "$P/$T/1" ]) +(cd -L link1 && [ "$(pwd -L)" = "$P/$T/link1" ]) +(cd -L link1 && [ "$(pwd -P)" = "$P/$T/1/2" ]) +(cd -P link1 && [ "$(pwd -L)" = "$P/$T/1/2" ]) +(cd -P link1 && [ "$(pwd -P)" = "$P/$T/1/2" ]) + +rm -rf ${P}/${T} |