diff options
author | Eric Wong <normalperson@yhbt.net> | 2009-10-18 23:09:09 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2009-10-18 23:09:09 -0700 |
commit | dbb2e039fac19d9b74075fd79cddade534cafeca (patch) | |
tree | e17398443ea9fdac9aa239a7ea577ed7de6f6f14 /t/test-lib.sh | |
parent | 9922b5e683e86c6df48931ee90da1c5e6ad419ef (diff) | |
download | rainbows-dbb2e039fac19d9b74075fd79cddade534cafeca.tar.gz |
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.
Diffstat (limited to 't/test-lib.sh')
-rwxr-xr-x | t/test-lib.sh | 28 |
1 files changed, 23 insertions, 5 deletions
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 |