Re: [PATCH 2/4] t1450: increase test coverage of in-tree d/f detection
- From
Denton Liu <liu.denton@gmail.com>
- Date
- May 21, 2020, 10:20 UTC
- Message-ID
- <20200521102053.GA578930@generichostname>
- In-Reply-To
- <106c58e1-9c74-46e3-c83a-88eee114d9d6@web.de>
Hi René,
On Thu, May 21, 2020 at 11:52:28AM +0200, René Scharfe wrote:
Show 27 quoted lines
> 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.
Show 28 quoted lines
> + 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