[PATCH v4 2/3] t4009: modernize
From: Mark C. Chu-Carroll <hidden>
Date: 2026-09-18 17:18:56
Subsystem:
the rest · Maintainer:
Linus Torvalds
Old tests were written in a different style than modern ones; for better readability and test error messages, update t4009 to the modern style. * run everything inside of a test_expect_success block. * write title line on the same line as test_expect_success, end that line with a single quote that opens the body of the test, and end the test with a single quote that closes the body. * write expected output of a test to a file named "expect", and actual output to a file named "actual". * write here-docs using "<<-" syntax, so that they're indented uniformly with the rest of the test. * make test names more clearly reflect the functionality that they test. Signed-off-by: Mark C. Chu-Carroll <redacted> --- t/t4009-diff-rename-4.sh | 126 +++++++++++++++++++-------------------- 1 file changed, 60 insertions(+), 66 deletions(-)
diff --git a/t/t4009-diff-rename-4.sh b/t/t4009-diff-rename-4.sh
index 198de5d039..e42891ee5a 100755
--- a/t/t4009-diff-rename-4.sh
+++ b/t/t4009-diff-rename-4.sh@@ -10,67 +10,63 @@ test_description='Same rename detection as t4003 but testing diff-raw -z. . ./test-lib.sh . "$TEST_DIRECTORY"/lib-diff.sh ;# test-lib chdir's into trash -test_expect_success 'prepare reference tree' ' - COPYING_test_data >COPYING && - echo frotz >rezrov && - git update-index --add COPYING rezrov && - orig=$(git hash-object COPYING) && - tree=$(git write-tree) && - echo $tree +test_expect_success 'setup' ' + # prepare reference tree + COPYING_test_data >COPYING && + echo frotz >rezrov && + git update-index --add COPYING rezrov && + orig=$(git hash-object COPYING) && + tree=$(git write-tree) && + echo $tree && + # prepare work tree + sed -e "s/HOWEVER/However/" <COPYING >COPYING.1 && + sed -e "s/GPL/G.P.L/g" <COPYING >COPYING.2 && + rm -f COPYING && + c1=$(git hash-object COPYING.1) && + c2=$(git hash-object COPYING.2) && + git update-index --add --remove COPYING COPYING.? ' -test_expect_success 'prepare work tree' ' - sed -e "s/HOWEVER/However/" <COPYING >COPYING.1 && - sed -e "s/GPL/G.P.L/g" <COPYING >COPYING.2 && - rm -f COPYING && - c1=$(git hash-object COPYING.1) && - c2=$(git hash-object COPYING.2) && - git update-index --add --remove COPYING COPYING.? -' - -# tree has COPYING and rezrov. work tree has COPYING.1 and COPYING.2, -# both are slightly edited, and unchanged rezrov. We say COPYING.1 -# and COPYING.2 are based on COPYING, and do not say anything about -# rezrov. - -git diff-index -z -C $tree >current - -cat >expected <<EOF -:100644 100644 $orig $c1 C1234 -COPYING -COPYING.1 -:100644 100644 $orig $c2 R1234 -COPYING -COPYING.2 -EOF - test_expect_success 'validate output from rename/copy detection (#1)' ' - compare_diff_raw_z current expected + # tree has COPYING and rezrov. work tree has COPYING.1 and COPYING.2, + # both are slightly edited, and unchanged rezrov. We say COPYING.1 + # and COPYING.2 are based on COPYING, and do not say anything about + # rezrov. + cat >expect <<-EOF && + :100644 100644 $orig $c1 C1234 + COPYING + COPYING.1 + :100644 100644 $orig $c2 R1234 + COPYING + COPYING.2 + EOF + + git diff-index -z -C $tree >actual && + compare_diff_raw_z actual expect ' ################################################################ -test_expect_success 'prepare work tree again' ' - mv COPYING.2 COPYING && - git update-index --add --remove COPYING COPYING.1 COPYING.2 -' - -# tree has COPYING and rezrov. work tree has COPYING and COPYING.1, -# both are slightly edited, and unchanged rezrov. We say COPYING.1 -# is based on COPYING and COPYING is still there, and do not say anything -# about rezrov. - -git diff-index -z -C $tree >current -cat >expected <<EOF -:100644 100644 $orig $c2 M -COPYING -:100644 100644 $orig $c1 C1234 -COPYING -COPYING.1 -EOF - test_expect_success 'validate output from rename/copy detection (#2)' ' - compare_diff_raw_z current expected + # prepare work tree again + mv COPYING.2 COPYING && + git update-index --add --remove COPYING COPYING.1 COPYING.2 && + + # tree has COPYING and rezrov. work tree has COPYING and COPYING.1, + # both are slightly edited, and unchanged rezrov. We say COPYING.1 + # is based on COPYING and COPYING is still there, and do not say anything + # about rezrov. + + git diff-index -z -C $tree >actual && + cat >expect <<-EOF && + :100644 100644 $orig $c2 M + COPYING + :100644 100644 $orig $c1 C1234 + COPYING + COPYING.1 + EOF + + compare_diff_raw_z actual expect ' ################################################################
@@ -80,20 +76,18 @@ test_expect_success 'validate output from rename/copy detection (#2)' ' # anything about rezrov or COPYING, since the revised again diff-raw # nows how to say Copy. -test_expect_success 'prepare work tree once again' ' - COPYING_test_data >COPYING && - git update-index --add --remove COPYING COPYING.1 -' - -git diff-index -z -C --find-copies-harder $tree >current -cat >expected <<EOF -:100644 100644 $orig $c1 C1234 -COPYING -COPYING.1 -EOF - test_expect_success 'validate output from rename/copy detection (#3)' ' - compare_diff_raw_z current expected + # prepare work tree once again + COPYING_test_data >COPYING && + git update-index --add --remove COPYING COPYING.1 && + git diff-index -z -C --find-copies-harder $tree >actual && + cat >expect <<-EOF && + :100644 100644 $orig $c1 C1234 + COPYING + COPYING.1 + EOF + + compare_diff_raw_z actual expect ' test_done
--
2.53.0