]> git.ipfire.org Git - thirdparty/git.git/commitdiff
notes tests: don't ignore "git" exit code
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Mon, 7 Mar 2022 12:49:00 +0000 (13:49 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 7 Mar 2022 21:27:40 +0000 (13:27 -0800)
Change a fragile test pattern that's been with us ever since these
tests were introduced in [1], [2] and [3] to properly return the exit
code of the failing command on failure.

Because of this I'd marked this test as passing under SANITIZE=leak in
[4] and [5]. We need to remove those annotations as these tests will
no longer pass.

1. 9081a421a6d (checkout: fix "branch info" memory leaks, 2021-11-16)
2. 0057c0917d3 (Add selftests verifying that we can parse notes trees
   with various fanouts, 2009-10-09)
3. 048cdd4665e (t3305: Verify that adding many notes with git-notes
   triggers increased fanout, 2010-02-13)
4. ca089724952 (leak tests: mark some notes tests as passing with
   SANITIZE=leak, 2021-10-31)
5. 9081a421a6d (checkout: fix "branch info" memory leaks, 2021-11-16)

Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t3302-notes-index-expensive.sh
t/t3303-notes-subtrees.sh
t/t3305-notes-fanout.sh

index bc9d8ee1e6a8b223f084cdc405a52048630ba5b1..bb5fea02a03a563a23e806d80dbb88a673c40802 100755 (executable)
@@ -8,7 +8,6 @@ test_description='Test commit notes index (expensive!)'
 GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
 export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
 
-TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 
 create_repo () {
@@ -65,7 +64,8 @@ create_repo () {
 test_notes () {
        count=$1 &&
        git config core.notesRef refs/notes/commits &&
-       git log | grep "^    " >output &&
+       git log >tmp &&
+       grep "^    " tmp >output &&
        i=$count &&
        while test $i -gt 0
        do
@@ -90,7 +90,7 @@ write_script time_notes <<\EOF
                        unset GIT_NOTES_REF
                        ;;
                esac
-               git log
+               git log || exit $?
                i=$(($i+1))
        done >/dev/null
 EOF
index 7e0a8960af886fb83d555766919e34fcd532bf7c..eac193757bf1a5cd27ed4d54249a41de7b302bde 100755 (executable)
@@ -5,7 +5,6 @@ test_description='Test commit notes organized in subtrees'
 GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
 export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
 
-TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 
 number_of_commits=100
@@ -79,7 +78,7 @@ test_sha1_based () {
        (
                start_note_commit &&
                nr=$number_of_commits &&
-               git rev-list refs/heads/main |
+               git rev-list refs/heads/main >out &&
                while read sha1; do
                        note_path=$(echo "$sha1" | sed "$1")
                        cat <<INPUT_END &&
@@ -91,9 +90,9 @@ EOF
 INPUT_END
 
                        nr=$(($nr-1))
-               done
-       ) |
-       git fast-import --quiet
+               done <out
+       ) >gfi &&
+       git fast-import --quiet <gfi
 }
 
 test_expect_success 'test notes in 2/38-fanout' 'test_sha1_based "s|^..|&/|"'
index 1f5964865ae173e05fab2070c179ff305886bf82..9976d787f4721c898d52eb0211399b145c9e1872 100755 (executable)
@@ -2,7 +2,6 @@
 
 test_description='Test that adding/removing many notes triggers automatic fanout restructuring'
 
-TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 
 path_has_fanout() {
@@ -24,7 +23,7 @@ touched_one_note_with_fanout() {
 all_notes_have_fanout() {
        notes_commit=$1 &&
        fanout=$2 &&
-       git ls-tree -r --name-only $notes_commit 2>/dev/null |
+       git ls-tree -r --name-only $notes_commit |
        while read path
        do
                path_has_fanout $path $fanout || return 1
@@ -51,8 +50,9 @@ test_expect_success 'creating many notes with git-notes' '
        done
 '
 
-test_expect_success 'many notes created correctly with git-notes' '
-       git log | grep "^    " > output &&
+test_expect_success !SANITIZE_LEAK 'many notes created correctly with git-notes' '
+       git log >output.raw &&
+       grep "^    " output.raw >output &&
        i=$num_notes &&
        while test $i -gt 0
        do
@@ -91,13 +91,13 @@ test_expect_success 'stable fanout 0 is followed by stable fanout 1' '
 test_expect_success 'deleting most notes with git-notes' '
        remove_notes=285 &&
        i=0 &&
-       git rev-list HEAD |
+       git rev-list HEAD >revs &&
        while test $i -lt $remove_notes && read sha1
        do
                i=$(($i + 1)) &&
                test_tick &&
-               git notes remove "$sha1" 2>/dev/null || return 1
-       done
+               git notes remove "$sha1" || return 1
+       done <revs
 '
 
 test_expect_success 'most notes deleted correctly with git-notes' '