From dbb2e039fac19d9b74075fd79cddade534cafeca Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 18 Oct 2009 23:09:09 -0700 Subject: tests: predictable and simpler tempfile management Instead of using completely random names, we'll use predictable ones since we already depend on them for exit codes and such. This drops our ability to run the same test for the same version of Ruby in the same working tree, but that's an unlikely scenario. While we're at it, avoid remove tempfiles if a test failed. This should make debugging easier. --- t/test-lib.sh | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 't/test-lib.sh') diff --git a/t/test-lib.sh b/t/test-lib.sh index be2dce2..86476e0 100755 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -27,8 +27,10 @@ then esac fi +ruby="${ruby-'ruby'}" +RUBY_VERSION=${RUBY_VERSION-$($ruby -e 'puts RUBY_VERSION')} +t_pfx=$PWD/trash/$T-$RUBY_VERSION set -u -ruby="${ruby-ruby}" # ensure a sane environment TZ=UTC LC_ALL=C LANG=C @@ -40,8 +42,22 @@ die () { exit 1 } -_TEST_RM_LIST="" -trap 'rm -f $_TEST_RM_LIST' 0 +_test_on_exit () { + code=$? + case $code in + 0) + echo "ok $T" + rm -f $_TEST_OK_RM_LIST + ;; + *) echo "not ok $T" ;; + esac + rm -f $_TEST_RM_LIST + exit $code +} + +_TEST_RM_LIST= +_TEST_OK_RM_LIST= +trap _test_on_exit EXIT PATH=$PWD/bin:$PATH export PATH @@ -73,14 +89,16 @@ rtmpfiles () { for id in "$@" do name=$id - _tmp=$(mktemp -t rainbows.$$.$id.XXXXXXXX) + _tmp=$t_pfx.$id + > $_tmp eval "$id=$_tmp" - _TEST_RM_LIST="$_TEST_RM_LIST $_tmp" + _TEST_OK_RM_LIST="$_TEST_OK_RM_LIST $_tmp" case $name in *fifo) rm -f $_tmp mkfifo $_tmp + _TEST_RM_LIST="$_TEST_RM_LIST $_tmp" ;; esac done -- cgit v1.2.3-24-ge0c7