Hi René, On Thu, May 21, 2020 at 11:52:28AM +0200, René Scharfe wrote: > diff --git a/t/t1450-fsck.sh b/t/t1450-fsck.sh > index 91a6e34f38..9640ac8ff2 100755 > --- a/t/t1450-fsck.sh > +++ b/t/t1450-fsck.sh > @@ -257,21 +257,33 @@ test_expect_success 'tree object with duplicate entries' ' > test_i18ngrep "error in tree .*contains duplicate file entries" out > ' > > -test_expect_success 'tree object with dublicate names' ' > - test_when_finished "remove_object \$blob" && > - test_when_finished "remove_object \$tree" && > - test_when_finished "remove_object \$badtree" && > - blob=$(echo blob | git hash-object -w --stdin) && > - printf "100644 blob %s\t%s\n" $blob x.2 >tree && > - tree=$(git mktree <tree) && > - printf "100644 blob %s\t%s\n" $blob x.1 >badtree && > - printf "100644 blob %s\t%s\n" $blob x >>badtree && > - printf "040000 tree %s\t%s\n" $tree x >>badtree && > - badtree=$(git mktree <badtree) && > - test_must_fail git fsck 2>out && > - test_i18ngrep "$badtree" out && > - test_i18ngrep "error in tree .*contains duplicate file entries" out > -' > +check_duplicate_names () { > + expect=$1 && > + shift && > + names=$@ && It doesn't really make sense to use $@ here since we're not using the argument list behaviour of $@; we're just expanding it normally. I would replace this with $* instead. > + test_expect_$expect "tree object with duplicate names: $names" ' > + test_when_finished "remove_object \$blob" && > + test_when_finished "remove_object \$tree" && > + test_when_finished "remove_object \$badtree" && > + blob=$(echo blob | git hash-object -w --stdin) && > + printf "100644 blob %s\t%s\n" $blob x.2 >tree && > + tree=$(git mktree <tree) && > + for name in $names > + do > + case "$name" in > + */) printf "040000 tree %s\t%s\n" $tree "${name%/}" ;; > + *) printf "100644 blob %s\t%s\n" $blob "$name" ;; > + esac > + done >badtree && > + badtree=$(git mktree <badtree) && > + test_must_fail git fsck 2>out && > + test_i18ngrep "$badtree" out && > + test_i18ngrep "error in tree .*contains duplicate file entries" out > + ' > +} > + > +check_duplicate_names success x x.1 x/ > +check_duplicate_names success x x.1.2 x.1/ x/ > > test_expect_success 'unparseable tree object' ' > test_oid_cache <<-\EOF && > -- > 2.26.2