This will allow us to test the test framework more thoroughly without disrupting the top-level test metrics. Signed-off-by: Adam Spiers <git@xxxxxxxxxxxxxx> --- t/t0000-basic.sh | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh index c6b42de..662cd2f 100755 --- a/t/t0000-basic.sh +++ b/t/t0000-basic.sh @@ -55,39 +55,49 @@ test_expect_failure 'pretend we have a known breakage' ' false ' -test_expect_success 'pretend we have fixed a known breakage (run in sub test-lib)' " - mkdir passing-todo && - (cd passing-todo && - cat >passing-todo.sh <<-EOF && +run_sub_test_lib_test () { + name="$1" descr="$2" # stdin is body of test code + mkdir $name && + (cd $name && + cat >$name.sh <<-EOF && #!$SHELL_PATH - test_description='A passing TODO test + test_description='$descr (run in sub test-lib) This is run in a sub test-lib so that we do not get incorrect passing metrics ' # Point to the t/test-lib.sh, which isn't in ../ as usual - TEST_DIRECTORY=\"$TEST_DIRECTORY\" - . \"\$TEST_DIRECTORY\"/test-lib.sh - - test_expect_failure 'pretend we have fixed a known breakage' ' - : - ' + TEST_DIRECTORY="$TEST_DIRECTORY" + . "\$TEST_DIRECTORY"/test-lib.sh + EOF + cat >>$name.sh && + chmod +x $name.sh && + ./$name.sh >out 2>err) +} + +check_sub_test_lib_test () { + name="$1" # stdin is test's expected stdout + (cd $name && + ! test -s err && + sed -e 's/^> //' >expect && + test_cmp expect out) +} +test_expect_success 'pretend we have fixed a known breakage' " + run_sub_test_lib_test passing-todo 'A passing TODO test' <<-EOF && + test_expect_failure 'pretend we have fixed a known breakage' 'true' test_done EOF - chmod +x passing-todo.sh && - ./passing-todo.sh >out 2>err && - ! test -s err && - sed -e 's/^> //' >expect <<-\\EOF && + check_sub_test_lib_test passing-todo <<-EOF > ok 1 - pretend we have fixed a known breakage # TODO known breakage > # fixed 1 known breakage(s) > # passed all 1 test(s) > 1..1 EOF - test_cmp expect out) " + test_set_prereq HAVEIT haveit=no test_expect_success HAVEIT 'test runs if prerequisite is satisfied' ' @@ -166,7 +176,7 @@ test_expect_success 'tests clean up even on failures' " test_must_fail ./failing-cleanup.sh >out 2>err && ! test -s err && ! test -f \"trash directory.failing-cleanup/clean-after-failure\" && - sed -e 's/Z$//' -e 's/^> //' >expect <<-\\EOF && + sed -e 's/Z$//' -e 's/^> //' >expect <<-EOF && > not ok 1 - tests clean up even after a failure > # Z > # touch clean-after-failure && -- 1.7.12.147.g6d168f4 -- 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