git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v1 0/7] t: fix unused files, part 1

From
Andrei Rybak <rybak.a.v@gmail.com>
Date
Mar 12, 2023, 20:15 UTC
Message-ID
<20230312201520.370234-1-rybak.a.v@gmail.com>

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
Next: Andrei Rybak
Message 1 of 33 in “t: fix unused files, part 1”
  1. 0/7 t: fix unused files, part 1Andrei Rybak, Mar 12, 2023
  2. 1/7 t1005: assert output of ls-filesAndrei Rybak, Mar 12, 2023
  3. Michael J GruberMar 14, 2023
  4. Andrei RybakMar 18, 2023
  5. 1/1 t1507: assert output of rev-parseAndrei Rybak, Mar 12, 2023
  6. Andrei RybakMar 12, 2023
  7. 2/7 t1006: assert error output of cat-fileAndrei Rybak, Mar 12, 2023
  8. 3/7 t1010: assert empty output of mktreeAndrei Rybak, Mar 12, 2023
  9. Junio C HamanoMar 13, 2023
  10. 4/7 t1302: don't create unused fileAndrei Rybak, Mar 12, 2023
  11. 5/7 t1400: assert output of update-refAndrei Rybak, Mar 12, 2023
  12. 6/7 t1404: don't create unused fileAndrei Rybak, Mar 12, 2023
  13. Junio C HamanoMar 13, 2023
  14. 7/7 t1507: assert output of rev-parseAndrei Rybak, Mar 12, 2023
  15. Junio C HamanoMar 13, 2023
  16. Andrei RybakMar 14, 2023
  17. 0/7 t: fix unused files, part 1Andrei Rybak, Mar 18, 2023
  18. 1/7 t1005: assert output of ls-filesAndrei Rybak, Mar 18, 2023
  19. 2/7 t1006: assert error output of cat-fileAndrei Rybak, Mar 18, 2023
  20. 3/7 t1010: don't create unused filesAndrei Rybak, Mar 18, 2023
  21. 4/7 t1302: don't create unused fileAndrei Rybak, Mar 18, 2023
  22. 5/7 t1400: assert output of update-refAndrei Rybak, Mar 18, 2023
  23. 7/7 t1507: assert output of rev-parseAndrei Rybak, Mar 18, 2023
  24. 6/7 t1404: don't create unused fileAndrei Rybak, Mar 18, 2023
  25. 0/7 t: fix unused files, part 1Andrei Rybak, Mar 24, 2023
  26. 1/7 t1005: assert output of ls-filesAndrei Rybak, Mar 24, 2023
  27. 2/7 t1006: assert error output of cat-fileAndrei Rybak, Mar 24, 2023
  28. 3/7 t1010: don't create unused filesAndrei Rybak, Mar 24, 2023
  29. 5/7 t1400: assert output of update-refAndrei Rybak, Mar 24, 2023
  30. 4/7 t1302: don't create unused fileAndrei Rybak, Mar 24, 2023
  31. 6/7 t1404: don't create unused fileAndrei Rybak, Mar 24, 2023
  32. 7/7 t1507: assert output of rev-parseAndrei Rybak, Mar 24, 2023
  33. Junio C HamanoMar 28, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.