xref: /freebsd/bin/sh/tests/builtins/cd1.0 (revision d0b2dbfa)
113de33a5SJulio Merinoset -e
213de33a5SJulio Merino
313de33a5SJulio MerinoP=${TMPDIR:-/tmp}
413de33a5SJulio Merinocd $P
513de33a5SJulio MerinoT=$(mktemp -d sh-test.XXXXXX)
613de33a5SJulio Merino
713de33a5SJulio Merinochmod 0 $T
813de33a5SJulio Merinoif [ `id -u` -ne 0 ]; then
913de33a5SJulio Merino	# Root can always cd, regardless of directory permissions.
1013de33a5SJulio Merino	cd -L $T 2>/dev/null && exit 1
1113de33a5SJulio Merino	[ "$PWD" = "$P" ]
1213de33a5SJulio Merino	[ "$(pwd)" = "$P" ]
1313de33a5SJulio Merino	cd -P $T 2>/dev/null && exit 1
1413de33a5SJulio Merino	[ "$PWD" = "$P" ]
1513de33a5SJulio Merino	[ "$(pwd)" = "$P" ]
1613de33a5SJulio Merinofi
1713de33a5SJulio Merino
1813de33a5SJulio Merinochmod 755 $T
1913de33a5SJulio Merinocd $T
2013de33a5SJulio Merinomkdir -p 1/2/3
2113de33a5SJulio Merinoln -s 1/2 link1
2213de33a5SJulio Merinoln -s 2/3 1/link2
2313de33a5SJulio Merino(cd -L 1/../1 && [ "$(pwd -L)" = "$P/$T/1" ])
2413de33a5SJulio Merino(cd -L link1 && [ "$(pwd -L)" = "$P/$T/link1" ])
2513de33a5SJulio Merino(cd -L link1 && [ "$(pwd -P)" = "$P/$T/1/2" ])
2613de33a5SJulio Merino(cd -P link1 && [ "$(pwd -L)" = "$P/$T/1/2" ])
2713de33a5SJulio Merino(cd -P link1 && [ "$(pwd -P)" = "$P/$T/1/2" ])
2813de33a5SJulio Merino
2913de33a5SJulio Merinorm -rf ${P}/${T}
30