Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > On Fri, Jul 9, 2010 at 17:49, Junio C Hamano <gitster@xxxxxxxxx> wrote: > ... >> 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". -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html