From: Ian Jackson Date: Sun, 3 May 2015 11:02:42 +0000 (+0100) Subject: Tests: New tests/adhoc helper; document tests/using-intree too X-Git-Tag: debian/0.30~187 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=commitdiff_plain;h=e270c55f02ce8839a6a2f4fbc316b213e4eaa9d1 Tests: New tests/adhoc helper; document tests/using-intree too --- diff --git a/tests/adhoc b/tests/adhoc new file mode 100755 index 00000000..f252602b --- /dev/null +++ b/tests/adhoc @@ -0,0 +1,49 @@ +#!/bin/bash +# +# usage: +# after tests/tests/some-test has been run (and maybe failed) +# cd tests/tmp/some-test/blah +# ../../adhoc ../../../dgit some options +# or +# after tests/tests/some-test has been run (and maybe failed) +# cd tests/tmp/some-test/blah +# ../../adhoc some rune run by some piece of infrastructure +# +# effects: +# directly sets the env variables which arrange to use +# progrmas etc. from the working tree + +ourname=adhoc + +case $0 in +*/$ourname) + : ${DGIT_TEST_INTREE:=$(realpath "${0%/$ourname}/..")} + ;; +*) + echo >&2 "$ourname must be invoked as .../$ourname not $0" + exit 127 + ;; +esac + +export DGIT_TEST_INTREE + +. $DGIT_TEST_INTREE/tests/lib-core + +t-set-intree + +pwd=$(realpath "$(pwd)") +basis=$DGIT_TEST_INTREE/tests/tmp +case "$pwd" in +"$basis" | "$basis"/*) + testname=${pwd/"$basis/"/} + testname=${testname%%/*} + tmp="$basis/$testname" + ;; +*) + fail "$ourname pwd must be inside some test (in $basis), not $pwd" + ;; +esac + +export ADTTMP=$tmp HOME=$tmp DGIT_TEST_DUMMY_DIR=$tmp DGIT_TEST_TMP=$tmp + +exec "$@" diff --git a/tests/using-intree b/tests/using-intree index b9072527..0235c209 100755 --- a/tests/using-intree +++ b/tests/using-intree @@ -1,4 +1,16 @@ #!/bin/bash +# +# usage: +# cd .../dgit.git +# tests/using-intree tests/test/some-test +# or +# cd .../dgit.git +# tests/using-intree tests/run-all +# +# effects: +# sets DGIT_TEST_INTREE which causes tests/lib to have test scripts +# using programs etc. from the working tree + set -e pwd=`pwd` export DGIT_TEST_INTREE="$pwd"