From: Sami Kerola Date: Sun, 22 Jun 2014 09:20:54 +0000 (+0100) Subject: tests: add function to change directory reliable way X-Git-Tag: v2.26-rc1~600^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=723c70434bd307522530e203e70dd113842cb474;p=thirdparty%2Futil-linux.git tests: add function to change directory reliable way Without arguments bash cd will move to $HOME. Ensure also that when directory is assumed to be changed the current directory and intented destination are the same location. Reference: http://www.spinics.net/lists/util-linux-ng/msg09509.html Signed-off-by: Sami Kerola --- diff --git a/tests/functions.sh b/tests/functions.sh index 2a50de721a..6998343e1f 100644 --- a/tests/functions.sh +++ b/tests/functions.sh @@ -31,6 +31,20 @@ function ts_canonicalize { fi } +function ts_cd { + if [ $# -eq 0 ]; then + ts_failed "ul_cd: not enough arguments" + fi + DEST=$(readlink -f "$1" 2>/dev/null) + if [ "x$DEST" = "x" ] || [ ! -d "$DEST" ]; then + ts_failed "ul_cd: $1: no such directory" + fi + cd "$DEST" 2>/dev/null || ts_failed "ul_cd: $1: cannot change directory" + if [ "$PWD" != "$DEST" ]; then + ts_failed "ul_cd: $PWD is not $DEST" + fi +} + function ts_report { if [ "$TS_PARALLEL" == "yes" ]; then echo "$TS_TITLE $1"