]> git.ipfire.org Git - thirdparty/git.git/commitdiff
tests: adjust whitespace in chainlint expectations
authorPatrick Steinhardt <ps@pks.im>
Fri, 15 Dec 2023 06:42:47 +0000 (07:42 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 15 Dec 2023 16:36:14 +0000 (08:36 -0800)
The "check-chainlint" target runs automatically when running tests and
performs self-checks to verify that the chainlinter itself produces the
expected output. Originally, the chainlinter was implemented via sed,
but the infrastructure has been rewritten in fb41727b7e (t: retire
unused chainlint.sed, 2022-09-01) to use a Perl script instead.

The rewrite caused some slight whitespace changes in the output that are
ultimately not of much importance. In order to be able to assert that
the actual chainlinter errors match our expectations we thus have to
ignore whitespace characters when diffing them. As the `-w` flag is not
in POSIX we try to use `git diff -w --no-index` before we fall back to
`diff -w -u`.

To accomodate for cases where the host system has no Git installation we
use the locally-compiled version of Git. This can result in problems
though when the Git project's repository is using extensions that the
locally-compiled version of Git doesn't understand. It will refuse to
run and thus cause the checks to fail.

Instead of improving the detection logic, fix our ".expect" files so
that we do not need any post-processing at all anymore. This allows us
to drop the `-w` flag when diffing so that we can always use diff(1)
now.

Note that we keep some of the post-processing of `chainlint.pl` output
intact to strip leading line numbers generated by the script. Having
these would cause a rippling effect whenever we add a new test that
sorts into the middle of existing tests and would require us to
renumerate all subsequent lines, which seems rather pointless.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Reviewed-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
27 files changed:
t/Makefile
t/chainlint/blank-line-before-esac.expect
t/chainlint/blank-line.expect
t/chainlint/block.expect
t/chainlint/chain-break-background.expect
t/chainlint/chain-break-return-exit.expect
t/chainlint/chain-break-status.expect
t/chainlint/chained-subshell.expect
t/chainlint/command-substitution-subsubshell.expect
t/chainlint/dqstring-line-splice.expect
t/chainlint/dqstring-no-interpolate.expect
t/chainlint/empty-here-doc.expect
t/chainlint/exclamation.expect
t/chainlint/for-loop-abbreviated.expect
t/chainlint/for-loop.expect
t/chainlint/function.expect
t/chainlint/here-doc.expect
t/chainlint/loop-detect-status.expect
t/chainlint/nested-cuddled-subshell.expect
t/chainlint/nested-loop-detect-failure.expect
t/chainlint/nested-subshell.expect
t/chainlint/pipe.expect
t/chainlint/subshell-here-doc.expect
t/chainlint/subshell-one-liner.expect
t/chainlint/t7900-subtree.expect
t/chainlint/token-pasting.expect
t/chainlint/while-loop.expect

index 3e00cdd801d637388edf1a546f9613a99cd3c737..fae301248fe3d8d7394449b63a9282e74b522046 100644 (file)
@@ -90,20 +90,12 @@ check-chainlint:
                echo "# chainlint: $(CHAINLINTTMP_SQ)/tests" && \
                for i in $(CHAINLINTTESTS); do \
                        echo "# chainlint: $$i" && \
-                       sed -e '/^[     ]*$$/d' chainlint/$$i.expect; \
+                       cat chainlint/$$i.expect; \
                done \
        } >'$(CHAINLINTTMP_SQ)'/expect && \
        $(CHAINLINT) --emit-all '$(CHAINLINTTMP_SQ)'/tests | \
-               sed -e 's/^[1-9][0-9]* //;/^[   ]*$$/d' >'$(CHAINLINTTMP_SQ)'/actual && \
-       if test -f ../GIT-BUILD-OPTIONS; then \
-               . ../GIT-BUILD-OPTIONS; \
-       fi && \
-       if test -x ../git$$X; then \
-               DIFFW="../git$$X --no-pager diff -w --no-index"; \
-       else \
-               DIFFW="diff -w -u"; \
-       fi && \
-       $$DIFFW '$(CHAINLINTTMP_SQ)'/expect '$(CHAINLINTTMP_SQ)'/actual
+               sed -e 's/^[1-9][0-9]* //' >'$(CHAINLINTTMP_SQ)'/actual && \
+       diff -u '$(CHAINLINTTMP_SQ)'/expect '$(CHAINLINTTMP_SQ)'/actual
 
 test-lint: test-lint-duplicates test-lint-executable test-lint-shell-syntax \
        test-lint-filenames
index 48ed4eb1246efc67b0064b03ea531ea3fad3a320..056e03003d3e7847ead4f14e47b69de630cb507e 100644 (file)
@@ -1,11 +1,11 @@
-test_done ( ) {
+test_done () {
        case "$test_failure" in
-       0 )
+       0)
                test_at_end_hook_
 
                exit 0 ;;
 
-       * )
+       *)
                if test $test_external_has_tap -eq 0
                then
                        say_color error "# failed $test_failure among $msg"
@@ -14,5 +14,5 @@ test_done ( ) {
 
                exit 1 ;;
 
-               esac
+       esac
 }
index f76fde1ffba91d7becf17c0990c39ac25a7083f0..b47827d7499f607289cc6ec78a7b0030ee2449c0 100644 (file)
@@ -1,4 +1,8 @@
 (
+
        nothing &&
+
        something
+
+
 )
index a3bcea492a915f62cc6870a3e194fd86c19344a7..1c873263647907de91d461b4bf19b48ea5e85c3a 100644 (file)
@@ -12,9 +12,9 @@
 ) &&
 
 {
-       echo a ; ?!AMP?! echo b
+       echo a; ?!AMP?! echo b
 } &&
-{ echo a ; ?!AMP?! echo b ; } &&
+{ echo a; ?!AMP?! echo b; } &&
 
 {
        echo "${var}9" &&
index 28f9114f42de6b4dd6682ba7fdea5cd2bd3de263..20d0bb5333083208285e87408e5f16fb7263594c 100644 (file)
@@ -1,9 +1,9 @@
 JGIT_DAEMON_PID= &&
 git init --bare empty.git &&
-> empty.git/git-daemon-export-ok &&
+>empty.git/git-daemon-export-ok &&
 mkfifo jgit_daemon_output &&
 {
-       jgit daemon --port="$JGIT_DAEMON_PORT" . > jgit_daemon_output &
+       jgit daemon --port="$JGIT_DAEMON_PORT" . >jgit_daemon_output &
        JGIT_DAEMON_PID=$!
 } &&
 test_expect_code 2 git ls-remote --exit-code git://localhost:$JGIT_DAEMON_PORT/empty.git
index 1732d221c32e98bf40438167769869cb597ed4a1..4cd18e2edfc80a4bcb30ea409da0e6afac0d341b 100644 (file)
@@ -1,16 +1,16 @@
 case "$(git ls-files)" in
-one ) echo pass one ;;
-* ) echo bad one ; return 1 ;;
+one) echo pass one ;;
+*) echo bad one; return 1 ;;
 esac &&
 (
        case "$(git ls-files)" in
-       two ) echo pass two ;;
-       * ) echo bad two ; exit 1 ;;
-esac
+       two) echo pass two ;;
+       *) echo bad two; exit 1 ;;
+       esac
 ) &&
 case "$(git ls-files)" in
-dir/two"$LF"one ) echo pass both ;;
-* ) echo bad ; return 1 ;;
+dir/two"$LF"one) echo pass both ;;
+*) echo bad; return 1 ;;
 esac &&
 
 for i in 1 2 3 4 ; do
index f4bada946322a6bee2634efc27b1e67f684c1c5e..e6b3b2193e869136e222ec582853ba3f17254e53 100644 (file)
@@ -1,7 +1,7 @@
-OUT=$(( ( large_git ; echo $? 1 >& 3 ) | : ) 3 >& 1) &&
+OUT=$( ((large_git; echo $? 1>&3) | :) 3>&1 ) &&
 test_match_signal 13 "$OUT" &&
 
-{ test-tool sigchain > actual ; ret=$? ; } &&
+{ test-tool sigchain >actual; ret=$?; } &&
 {
        test_match_signal 15 "$ret" ||
        test "$ret" = 3
index af0369d3285b177dac4d2ccbf6528aa6b76ec2f8..83810ea7ec7d34d439c69b12bbfe2d70be16e3df 100644 (file)
@@ -4,7 +4,7 @@ mkdir sub && (
        nuff said
 ) &&
 
-cut "-d " -f actual | ( read s1 s2 s3 &&
+cut "-d " -f actual | (read s1 s2 s3 &&
 test -f $s1 ?!AMP?!
 test $(cat $s2) = tree2path1 &&
-test $(cat $s3) = tree3path1 )
+test $(cat $s3) = tree3path1)
index ab2f79e845703731124315bee2d90b6eff329126..ec42f2c30c98630ef0538936bbaa5f96c0fa7626 100644 (file)
@@ -1,2 +1,2 @@
-OUT=$(( ( large_git 1 >& 3 ) | : ) 3 >& 1) &&
+OUT=$( ((large_git 1>&3) | :) 3>&1 ) &&
 test_match_signal 13 "$OUT"
index bf9ced60d4c4a360266fc942430bbe79f6689345..37eab80738e4018e48b966cb9933ca332ae71f5e 100644 (file)
@@ -1,3 +1,5 @@
-echo 'fatal: reword option of --fixup is mutually exclusive with' '--patch/--interactive/--all/--include/--only' > expect &&
-test_must_fail git commit --fixup=reword:HEAD~ $1 2 > actual &&
+
+echo 'fatal: reword option of --fixup is mutually exclusive with'      '--patch/--interactive/--all/--include/--only' >expect &&
+test_must_fail git commit --fixup=reword:HEAD~ $1 2>actual &&
 test_cmp expect actual
+
index 10724987a5fbb6ba19ba0972c77b5689ca52ab28..087eda15e49144a9cbe24f9fc526f489b63aa068 100644 (file)
@@ -6,6 +6,7 @@ grep "^\.git$" output.txt &&
 (
        cd client$version &&
        GIT_TEST_PROTOCOL_VERSION=$version git fetch-pack --no-progress .. $(cat ../input)
-) > output &&
-       cut -d ' ' -f 2 < output | sort > actual &&
+) >output &&
+       cut -d ' ' -f 2 <output | sort >actual &&
        test_cmp expect actual
+
index e8733c97c645afce31a1253e90a69cfb017e4d7d..8507721192aeb4b5486ca7e7ddd2ecd7a484ebe0 100644 (file)
@@ -1,4 +1,4 @@
-git ls-tree $tree path > current &&
-cat > expected <<\EOF &&
+git ls-tree $tree path >current &&
+cat >expected <<\EOF &&
 EOF
 test_output
index 2d961a58c6676cee9db9ecfb573d4bac51f2d071..765a35bb4c47e31d369e481a3531ab7eaec2b097 100644 (file)
@@ -1,4 +1,4 @@
-if ! condition ; then echo nope ; else yep ; fi &&
+if ! condition; then echo nope; else yep; fi &&
 test_prerequisite !MINGW &&
 mail uucp!address &&
 echo !whatever!
index a21007a63f171c92482e47c381a759f7e6f20e03..02c0d15cca5cd42d7909f9fccbb95a932e217953 100644 (file)
@@ -1,5 +1,5 @@
 for it
 do
-       path=$(expr "$it" : ( [^:]*) ) &&
+       path=$(expr "$it" : ([^:]*)) &&
        git update-index --add "$path" || exit
 done
index d65c82129a68b7c3e2088ba9a95971e03a6952ee..d2237f1e38fad73938ff6335dac9de538e337caa 100644 (file)
@@ -6,6 +6,7 @@
                bar
                EOF
        done ?!AMP?!
+
        for i in a b c; do
                echo $i &&
                cat $i ?!LOOP?!
index a14388e6b9faeb67cdc79eea38a0cb3f94b240f8..dd7c997a3c340d633d9cbf7a78f4b29727a22ce4 100644 (file)
@@ -1,8 +1,8 @@
-sha1_file ( ) {
+sha1_file() {
        echo "$*" | sed "s#..#.git/objects/&/#"
 } &&
 
-remove_object ( ) {
+remove_object() {
        file=$(sha1_file "$*") &&
        test -e "$file" ?!AMP?!
        rm -f "$file"
index 1df3f782821b6a7221767fbdd76ad2c26b5d67c9..91b961242a1cabb7cc3f5edecaa6d99eb3eeef9e 100644 (file)
@@ -1,6 +1,6 @@
 boodle wobba \
-       gorgo snoot \
-       wafta snurb <<EOF &&
+       gorgo snoot \
+       wafta snurb <<EOF &&
 quoth the raven,
 nevermore...
 EOF
index 24da9e86d596b5d068b149242e213ba0224051d3..7ce3a348060dcfaf91299282eb4eee2b471f58bc 100644 (file)
@@ -1,18 +1,18 @@
-( while test $i -le $blobcount
-do
-       printf "Generating blob $i/$blobcount\r" >& 2 &&
+(while test $i -le $blobcount
+ do
+       printf "Generating blob $i/$blobcount\r" >&2 &&
        printf "blob\nmark :$i\ndata $blobsize\n" &&
        #test-tool genrandom $i $blobsize &&
        printf "%-${blobsize}s" $i &&
        echo "M 100644 :$i $i" >> commit &&
        i=$(($i+1)) ||
        echo $? > exit-status
-done &&
-echo "commit refs/heads/main" &&
-echo "author A U Thor <author@email.com> 123456789 +0000" &&
-echo "committer C O Mitter <committer@email.com> 123456789 +0000" &&
-echo "data 5" &&
-echo ">2gb" &&
-cat commit ) |
+ done &&
+ echo "commit refs/heads/main" &&
+ echo "author A U Thor <author@email.com> 123456789 +0000" &&
+ echo "committer C O Mitter <committer@email.com> 123456789 +0000" &&
+ echo "data 5" &&
+ echo ">2gb" &&
+ cat commit) |
 git fast-import --big-file-threshold=2 &&
 test ! -f exit-status
index 2a86885ee6a330450a76591248b60b89e601816f..3836049cc4190e4a37c35511279cd3fd36040b65 100644 (file)
@@ -2,18 +2,24 @@
        (cd foo &&
                bar
        ) &&
+
        (cd foo &&
                bar
        ) ?!AMP?!
+
        (
                cd foo &&
                bar) &&
+
        (
                cd foo &&
                bar) ?!AMP?!
+
        (cd foo &&
                bar) &&
+
        (cd foo &&
                bar) ?!AMP?!
+
        foobar
 )
index 4793a0e8e12aeb0f4d4c4497a2e77a87a2d6d2b6..3461df40e5129423ab58d92f84518d145f2f8b5d 100644 (file)
@@ -1,31 +1,31 @@
-for i in 0 1 2 3 4 5 6 7 8 9 ;
+for i in 0 1 2 3 4 5 6 7 8 9;
 do
-       for j in 0 1 2 3 4 5 6 7 8 9 ;
+       for j in 0 1 2 3 4 5 6 7 8 9;
        do
-               echo "$i$j" > "path$i$j" ?!LOOP?!
+               echo "$i$j" >"path$i$j" ?!LOOP?!
        done ?!LOOP?!
 done &&
 
-for i in 0 1 2 3 4 5 6 7 8 9 ;
+for i in 0 1 2 3 4 5 6 7 8 9;
 do
-       for j in 0 1 2 3 4 5 6 7 8 9 ;
+       for j in 0 1 2 3 4 5 6 7 8 9;
        do
-               echo "$i$j" > "path$i$j" || return 1
+               echo "$i$j" >"path$i$j" || return 1
        done
 done &&
 
-for i in 0 1 2 3 4 5 6 7 8 9 ;
+for i in 0 1 2 3 4 5 6 7 8 9;
 do
-       for j in 0 1 2 3 4 5 6 7 8 9 ;
+       for j in 0 1 2 3 4 5 6 7 8 9;
        do
-               echo "$i$j" > "path$i$j" ?!LOOP?!
+               echo "$i$j" >"path$i$j" ?!LOOP?!
        done || return 1
 done &&
 
-for i in 0 1 2 3 4 5 6 7 8 9 ;
+for i in 0 1 2 3 4 5 6 7 8 9;
 do
-       for j in 0 1 2 3 4 5 6 7 8 9 ;
+       for j in 0 1 2 3 4 5 6 7 8 9;
        do
-               echo "$i$j" > "path$i$j" || return 1
+               echo "$i$j" >"path$i$j" || return 1
        done || return 1
 done
index 02e0a9f1bb5f302a2903817b5d8ef7ff25b2efa7..73ff28546ae720bd7ce8e15cd9597e27e6afae41 100644 (file)
@@ -4,6 +4,7 @@
                echo a &&
                echo b
        ) >file &&
+
        cd foo &&
        (
                echo a ?!AMP?!
index 2cfc0282970db02dd37eaf1c0c079e22a233cef1..811971b1a3c495da2adf0064c24007c6a7bf913d 100644 (file)
@@ -2,7 +2,9 @@
        foo |
        bar |
        baz &&
+
        fish |
        cow ?!AMP?!
+
        sunder
 )
index 52789278d13b7605a63c0c92c09c518990ab316f..75d6f607e295638e9e0c5029711357bc2e9d2fda 100644 (file)
@@ -1,7 +1,7 @@
 (
        echo wobba \
-               gorgo snoot \
-               wafta snurb <<-EOF &&
+              gorgo snoot \
+              wafta snurb <<-EOF &&
        quoth the raven,
        nevermore...
        EOF
index b7015361bfe6a3555d02e97d2bdc0413b8f8c432..8f694990e8d9f1ce1205399f54b61436cfe4100c 100644 (file)
@@ -2,13 +2,18 @@
        (foo && bar) &&
        (foo && bar) |
        (foo && bar) >baz &&
+
        (foo; ?!AMP?! bar) &&
        (foo; ?!AMP?! bar) |
        (foo; ?!AMP?! bar) >baz &&
+
        (foo || exit 1) &&
        (foo || exit 1) |
        (foo || exit 1) >baz &&
+
        (foo && bar) ?!AMP?!
+
        (foo && bar; ?!AMP?! baz) ?!AMP?!
+
        foobar
 )
index 71b3b3bc20ed1d6718f8d0ee6efe35b147557b8c..02f3129232a0d114bf90211b9a6508385d0115bd 100644 (file)
@@ -15,6 +15,7 @@ main-sub4" &&
 $chkms
 TXT
 ) &&
+
        subfiles=$(git ls-files) &&
        check_equal "$subfiles" "$chkms
 $chks"
index 342360bcd05941c55c924e041a4715e9fe201361..6a387917a7af18bc39b70c91b091b91eb6a7ee82 100644 (file)
@@ -4,22 +4,22 @@ git config filter.rot13.clean ./rot13.sh &&
 {
     echo "*.t filter=rot13" ?!AMP?!
     echo "*.i ident"
-} > .gitattributes &&
+} >.gitattributes &&
 
 {
     echo a b c d e f g h i j k l m ?!AMP?!
     echo n o p q r s t u v w x y z ?!AMP?!
     echo '$Id$'
-} > test &&
-cat test > test.t &&
-cat test > test.o &&
-cat test > test.i &&
+} >test &&
+cat test >test.t &&
+cat test >test.o &&
+cat test >test.i &&
 git add test test.t test.i &&
 rm -f test test.t test.i &&
 git checkout -- test test.t test.i &&
 
-echo "content-test2" > test2.o &&
-echo "content-test3 - filename with special characters" > "test3 'sq',$x=.o" ?!AMP?!
+echo "content-test2" >test2.o &&
+echo "content-test3 - filename with special characters" >"test3 'sq',$x=.o" ?!AMP?!
 
 downstream_url_for_sed=$(
        printf "%sn" "$downstream_url" |
index 1f5eaea0fd59757ea78b7dc0b24ec0971c2faa36..06c1567f481e8cbc21cf50fdf58bfb9a502d439e 100644 (file)
@@ -6,6 +6,7 @@
                bar
                EOF
        done ?!AMP?!
+
        while true; do
                echo foo &&
                cat bar ?!LOOP?!