This series is a test-only improvement series split up and adapted from a previous series of mine to add a "git init --no-template": https://lore.kernel.org/git/cover-00.13-00000000000-20211212T201308Z-avarab@xxxxxxxxx/ As the range-diff to that shows (with --creation-factor=50) all but one commit changed too much for "range-diff" to show it by default. At the end of this series we have a "test_hook" that behaves like the existing "test_config", i.e. cleans up after itself (by default). See 08/10. As also explained in 08/10 this means that it'll be much easier to thoroughly test the "config-based hooks" series, as everything that now writes hooks will go through this wrapper, and can be made to use the config-based hooks. Along the way I found various issues in existing tests that tested our hooks, and fixed those issues.there were variou Ævar Arnfjörð Bjarmason (10): hook tests: turn exit code assertions into a loop t5540: don't rely on "hook/post-update.sample" tests: assume the hooks are disabled by default bugreport tests: tighten up "git bugreport -s hooks" test tests: indent and add hook setup to "test_expect_success" hook tests: get rid of unnecessary sub-shells fetch+push tests: have tests clean up their own mess test-lib-functions: add and use a "test_hook" wrapper tests: change "mkdir -p && write_script" to use "test_hook" tests: change "cat && chmod +x" to use "test_hook" t/t0029-core-unsetenvvars.sh | 3 +- t/t0091-bugreport.sh | 20 +-- t/t1350-config-hooks-path.sh | 4 +- t/t1416-ref-transaction-hooks.sh | 27 ++-- t/t1800-hook.sh | 45 +++---- t/t3404-rebase-interactive.sh | 10 +- t/t3412-rebase-root.sh | 18 +-- t/t3413-rebase-hook.sh | 18 +-- t/t3430-rebase-merges.sh | 6 +- t/t4150-am.sh | 24 +--- t/t5401-update-hooks.sh | 62 ++++----- t/t5402-post-merge-hook.sh | 16 ++- t/t5403-post-checkout-hook.sh | 3 +- t/t5406-remote-rejects.sh | 2 +- t/t5407-post-rewrite-hook.sh | 14 +- t/t5409-colorize-remote-messages.sh | 2 +- t/t5411-proc-receive-hook.sh | 4 +- t/t5510-fetch.sh | 6 +- t/t5516-fetch-push.sh | 192 +++++++++++++--------------- t/t5521-pull-options.sh | 4 +- t/t5534-push-signed.sh | 26 ++-- t/t5540-http-push-webdav.sh | 4 +- t/t5541-http-push-smart.sh | 22 ++-- t/t5547-push-quarantine.sh | 4 +- t/t5548-push-porcelain.sh | 2 +- t/t5601-clone.sh | 4 +- t/t6500-gc.sh | 18 +-- t/t7113-post-index-change-hook.sh | 7 +- t/t7519-status-fsmonitor.sh | 20 ++- t/t9001-send-email.sh | 4 +- t/t9800-git-p4-basic.sh | 23 ++-- t/test-lib-functions.sh | 52 ++++++++ 32 files changed, 320 insertions(+), 346 deletions(-) Range-diff: 1: 5526d3dc838 < -: ----------- t0001: fix gaps in "TEMPLATE DIRECTORY" coverage 2: ef2b67768cf < -: ----------- init: split out template population from create_default_files() 3: 784b7947512 < -: ----------- init: unconditionally create the "info" directory 4: 3d4ea5c5d30 < -: ----------- t0008: don't rely on default ".git/info/exclude" 5: 6bbb39f13fc < -: ----------- init & clone: add a --no-template option 6: 2f478f7ba4a < -: ----------- init & clone: add init.templateDir=[bool] 7: 9402fb23b40 < -: ----------- test-lib: create test data with "git init --no-template" (almost) 8: 0c9b953dd43 < -: ----------- tests: don't depend on template-created .git/branches -: ----------- > 1: 706460d10b9 hook tests: turn exit code assertions into a loop 9: d97122f5fd8 ! 2: 4bee939a894 t5540: don't rely on "hook/post-update.sample" @@ t/t5540-http-push-webdav.sh: test_expect_success 'setup remote repository' ' cd test_repo.git && git --bare update-server-info && - mv hooks/post-update.sample hooks/post-update && -+ write_script "hooks/post-update" <<-\EOF && ++ write_script hooks/post-update <<-\EOF && + exec git update-server-info + EOF ORIG_HEAD=$(git rev-parse --verify HEAD) && 10: ca55471d134 < -: ----------- test-lib-functions: add and use a "write_hook" wrapper 11: 6f805f7ebac < -: ----------- tests: change "cat && chmod +x" to use "write_hook" 12: 2acbaa77f8d < -: ----------- tests: migrate miscellaneous "write_script" to "write_hooks" 13: d021a5981a1 < -: ----------- tests: don't depend on template-created .git/hooks -: ----------- > 3: 0519102edeb tests: assume the hooks are disabled by default -: ----------- > 4: 1da2efc9886 bugreport tests: tighten up "git bugreport -s hooks" test -: ----------- > 5: 8dc478460ee tests: indent and add hook setup to "test_expect_success" -: ----------- > 6: d86ee06b46e hook tests: get rid of unnecessary sub-shells -: ----------- > 7: 7ce22dbe738 fetch+push tests: have tests clean up their own mess -: ----------- > 8: d4102e9b929 test-lib-functions: add and use a "test_hook" wrapper -: ----------- > 9: 1802158b14d tests: change "mkdir -p && write_script" to use "test_hook" -: ----------- > 10: 7fef92872f3 tests: change "cat && chmod +x" to use "test_hook" -- 2.35.1.1228.g56895c6ee86