Re: [PATCH v2] tests: Use skip_all=<reason> to skip tests
flat view
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:49:06
Ævar Arnfjörð Bjarmason [off-list ref] writes:
On Fri, Jul 9, 2010 at 17:49, Junio C Hamano [off-list ref] wrote: ...quoted
Among 63 assignments to $skip_all that are all over in t/*.sh scripts, the only ones that are not immediately followed by test_done are in lib-git-svn.sh (chooses one among 3 messages), lib-httpd.sh (sets a trap before calling test_done), and t3600-rm (makes a mental note to report that one test was skipped long before all the tests run).... $ perl -MTest::More -E 'plan tests => 6; pass "gettext stuff ok" for 1..2; SKIP: { skip "Can not test without locale files", 2 } pass "moo" for 1..2' 1..6 ok 1 - gettext stuff ok ok 2 - gettext stuff ok ok 3 # skip Can not test without locale files ok 4 # skip Can not test without locale files ok 5 - moo ok 6 - moo
Now you are talking. What t3600-rm does becomes a lot more natural to express with something like this. Any test with "prerequisite" missing will automatically get "this test was skipped because you lack this prerequisite" for free. We can lose skip_all= assignment there but move the logic to test-lib.sh, which is a good thing. But that is orthogonal to what you call an API, i.e. your assignment to the global variable $skip_all that is immediately followed by test_done, no? The conversion you did for that does not help counting the remainder of the tests that are skipped anyway, so you will need to redo that conversion altogether if you ever want to be able to show "these tests through the end of the scripts were skipped".