As explained in detail in 1/7 there's several major shortcomings to "test_expect_failure", this series adds a "test_expect_todo". It allows us to assert exactly how something that fails .. fails (no more conflating segfaults for "exit 1"), but also emits all the right output & metadata about the test being "TODO" that "test_expect_failure" does. The rest of the series then expands on that to convert several more tests, along with adding helpers like: todo_test_cmp want expect actual Where the "want" is what we want once we'd mark the test as "test_expect_success", but the "expect" is what we get right now with the failing TODO test. This series has a (rather trivial) textual conflict with js/ci-github-workflow-markup in "seen". Ævar Arnfjörð Bjarmason (7): test-lib: add a "test_expect_todo", similar to "test_expect_failure" test-lib-functions: add and use a "test_todo" helper tests: allow test_* in "test_must_fail_acceptable" for "test_todo" test-lib-functions: add and use a "todo_test_cmp" helper test-lib-functions: add and use a "todo_test_path" helper test-lib-functions: make test_todo support a --reset sparse tests: convert a TODO test to use "test_expect_todo" t/README | 20 +++- t/t0000-basic.sh | 48 +++++++- t/t1021-rerere-in-workdir.sh | 9 +- t/t1060-object-corruption.sh | 4 +- t/t1091-sparse-checkout-builtin.sh | 17 ++- t/t1309-early-config.sh | 14 ++- t/t1410-reflog.sh | 4 +- t/t3600-rm.sh | 23 +++- t/t6403-merge-file.sh | 32 +++++- t/t7814-grep-recurse-submodules.sh | 60 ++++++---- t/t7815-grep-binary.sh | 4 +- t/test-lib-functions.sh | 172 ++++++++++++++++++++++++++++- t/test-lib.sh | 32 +++++- 13 files changed, 379 insertions(+), 60 deletions(-) -- 2.35.1.1436.g756b814e59f