From: "Mark C. Chu-Carroll" <markchucarroll@fastmail.com>
To: git@vger.kernel.org
Cc: "Mark C. Chu-Carroll" <markchucarroll@fastmail.com>
Subject: [PATCH v6 2/3] t4009: modernize
Date: Tue, 22 Sep 2026 16:21:51 -0400 [thread overview]
Message-ID: <20260922202152.842793-3-markchucarroll@fastmail.com> (raw)
In-Reply-To: <20260922202152.842793-1-markchucarroll@fastmail.com>
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 <markchucarroll@fastmail.com>
---
t/t4009-diff-rename-4.sh | 142 +++++++++++++++++++--------------------
1 file changed, 68 insertions(+), 74 deletions(-)
diff --git a/t/t4009-diff-rename-4.sh b/t/t4009-diff-rename-4.sh
index 59e71e3acd..e42891ee5a 100755
--- a/t/t4009-diff-rename-4.sh
+++ b/t/t4009-diff-rename-4.sh
@@ -10,68 +10,64 @@ 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 \
- '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'
+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 'validate output from rename/copy detection (#1)' '
+ # 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'
+test_expect_success 'validate output from rename/copy detection (#2)' '
+ # 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 \
# 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'
+test_expect_success 'validate output from rename/copy detection (#3)' '
+ # 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
next prev parent reply other threads:[~2026-09-22 20:22 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-22 20:21 [PATCH v6 0/3] t40*: modernize Mark C. Chu-Carroll
2026-09-22 20:21 ` [PATCH v6 1/3] t4001: modernize Mark C. Chu-Carroll
2026-09-22 20:21 ` Mark C. Chu-Carroll [this message]
2026-09-22 20:21 ` [PATCH v6 3/3] t4010: modernize Mark C. Chu-Carroll
2026-09-24 14:58 ` [PATCH v6 0/3] t40*: modernize Kaartic Sivaraam
2026-09-24 16:13 ` Junio C Hamano
2026-09-24 17:20 ` Mark C. Chu-Carroll
2026-09-25 13:40 ` Kaartic Sivaraam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260922202152.842793-3-markchucarroll@fastmail.com \
--to=markchucarroll@fastmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.