Re: [PATCH v3 9/9] archive: add tests for git archive --recurse-submodules

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Oct 17 2022, Heather Lapointe via GitGitGadget wrote:

> From: Heather Lapointe <alpha@alphaservcomputing.solutions>

[In addition to what others mentioned]

> +test_description='git archive --recurse-submodules test'
> +
> +. ./test-lib.sh
> +
> +check_tar() {
> +	tarfile=$1.tar
> +	listfile=$1.lst

This "listfile" is used nowhere?"

> +	dir=$1
> +	dir_with_prefix=$dir/$2

Nor dir_with_prefix?

> +
> +	test_expect_success ' extract tar archive' '
> +		(mkdir $dir && cd $dir && "$TAR" xf -) <$tarfile

Aside from what Jonathan mentioned, maybe we can just use one variable
here then?

	mkdir $foo ... <$foo.tar

> +	test_expect_success " validate extra file $path_in_archive" '
> +		test -f $dir/$path_in_archive &&

Instead use "test_path_is_file", and in general for "test <whatever>"
check out if we have a wrapper in test-lib-functions.sh.

> +check_not_added() {
> +	dir=$1
> +	path_in_archive=$2
> +
> +	test_expect_success " validate unpresent file $path_in_archive" '
> +		! test -f $dir/$path_in_archive &&
> +		! test -d $dir/$path_in_archive

Don't test for what a thing isn't, but what it is. Can't we do that
here?

> +test_expect_success 'setup' '
> +	rm -rf repo_with_submodules submodule1 uninited_repo_with_submodules &&

Don't have a test rm -rf stuff from a previous block, but have
"test_when_finished" clean up after that previous test instead.

> +	git init repo_with_submodules &&
> +	git init submodule1 &&
> +	(
> +		cd submodule1 &&

This:
> +		echo "dir1/sub1/file1.txt" > "file1.txt" &&
> +		git add file1.txt &&
> +		git commit -m "initialize with file1.txt"

Looks like you can use test_commit instead.

And note you can use -C, so you won't need the sub-shell either, I think.
> +	) &&
> +	(
> +	    cd repo_with_submodules &&
> +	    echo "file2" > file2.txt &&
> +	    git add file2.txt &&
> +	    git commit -m "initialize with file2.txt" &&

Ditto.

> +	    mkdir -p dir1 &&

Let's drop "-p" here, to check for errors.

> +test_expect_success 'archive with recurse, non-init' '
> +	! git -C uninited_repo_with_submodules archive --recurse-submodules -v HEAD >b2-err.tar

For git, don't use !, use test_must_fail, ! hides segfaults.

Does this test pass when you build with SANITIZE=leak? Then you can do this at the top:

	TEST_PASSES_SANITIZE_LEAK=true
	. ./test-lib.sh

If you can't test that locally pushing to GitHub CI will tell you...



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux