Fabian Stelzer <fs@xxxxxxxxxxxx> writes: > In certain environments or for specific test scenarios we might expect a > specific prerequisite check to be succeed. Therefore we would like to "to be succeed" -> "to succeed"? > trigger an error when running our tests if this is not the case. > > To remedy this we add the environment variable GIT_TEST_REQUIRE_PREREQ > which can be set to a comma separated list of prereqs. If one of these > prereq tests fail then the whole test run will abort. > > Signed-off-by: Fabian Stelzer <fs@xxxxxxxxxxxx> > --- > t/README | 6 ++++++ > t/test-lib-functions.sh | 11 +++++++++++ > 2 files changed, 17 insertions(+) > > diff --git a/t/README b/t/README > index 29f72354bf..18ce75976e 100644 > --- a/t/README > +++ b/t/README > @@ -466,6 +466,12 @@ explicitly providing repositories when accessing submodule objects is > complete or needs to be abandoned for whatever reason (in which case the > migrated codepaths still retain their performance benefits). > > +GIT_TEST_REQUIRE_PREREQ=<list> allows specifying a comma speparated list of > +prereqs that are required to succeed. If a prereq in this list is triggered by > +a test and then fails then the whole test run will abort. This can help to make > +sure the expected tests are executed and not silently skipped when their > +dependency breaks or is simply not present in a new environment. > + > Naming Tests > ------------ > > diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh > index eef2262a36..2c8abf3420 100644 > --- a/t/test-lib-functions.sh > +++ b/t/test-lib-functions.sh > @@ -680,6 +680,17 @@ test_have_prereq () { > # Keep a list of missing prerequisites; restore > # the negative marker if necessary. > prerequisite=${negative_prereq:+!}$prerequisite > + > + # Abort if this prereq was marked as required > + if test -n $GIT_TEST_REQUIRE_PREREQ > + then > + case ",$GIT_TEST_REQUIRE_PREREQ," in > + *,$prerequisite,*) > + error "required prereq $prerequisite failed" > + ;; > + esac > + fi > + > if test -z "$missing_prereq" > then > missing_prereq=$prerequisite