Junio C Hamano <gitster@xxxxxxxxx> writes: > SZEDER Gábor <szeder.dev@xxxxxxxxx> writes: > >>> While inspecting this code, I realized that the final test for >>> 'commit_contains --tag' is silently dropping the '--tag' argument. >>> It should be quoted to include both. >> >> Nit: while quoting the function's arguments does fix the issue, it >> leaves the tests prone to the same issue in the future. Wouldn't it >> be better to use $@ inside the function to refer to all its arguments? > > IOW, do it more like this? > >>> -test_three_modes () { >>> +run_three_modes () { >>> test_when_finished rm -rf .git/objects/info/commit-graph && >>> - test-tool reach $1 <input >actual && >>> + $1 <input >actual && > > "$@" <input >actual > > i.e. treat each parameter as separate things without further getting > split at $IFS and ... > >>> +test_three_modes () { >>> + run_three_modes "test-tool reach $1" > > run_three_modes test-tool reach "$1" > > ... make sure there three things are sent as separate, by quoting > "$1" inside dq. > > I think that makes sense. I also noticed that 2/6 made "commti_contains --tag" enclosed in dq pair for one test, but the next test after it has the identical one. Here is what I queued in the meantime. diff --git a/t/t6600-test-reach.sh b/t/t6600-test-reach.sh index 1b18e12a4e..1377849bf8 100755 --- a/t/t6600-test-reach.sh +++ b/t/t6600-test-reach.sh @@ -55,18 +55,18 @@ test_expect_success 'setup' ' run_three_modes () { test_when_finished rm -rf .git/objects/info/commit-graph && - $1 <input >actual && + "$@" <input >actual && test_cmp expect actual && cp commit-graph-full .git/objects/info/commit-graph && - $1 <input >actual && + "$@" <input >actual && test_cmp expect actual && cp commit-graph-half .git/objects/info/commit-graph && - $1 <input >actual && + "$@" <input >actual && test_cmp expect actual } test_three_modes () { - run_three_modes "test-tool reach $1" + run_three_modes test-tool reach "$1" } test_expect_success 'ref_newer:miss' ' @@ -223,7 +223,7 @@ test_expect_success 'commit_contains:hit' ' EOF echo "commit_contains(_,A,X,_):1" >expect && test_three_modes commit_contains && - test_three_modes "commit_contains --tag" + test_three_modes commit_contains --tag ' test_expect_success 'commit_contains:miss' ' -- 2.19.0-216-g2d3b1c576c