From: Stefan Beller <sbeller@google.com>
To: Josh Steadmon <steadmon@google.com>
Cc: git <git@vger.kernel.org>
Subject: Re: [PATCH v2 1/4] archive: follow test standards around assertions
Date: Thu, 27 Sep 2018 11:38:04 -0700 [thread overview]
Message-ID: <CAGZ79kZ2aqW7X57KHPtjQiyWtwfk4SGZYRqwccgy9ji0s+sYYQ@mail.gmail.com> (raw)
In-Reply-To: <20180927012455.234876-2-steadmon@google.com>
On Wed, Sep 26, 2018 at 6:25 PM Josh Steadmon <steadmon@google.com> 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-
'
next prev parent reply other threads:[~2018-09-27 18:38 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-12 5:35 Add proto v2 archive command with HTTP support Josh Steadmon
2018-09-12 5:35 ` [PATCH 1/3] archive: use packet_reader for communications Josh Steadmon
2018-09-12 22:01 ` Stefan Beller
2018-09-13 14:58 ` Junio C Hamano
2018-09-13 15:34 ` Junio C Hamano
2018-09-12 5:35 ` [PATCH 2/3] archive: implement protocol v2 archive command Josh Steadmon
2018-09-12 22:28 ` Stefan Beller
2018-09-13 18:45 ` Ævar Arnfjörð Bjarmason
2018-09-14 6:05 ` Jonathan Nieder
2018-09-14 14:31 ` Ævar Arnfjörð Bjarmason
2018-09-14 16:14 ` Junio C Hamano
2018-09-14 16:19 ` Jonathan Nieder
2018-09-13 16:31 ` Junio C Hamano
2018-09-14 5:39 ` Jonathan Nieder
2018-09-12 5:35 ` [PATCH 3/3] archive: allow archive over HTTP(S) with proto v2 Josh Steadmon
2018-09-12 22:38 ` Stefan Beller
2018-09-13 16:47 ` Junio C Hamano
2018-09-27 20:28 ` Josh Steadmon
2018-09-14 5:57 ` Jonathan Nieder
2018-09-14 5:36 ` Add proto v2 archive command with HTTP support Jonathan Nieder
2018-09-27 1:24 ` [PATCH v2 0/4] " Josh Steadmon
2018-09-27 1:24 ` [PATCH v2 1/4] archive: follow test standards around assertions Josh Steadmon
2018-09-27 18:38 ` Stefan Beller [this message]
2018-09-27 1:24 ` [PATCH v2 2/4] archive: use packet_reader for communications Josh Steadmon
2018-09-27 18:42 ` Stefan Beller
2018-09-27 1:24 ` [PATCH v2 3/4] archive: implement protocol v2 archive command Josh Steadmon
2018-09-27 1:24 ` [PATCH v2 4/4] archive: allow archive over HTTP(S) with proto v2 Josh Steadmon
2018-09-27 18:20 ` [PATCH v2 0/4] Add proto v2 archive command with HTTP support Stefan Beller
2018-09-27 18:30 ` Jonathan Nieder
2018-09-27 22:20 ` Junio C Hamano
2018-09-27 22:33 ` Josh Steadmon
2018-09-28 1:25 ` Junio C Hamano
2018-09-27 18:30 ` Josh Steadmon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAGZ79kZ2aqW7X57KHPtjQiyWtwfk4SGZYRqwccgy9ji0s+sYYQ@mail.gmail.com \
--to=sbeller@google.com \
--cc=git@vger.kernel.org \
--cc=steadmon@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).