]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
Avoid test failure when run with risky PATH ("." before /usr/bin).
authorJim Meyering <meyering@redhat.com>
Sun, 10 Feb 2008 10:26:57 +0000 (11:26 +0100)
committerJim Meyering <meyering@redhat.com>
Sun, 10 Feb 2008 10:26:57 +0000 (11:26 +0100)
* build-aux/check.mk (approx_dirname_filter): Define.
(am__check_pre): Emulate dirname using sed.
Report and suggested fix from Bruno Haible in
http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12587/focus=12590

build-aux/check.mk

index 34169f50def13c150f90f497c9f1d698726155a9..f35007bb08f8ac59ae84839407a0c85962343d16 100644 (file)
@@ -89,6 +89,11 @@ tput sgr0 >/dev/null 2>&1 &&                 \
 # by disabling -e (using the XSI extension "set +e") if it's set.
 SH_E_WORKAROUND = case $$- in *e*) set +e;; esac
 
+# Emulate dirname with sed.
+# This approximation fails when the input is a single-component
+# absolute directory name like /foo, but that never happens here.
+approx_dirname_filter = sed 's,^[^/]*$$,.,;s,//*[^/]*$$,,'
+
 # To be inserted before the command running the test.  Creates the
 # directory for the log if needed.  Stores in $dir the directory
 # containing $src, and passes TESTS_ENVIRONMENT.
@@ -96,7 +101,7 @@ am__check_pre =                                      \
 $(SH_E_WORKAROUND);                            \
 tst=`echo "$$src" | sed 's|^.*/||'`;           \
 rm -f $@-t;                                    \
-$(mkdir_p) "$$(dirname $@)" || exit;           \
+$(mkdir_p) "$$(echo '$@'|$(approx_dirname_filter))" || exit; \
 if test -f "./$$src"; then dir=./;             \
 elif test -f "$$src"; then dir=;               \
 else dir="$(srcdir)/"; fi;                     \