[PATCH v2] t5314: check exit code of "git"
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Nov 28, 2022, 14:18 UTC
- Message-ID
- <patch-v2-1.1-ca77a7249e6-20221128T141818Z-avarab@gmail.com>
- In-Reply-To
- <patch-1.1-45b240740eb-20221128T115740Z-avarab@gmail.com>
Amend the test added in [1] to check the exit code of the "git" invocations. An in-flight change[2] introduced a memory leak in these invocations, which went undetected unless we were running under "GIT_TEST_SANITIZE_LEAK_LOG=true".
Note that the in-flight change made 8 test files fail, but as far as I can tell only this one would have had its exit code hidden unless under "GIT_TEST_SANITIZE_LEAK_LOG=true". The rest would be caught without it.
We could pick other variable names here than "ln%d", e.g. "commit", "dummy_blob" and "file_blob", but having the "rev-parse" invocations aligned makes the difference between them more readable, so let's pick "ln%d".
1. 4cf2143e029 (pack-objects: break delta cycles before delta-search phase, 2016-08-11) 2. https://lore.kernel.org/git/221128.868rjvmi3l.gmgdl@evledraar.gmail.com/ 3. faececa53f9 (test-lib: have the "check" mode for SANITIZE=leak consider leak logs, 2022-07-28)
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
Range-diff against v1:
1: 45b240740eb ! 1: ca77a7249e6 t5314: check exit code of "rev-parse"
@@ Metadata
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## Commit message ##
- t5314: check exit code of "rev-parse"
+ t5314: check exit code of "git"
- Amend the test added in [1] to check the exit code of the "rev-parse"
+ Amend the test added in [1] to check the exit code of the "git"
invocations. An in-flight change[2] introduced a memory leak in these
invocations, which went undetected unless we were running under
"GIT_TEST_SANITIZE_LEAK_LOG=true".
@@ Commit message
under "GIT_TEST_SANITIZE_LEAK_LOG=true". The rest would be caught
without it.
+ We could pick other variable names here than "ln%d", e.g. "commit",
+ "dummy_blob" and "file_blob", but having the "rev-parse" invocations
+ aligned makes the difference between them more readable, so let's pick
+ "ln%d".
+
1. 4cf2143e029 (pack-objects: break delta cycles before delta-search
phase, 2016-08-11)
2. https://lore.kernel.org/git/221128.868rjvmi3l.gmgdl@evledraar.gmail.com/
@@ t/t5314-pack-cycle-detection.sh: TEST_PASSES_SANITIZE_LEAK=true
- } |
- git pack-objects --stdout |
- git index-pack --stdin --fix-thin
-+ grp1=$(git rev-parse "$2") &&
-+ grp2=$(git rev-parse "$1:dummy") &&
-+ grp3=$(git rev-parse "$1:file") &&
++ ln1=$(git rev-parse "$2") &&
++ ln2=$(git rev-parse "$1:dummy") &&
++ ln3=$(git rev-parse "$1:file") &&
+ cat >list <<-EOF
-+ -$grp1
-+ $grp2 dummy
-+ $grp3 file
++ -$ln1
++ $ln2 dummy
++ $ln3 file
+ EOF
+ git pack-objects --stdout <list >pack &&
+ git index-pack --stdin --fix-thin <packt/t5314-pack-cycle-detection.sh | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/t/t5314-pack-cycle-detection.sh b/t/t5314-pack-cycle-detection.sh index 73a241743aa..82734b9a3c4 100755 --- a/t/t5314-pack-cycle-detection.sh +++ b/t/t5314-pack-cycle-detection.sh @@ -63,13 +63,16 @@ TEST_PASSES_SANITIZE_LEAK=true # Note that the two variants of "file" must be similar enough to convince git # to create the delta. make_pack () { - { - printf '%s\n' "-$(git rev-parse $2)" - printf '%s dummy\n' "$(git rev-parse $1:dummy)" - printf '%s file\n' "$(git rev-parse $1:file)" - } | - git pack-objects --stdout | - git index-pack --stdin --fix-thin + ln1=$(git rev-parse "$2") && + ln2=$(git rev-parse "$1:dummy") && + ln3=$(git rev-parse "$1:file") && + cat >list <<-EOF + -$ln1 + $ln2 dummy + $ln3 file + EOF + git pack-objects --stdout <list >pack && + git index-pack --stdin --fix-thin <pack } test_expect_success 'setup' '
-- 2.39.0.rc0.962.g4ca4168c9ac