Volume XXII, number 279Tuesday, October 6, 2026Latest message 45 minutes ago

The Git List

News and archive of git@vger.kernel.org, since April 2005

patch, 3 partsUpdate t40* tests to use modern style.

5 messages between Sep 8, 2026 and Sep 8, 2026, from Mark C. Chu-Carroll via B4 Relay, Junio C Hamano.

Plain Markdown or JSON for tools and agents. Diffs are folded; open one to read it.

Mark C. Chu-Carroll via B4 RelaySep 8, 2026, 19:44 UTC on lore
Signed-off-by: Mark C. Chu-Carroll <markchucarroll@fastmail.com>
---
Mark C. Chu-Carroll (3):
      Update t4001 to use modern syntax.
      Update t4009 to use modern style.
      Update t4010 to use modern style.
 t/t4001-diff-rename.sh   | 31 +++++++++----------
 t/t4009-diff-rename-4.sh | 54 ++++++++++++++++-----------------
 t/t4010-diff-pathspec.sh | 78 ++++++++++++++++++++++++------------------------
 3 files changed, 82 insertions(+), 81 deletions(-)

--- base-commit: b8242b093d9e941a34460d715e3ce616a34ac3fe change-id: 20260908-modernize-t4001-fb43302caaf9

Mark C. Chu-Carroll via B4 RelaySep 8, 2026, 19:44 UTC in reply to Mark C. Chu-Carroll via B4 Relay on lore

[PATCH 1/3] Update t4001 to use modern syntax.

From: "Mark C. Chu-Carroll" <markchucarroll@fastmail.com>
---
 t/t4001-diff-rename.sh   | 31 ++++++++++++++++---------------
 t/t4009-diff-rename-4.sh |  8 ++++----
 2 files changed, 20 insertions(+), 19 deletions(-)
Show changes to 2 files +20 −19

t/t4001-diff-rename.sh, t/t4009-diff-rename-4.sh

diff --git a/t/t4001-diff-rename.sh b/t/t4001-diff-rename.sh
index ad474100af..2aa161c217 100755
--- a/t/t4001-diff-rename.sh
+++ b/t/t4001-diff-rename.sh
@@ -88,28 +88,29 @@ test_expect_success 'setup' '
 	EOF
 '
 
-test_expect_success \
-    'update-index --add a file.' \
-    'git update-index --add path0'
+test_expect_success 'update-index --add a file.' '
+    git update-index --add path0
+'
 
-test_expect_success \
-    'write that tree.' \
-    'tree=$(git write-tree) && echo $tree'
+test_expect_success 'write that tree.' '
+    tree=$(git write-tree) && echo $tree
+'
 
 sed -e 's/line/Line/' <path0 >path1
 rm -f path0
-test_expect_success \
-    'renamed and edited the file.' \
-    'git update-index --add --remove path0 path1'
 
-test_expect_success \
-    'git diff-index -p -M after rename and editing.' \
-    'git diff-index -p -M $tree >current'
+test_expect_success 'renamed and edited the file.' '
+    git update-index --add --remove path0 path1
+'
+
+test_expect_success 'git diff-index -p -M after rename and editing.' '
+    git diff-index -p -M $tree >current
+'
 
 
-test_expect_success \
-    'validate the output.' \
-    'compare_diff_patch current expected'
+test_expect_success 'validate the output.' '
+    compare_diff_patch current expected
+'
 
 test_expect_success 'test diff.renames=true' '
 	git -c diff.renames=true diff --cached $tree >current &&
diff --git a/t/t4009-diff-rename-4.sh b/t/t4009-diff-rename-4.sh
index 59e71e3acd..8f86dc7274 100755
--- a/t/t4009-diff-rename-4.sh
+++ b/t/t4009-diff-rename-4.sh
@@ -19,10 +19,10 @@ test_expect_success \
     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 &&
+
+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) &&
-- 
2.53.0
Mark C. Chu-Carroll via B4 RelaySep 8, 2026, 19:44 UTC in reply to Mark C. Chu-Carroll via B4 Relay on lore

[PATCH 2/3] Update t4009 to use modern style.

From: "Mark C. Chu-Carroll" <markchucarroll@fastmail.com>
---
 t/t4009-diff-rename-4.sh | 48 ++++++++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 24 deletions(-)
Show changes to t/t4009-diff-rename-4.sh +24 −24
diff --git a/t/t4009-diff-rename-4.sh b/t/t4009-diff-rename-4.sh
index 8f86dc7274..198de5d039 100755
--- a/t/t4009-diff-rename-4.sh
+++ b/t/t4009-diff-rename-4.sh
@@ -10,15 +10,14 @@ 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 &&
+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'
-
+    echo $tree
+'
 
 test_expect_success 'prepare work tree' '
     sed -e "s/HOWEVER/However/" <COPYING >COPYING.1 &&
@@ -26,7 +25,8 @@ test_expect_success 'prepare work tree' '
     rm -f COPYING &&
     c1=$(git hash-object COPYING.1) &&
     c2=$(git hash-object COPYING.2) &&
-    git update-index --add --remove COPYING COPYING.?'
+    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
@@ -44,16 +44,16 @@ COPYING
 COPYING.2
 EOF
 
-test_expect_success \
-    'validate output from rename/copy detection (#1)' \
-    'compare_diff_raw_z current expected'
+test_expect_success 'validate output from rename/copy detection (#1)' '
+    compare_diff_raw_z current expected
+'
 
 ################################################################
 
-test_expect_success \
-    'prepare work tree again' \
-    'mv COPYING.2 COPYING &&
-     git update-index --add --remove COPYING COPYING.1 COPYING.2'
+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
@@ -69,9 +69,9 @@ 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)' '
+    compare_diff_raw_z current expected
+'
 
 ################################################################
 
@@ -80,10 +80,10 @@ 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'
+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
@@ -92,8 +92,8 @@ 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)' '
+    compare_diff_raw_z current expected
+'
 
 test_done
-- 
2.53.0
Mark C. Chu-Carroll via B4 RelaySep 8, 2026, 19:44 UTC in reply to Mark C. Chu-Carroll via B4 Relay on lore

[PATCH 3/3] Update t4010 to use modern style.

From: "Mark C. Chu-Carroll" <markchucarroll@fastmail.com>
---
 t/t4010-diff-pathspec.sh | 78 ++++++++++++++++++++++++------------------------
 1 file changed, 39 insertions(+), 39 deletions(-)
Show changes to t/t4010-diff-pathspec.sh +39 −39
diff --git a/t/t4010-diff-pathspec.sh b/t/t4010-diff-pathspec.sh
index c84c3fa05b..59e4501203 100755
--- a/t/t4010-diff-pathspec.sh
+++ b/t/t4010-diff-pathspec.sh
@@ -13,67 +13,67 @@ Prepare:
 . ./test-lib.sh
 . "$TEST_DIRECTORY"/lib-diff.sh ;# test-lib chdir's into trash
 
-test_expect_success \
-    setup \
-    'echo frotz >file0 &&
-     mkdir path1 &&
-     echo rezrov >path1/file1 &&
-     before0=$(git hash-object file0) &&
-     before1=$(git hash-object path1/file1) &&
-     git update-index --add file0 path1/file1 &&
-     tree=$(git write-tree) &&
-     echo "$tree" &&
-     echo nitfol >file0 &&
-     echo yomin >path1/file1 &&
-     after0=$(git hash-object file0) &&
-     after1=$(git hash-object path1/file1) &&
-     git update-index file0 path1/file1'
+test_expect_success setup '
+    echo frotz >file0 &&
+    mkdir path1 &&
+    echo rezrov >path1/file1 &&
+    before0=$(git hash-object file0) &&
+    before1=$(git hash-object path1/file1) &&
+    git update-index --add file0 path1/file1 &&
+    tree=$(git write-tree) &&
+    echo "$tree" &&
+    echo nitfol >file0 &&
+    echo yomin >path1/file1 &&
+    after0=$(git hash-object file0) &&
+    after1=$(git hash-object path1/file1) &&
+    git update-index file0 path1/file1
+'
 
 cat >expected <<\EOF
 EOF
-test_expect_success \
-    'limit to path should show nothing' \
-    'git diff-index --cached $tree -- path >current &&
-     compare_diff_raw current expected'
+test_expect_success 'limit to path should show nothing' '
+    git diff-index --cached $tree -- path >current &&
+    compare_diff_raw current expected
+'
 
 cat >expected <<EOF
 :100644 100644 $before1 $after1 M	path1/file1
 EOF
-test_expect_success \
-    'limit to path1 should show path1/file1' \
-    'git diff-index --cached $tree -- path1 >current &&
-     compare_diff_raw current expected'
+test_expect_success 'limit to path1 should show path1/file1' '
+    git diff-index --cached $tree -- path1 >current &&
+    compare_diff_raw current expected
+'
 
 cat >expected <<EOF
 :100644 100644 $before1 $after1 M	path1/file1
 EOF
-test_expect_success \
-    'limit to path1/ should show path1/file1' \
-    'git diff-index --cached $tree -- path1/ >current &&
-     compare_diff_raw current expected'
+test_expect_success 'limit to path1/ should show path1/file1' '
+    git diff-index --cached $tree -- path1/ >current &&
+    compare_diff_raw current expected
+'
 
 cat >expected <<EOF
 :100644 100644 $before1 $after1 M	path1/file1
 EOF
-test_expect_success \
-    '"*file1" should show path1/file1' \
-    'git diff-index --cached $tree -- "*file1" >current &&
-     compare_diff_raw current expected'
+test_expect_success '"*file1" should show path1/file1' '
+    git diff-index --cached $tree -- "*file1" >current &&
+    compare_diff_raw current expected
+'
 
 cat >expected <<EOF
 :100644 100644 $before0 $after0 M	file0
 EOF
-test_expect_success \
-    'limit to file0 should show file0' \
-    'git diff-index --cached $tree -- file0 >current &&
-     compare_diff_raw current expected'
+test_expect_success 'limit to file0 should show file0' '
+    git diff-index --cached $tree -- file0 >current &&
+    compare_diff_raw current expected
+'
 
 cat >expected <<\EOF
 EOF
-test_expect_success \
-    'limit to file0/ should emit nothing.' \
-    'git diff-index --cached $tree -- file0/ >current &&
-     compare_diff_raw current expected'
+test_expect_success 'limit to file0/ should emit nothing.' '
+    git diff-index --cached $tree -- file0/ >current &&
+    compare_diff_raw current expected
+'
 
 test_expect_success 'diff-tree pathspec' '
 	tree2=$(git write-tree) &&
-- 
2.53.0
Junio C HamanoSep 8, 2026, 20:48 UTC in reply to Mark C. Chu-Carroll via B4 Relay on lore

Re: [PATCH 1/3] Update t4001 to use modern syntax.

"Mark C. Chu-Carroll via B4 Relay" <devnull+markchucarroll.fastmail.com@kernel.org> writes:

> Subject: Re: [PATCH 1/3] Update t4001 to use modern syntax.

Documentation/SubmittingPatches::[[describe-changes]] Documentation/SubmittingPatches::[[summary-section]]

> From: "Mark C. Chu-Carroll" <markchucarroll@fastmail.com>
>
> ---
Documentation/SubmittingPatches::[[sign-off]]
Show 11 quoted lines
>  t/t4001-diff-rename.sh   | 31 ++++++++++++++++---------------
>  t/t4009-diff-rename-4.sh |  8 ++++----
>  2 files changed, 20 insertions(+), 19 deletions(-)
>
> diff --git a/t/t4001-diff-rename.sh b/t/t4001-diff-rename.sh
> index ad474100af..2aa161c217 100755
> --- a/t/t4001-diff-rename.sh
> +++ b/t/t4001-diff-rename.sh
> @@ -88,28 +88,29 @@ test_expect_success 'setup' '
>  	EOF
>  '

There are a bit more in the differences between this ancient style and the modern style. Not just the title appearing on the first line and the body is opened with a single quote at the end of the first line, the body is indented with a single tab.

Show 7 quoted lines
>  
> -test_expect_success \
> -    'update-index --add a file.' \
> -    'git update-index --add path0'
> +test_expect_success 'update-index --add a file.' '
> +    git update-index --add path0
> +'

Also in "modern style", the tests are split at more logical boundaries. As the topic of this test is "diff rename", our purpose of this test script is not to catch a crashing "update-index --add". We are not interested in finding "update-index --add" to fail and see "not ok" for such a failure. This step is merely the first step of building the tree object to be compared later with a modified index.

Show 6 quoted lines
> -test_expect_success \
> -    'write that tree.' \
> -    'tree=$(git write-tree) && echo $tree'
> +test_expect_success 'write that tree.' '
> +    tree=$(git write-tree) && echo $tree
> +'

Likewise, we are not interested to find out what object name the resulting tree object gets. "echo" here were placed long ago merely for debugging purposes.

>  sed -e 's/line/Line/' <path0 >path1
>  rm -f path0

And in "modern style" tests, we strongly frown upon tests doing anything outside test_expect_success blocks. This is a preparation to pretend that path0 was "renamed" to path1, and it is concluded ...

Show 10 quoted lines
> -test_expect_success \
> -    'renamed and edited the file.' \
> -    'git update-index --add --remove path0 path1'
>  
> -test_expect_success \
> -    'git diff-index -p -M after rename and editing.' \
> -    'git diff-index -p -M $tree >current'
> +test_expect_success 'renamed and edited the file.' '
> +    git update-index --add --remove path0 path1
> +'
... with this step.
> +test_expect_success 'git diff-index -p -M after rename and editing.' '
> +    git diff-index -p -M $tree >current
> +'

And the output is obtained. Again, it is not like we are happy that this "diff-index" does not crash, so in "modern style", we do not split a logically test like this at this point. We want to see the command produce, without segfaulting, its output to the file "current", and we also want to see that the result matches what we expect.

Show 6 quoted lines
> -test_expect_success \
> -    'validate the output.' \
> -    'compare_diff_patch current expected'
> +test_expect_success 'validate the output.' '
> +    compare_diff_patch current expected
> +'

In addition, in "modern" style, it is more common to name the file that the actual output goes "actual", and the file that has the expected contents "expect", and compare "expect" with "actual". This test has compared contents in two files with wrong names, and compares them in a wrong order.

Taking all together, it would look more like this, I would imagine. Of course as "expected" has been renamed to "expect" in the initial set-up part, the fallouts in the remainder of the test script also needs to be dealt with, which is left as an exercise to the reader.

 t/t4001-diff-rename.sh | 31 +++++++++++--------------------
 1 file changed, 11 insertions(+), 20 deletions(-)
Show changes to diff +11 −20
diff --git c/t/t4001-diff-rename.sh w/t/t4001-diff-rename.sh
index ad474100af..61d651d1db 100755
--- c/t/t4001-diff-rename.sh
+++ w/t/t4001-diff-rename.sh
@@ -26,7 +26,7 @@ test_expect_success 'setup' '
 	Line 14
 	Line 15
 	EOF
-	cat >expected <<-\EOF &&
+	cat >expect <<-\EOF &&
 	diff --git a/path0 b/path1
 	rename from path0
 	rename to path1
@@ -88,28 +88,19 @@ test_expect_success 'setup' '
 	EOF
 '
 
-test_expect_success \
-    'update-index --add a file.' \
-    'git update-index --add path0'
-
-test_expect_success \
-    'write that tree.' \
-    'tree=$(git write-tree) && echo $tree'
+test_expect_success 'path0 renamed to path1 with minor edit' '
+	git update-index --add path0 &&
+	tree=$(git write-tree) &&
 
-sed -e 's/line/Line/' <path0 >path1
-rm -f path0
-test_expect_success \
-    'renamed and edited the file.' \
-    'git update-index --add --remove path0 path1'
+	# edit and rename
+	sed -e 's/line/Line/' <path0 >path1 &&
+	rm -f path0 &&
+	git update-index --add --remove path0 path1 &&
 
-test_expect_success \
-    'git diff-index -p -M after rename and editing.' \
-    'git diff-index -p -M $tree >current'
+	git diff-index -p -M $tree >actual &&
 
-
-test_expect_success \
-    'validate the output.' \
-    'compare_diff_patch current expected'
+	compare_diff_patch expect actual
+'
 
 test_expect_success 'test diff.renames=true' '
 	git -c diff.renames=true diff --cached $tree >current &&

Back to recent threads