I've noticed that several tests in t9001-send-email.sh don't use the files created from redirecting output of git commands. So I wrote a crude script to find similar issues in other tests: from sys import argv from sys import exit import re script = argv[1] filename_pattern = re.compile('([-a-z_A-Z]+|&1)') git_with_output_pattern = re.compile('git [^&"]*[ 2][>](?!/)') while True: res = git_with_output_pattern.search(script) if res is None: break filename_index = res.span()[1] res = filename_pattern.search(script[filename_index:]) filename = res.group() script = script[filename_index + len(filename):] if filename == '&1': continue read_index = script.find(filename) if read_index < 0: print("File '" + filename + "' is unused") print("Script: ") print(script) exit(1) script = script[read_index + len(filename):] It doesn't check the tests very throughly and has a lot of false-positives, but this is enough for now. I invoke it from test_expect_success() like so: ---- 8< ---- diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index 999d46fafe..ac2614009d 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@ -836,6 +836,14 @@ test_expect_success () { if test_run_ "$2" then test_ok_ "$1" + if ! echo "$1" | grep -q -E '(setup|preparation)' + then + if ! python3 "$TEST_DIRECTORY/../check_unused_files.py" "$2" + then + BUG "check_unused_files.py found an unused file in test '$1'" + return 1 + fi + fi else test_failure_ "$@" fi ---- >8 ---- Here are the fixes for the issues I've found so far -- I've gone through t0??? and t1???. Andrei Rybak (7): t1005: assert output of ls-files t1006: assert error output of cat-file t1010: assert empty output of mktree t1302: don't create unused file t1400: assert output of update-ref t1404: don't create unused file t1507: assert output of rev-parse t/t1005-read-tree-reset.sh | 15 ++++++++++----- t/t1006-cat-file.sh | 3 ++- t/t1010-mktree.sh | 6 ++++-- t/t1302-repo-version.sh | 2 +- t/t1400-update-ref.sh | 3 +++ t/t1404-update-ref-errors.sh | 1 - t/t1507-rev-parse-upstream.sh | 6 ++++-- 7 files changed, 24 insertions(+), 12 deletions(-) -- 2.39.2