test-lib: try harder to ensure a working jgit

The JGIT prereq uses `type jgit` to determine whether jgit is present.
While this is usually sufficient, it won't help if the jgit found is
badly broken.  This wastes time running tests which fail due to no fault
of our own.

Use `jgit --version` instead, to guard against cases where jgit is
present on the system, but will fail to run, e.g. because of some JRE
issue, or missing Java dependencies.  Checking that it gets far enough
to process the '--version' argument isn't perfect, but seems to be good
enough in practice.  It's also consistent with how we detect some other
dependencies, see e.g. the CURL and UNZIP prerequisites.

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Todd Zullinger 2019-05-14 21:36:33 -04:00 committed by Junio C Hamano
parent aeb582a983
commit abd0f28983

View file

@ -1476,7 +1476,7 @@ test_lazy_prereq NOT_ROOT '
'
test_lazy_prereq JGIT '
type jgit
jgit --version
'
# SANITY is about "can you correctly predict what the filesystem would