[PATCH 00/10] tests: add and use a "test_hook" wrapper + hook fixes
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Mar 2, 2022, 13:22 UTC
- Message-ID
- <cover-00.10-00000000000-20220302T131859Z-avarab@gmail.com>
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@gmail.com/
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