From: Torsten Bögershausen Date: Sat, 26 Jan 2013 06:57:35 GMT Subject: Re: [PATCH] tests: turn on test-lint-shell-syntax by default Message-ID: <51037E5F.8090506@web.de> In-Reply-To: <7vk3re2ncb.fsf@alter.siamese.dyndns.org> On 15.01.13 21:38, Junio C Hamano wrote: > Torsten Bögershausen writes: > >> What do we think about something like this for fishing for which: >> >> --- a/t/test-lib.sh >> +++ b/t/test-lib.sh >> @@ -644,6 +644,10 @@ yes () { >> : >> done >> } >> +which () { >> + echo >&2 "which is not portable (please use type)" >> + exit 1 >> +} >> >> >> This will happen in runtime, which might be good enough ? > > if ( > which frotz && > test $(frobonitz --version" -le 2.0 > ) > then > test_set_prereq FROTZ_FROBONITZ > else > echo >&2 "suitable Frotz/Frobonitz combo not available;" > echo >&2 "some tests may be skipped" > fi > > I somehow think this is a lost cause. I found different ways to detect if frotz is installed in the test suite: a) use "type" (Should be the fastest ?) b) call the command directly, check the exit code c) "! test_have_prereq" (easy to understand, propably most expensive ?) Do we really need "which" to detect if frotz is installed? /Torsten ============= if ! type cvs >/dev/null 2>&1 then skip_all='skipping cvsimport tests, cvs not found' test_done fi =========== if test -n "$BASH" && test -z "$POSIXLY_CORRECT"; then # we are in full-on bash mode true elif type bash >/dev/null 2>&1; then # execute in full-on bash mode unset POSIXLY_CORRECT exec bash "$0" "$@" else echo '1..0 #SKIP skipping bash completion tests; bash not available' exit 0 fi =============== svn >/dev/null 2>&1 if test $? -ne 1 then skip_all='skipping git svn tests, svn not found' test_done fi =============== ( p4 -h && p4d -h ) >/dev/null 2>&1 || { skip_all='skipping git p4 tests; no p4 or p4d' test_done } =============== if ! test_have_prereq PERL; then skip_all='skipping gitweb tests, perl not available' test_done fi