On Wed, Sep 26, 2018 at 6:25 PM Josh Steadmon <[email protected]> wrote:
>
> Move assertions outside of the check_tar function so that all top-level
> code is wrapped in a test_expect_* assertion.
Cool, I'll file this under modernizing the test infrastructure ;-)
> diff --git a/t/t5000-tar-tree.sh b/t/t5000-tar-tree.sh
> index 2a97b27b0a..c408e3a23d 100755
> --- a/t/t5000-tar-tree.sh
> +++ b/t/t5000-tar-tree.sh
> @@ -62,11 +62,9 @@ check_tar() {
> dir=$1
> dir_with_prefix=$dir/$2
>
> - test_expect_success ' extract tar archive' '
> - (mkdir $dir && cd $dir && "$TAR" xf -) <$tarfile
> - '
> + (mkdir $dir && cd $dir && "$TAR" xf -) <$tarfile &&
>
> - test_expect_success TAR_NEEDS_PAX_FALLBACK ' interpret pax headers' '
> + if test_have_prereq TAR_NEEDS_PAX_FALLBACK ; then
> (
> cd $dir &&
> for header in *.paxheader
> @@ -82,16 +80,11 @@ check_tar() {
> fi
> done
> )
> - '
> + fi &&
>
> - test_expect_success ' validate filenames' '
> - (cd ${dir_with_prefix}a && find .) | sort >$listfile &&
> - test_cmp a.lst $listfile
> - '
> -
> - test_expect_success ' validate file contents' '
> - diff -r a ${dir_with_prefix}a
> - '
> + (cd ${dir_with_prefix}a && find .) | sort >$listfile &&
> + test_cmp a.lst $listfile &&
> + diff -r a ${dir_with_prefix}a
Up to here we unwrapped code and removed test_expect_success
and just executed the code as is, so later callers would need to encapsulate
the call to check_tar with test_expect_success.
However as we are touching the code here, we can go further than just
unwrapping it, usually we'd format one command a line,
(
cd ${dir_with_prefix}a &&
find .
) | sort >$listfile &&
test_cmp ...
I am not sure if that standard style is more legible in this case though.
> }
>
> test_expect_success \
> @@ -143,19 +136,20 @@ test_expect_success \
> 'git archive' \
> 'git archive HEAD >b.tar'
>
> -check_tar b
> +test_expect_success 'extract archive' 'check_tar b'
Heh. Just looked into the file and the surrounding code is
a wild mixture of the old style
test_expect_success \
'git archive' \
'git archive HEAD >b.tar'
check_tar b
and the new style
test_expect_success 'test name' '
<TAB> command &&
<TAB> command2
'
Maybe we could cleanup that file to look more like
one of the newer tests (e.g. t3206, t0410) ?
But I guess for the purpose of getting the check_tar
function usable inside a test, this would do enough.
>
> test_expect_success 'git archive --prefix=prefix/' '
> git archive --prefix=prefix/ HEAD >with_prefix.tar
> '
>
> -check_tar with_prefix prefix/
> +test_expect_success 'extract with prefix' 'check_tar with_prefix prefix/'
>
> test_expect_success 'git-archive --prefix=olde-' '
> git archive --prefix=olde- HEAD >with_olde-prefix.tar
> '
>
> -check_tar with_olde-prefix olde-
> +test_expect_success 'extract with olde- prefix' \
> + 'check_tar with_olde-prefix olde-'
In new style this would look like
test_expect_success 'extract with olde- prefix' '
check_tar with_olde-prefix olde-
'