Re: [GSoC][PATCH v8 05/20] stash: add tests for `git stash show` config

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

 



Paul-Sebastian Ungureanu <ungureanupaulsebastian@xxxxxxxxx> writes:

> This commit introduces tests for `git stash show`
> config. It tests all the cases where `stash.showStat`
> and `stash.showPatch` are unset or set to true / false.
>
> Signed-off-by: Paul-Sebastian Ungureanu <ungureanupaulsebastian@xxxxxxxxx>
> ---
>  t/t3907-stash-show-config.sh | 81 ++++++++++++++++++++++++++++++++++++
>  1 file changed, 81 insertions(+)
>  create mode 100755 t/t3907-stash-show-config.sh
>
> diff --git a/t/t3907-stash-show-config.sh b/t/t3907-stash-show-config.sh
> new file mode 100755
> index 0000000000..8fe369c1a1
> --- /dev/null
> +++ b/t/t3907-stash-show-config.sh
> @@ -0,0 +1,81 @@
> +#!/bin/sh
> +
> +test_description='Test git stash show configuration.'
> +
> +. ./test-lib.sh
> +
> +test_expect_success 'setup' '
> +	test_commit file
> +'
> +
> +# takes three parameters:
> +# 1. the stash.showStat value (or "<unset>")
> +# 2. the stash.showPatch value (or "<unset>")
> +# 3. the diff options of the expected output (or nothing for no output)
> +test_stat_and_patch () {
> +	if test "<unset>" = "$1"
> +	then
> +		test_might_fail git config --unset stash.showStat
> +	else
> +		test_config stash.showStat "$1"
> +	fi &&
> +
> +	if test "<unset>" = "$2"
> +	then
> +		test_might_fail git config --unset stash.showPatch

I think you are trying to protect yourself from an error triggered
by unsetting what is not set, but for that, test_unconfig is
probably a better choice, as it still catches errors of other types
and ignores only that "unset a variable that is not set" error.

> +	else
> +		test_config stash.showPatch "$2"
> +	fi &&
> +
> +	shift &&
> +	shift &&

You can use "shift 2 &&" here (not worth a reroll).

> +	echo 2 >file.t &&

> +	git diff "$@" >expect &&

When the caller does not give $3 to this function, it does not look
at 'expect'.  I think it is clearer if you did

	if test $# != 0
	then
		git diff "$@" >expect
	fi &&

here, and ...

> +	git stash &&
> +	git stash show >actual &&
> +
> +	if test -z "$1"

... wrote this as

	if test $# = 0

The only difference between '-z "$1"' and '$# = 0' is when he caller
passes an empty string to the function as $3, which you never do, so
the distinction is theoretical, but using $# makes your intention
clear that you do not mean to treat an empty string any specially.

> +	then
> +		test_must_be_empty actual
> +	else
> +		test_cmp expect actual
> +	fi
> +}
> +
> +test_expect_success 'showStat unset showPatch unset' '
> +	test_stat_and_patch "<unset>" "<unset>" --stat
> +'
> +
> +test_expect_success 'showStat unset showPatch false' '
> +	test_stat_and_patch "<unset>" false --stat
> +'
> +
> +test_expect_success 'showStat unset showPatch true' '
> +	test_stat_and_patch "<unset>" true --stat -p
> +'
> +
> +test_expect_success 'showStat false showPatch unset' '
> +	test_stat_and_patch false "<unset>"
> +'
> +
> +test_expect_success 'showStat false showPatch false' '
> +	test_stat_and_patch false false
> +'
> +
> +test_expect_success 'showStat false showPatch true' '
> +	test_stat_and_patch false true -p
> +'
> +
> +test_expect_success 'showStat true showPatch unset' '
> +	test_stat_and_patch true "<unset>" --stat
> +'
> +
> +test_expect_success 'showStat true showPatch false' '
> +	test_stat_and_patch true false --stat
> +'
> +
> +test_expect_success 'showStat true showPatch true' '
> +	test_stat_and_patch true true --stat -p
> +'
> +
> +test_done



[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