]> git.ipfire.org Git - thirdparty/git.git/commitdiff
test-lib-functions: mark 'test_commit' variables as 'local'
authorPhilippe Blain <levraiphilippeblain@gmail.com>
Fri, 21 Oct 2022 15:13:31 +0000 (15:13 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 21 Oct 2022 20:51:05 +0000 (13:51 -0700)
Some variables in 'test_commit' have names that are common enough that
it is very likely that test authors might use them in a test. If they do
so and use 'test_commit' between setting such a variable and using it,
the variable value from 'test_commit' will leak back into the test and
most likely break it.

Prevent that by marking all variables in 'test_commit' as 'local'. This
allow a subsequent commit to use a 'tag' variable.

Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/test-lib-functions.sh

index 527a7145000f6414d7663f6ee6a1d7c1396d8fe4..adc0fb6330c13635b69f2815ba43348ecf245fda 100644 (file)
@@ -273,13 +273,13 @@ debug () {
 # <file>, <contents>, and <tag> all default to <message>.
 
 test_commit () {
-       notick= &&
-       echo=echo &&
-       append= &&
-       author= &&
-       signoff= &&
-       indir= &&
-       tag=light &&
+       local notick= &&
+       local echo=echo &&
+       local append= &&
+       local author= &&
+       local signoff= &&
+       local indir= &&
+       local tag=light &&
        while test $# != 0
        do
                case "$1" in
@@ -322,7 +322,7 @@ test_commit () {
                shift
        done &&
        indir=${indir:+"$indir"/} &&
-       file=${2:-"$1.t"} &&
+       local file=${2:-"$1.t"} &&
        if test -n "$append"
        then
                $echo "${3-$1}" >>"$indir$file"