From: Junio C Hamano <gitster@pobox.com>
To: David Turner <dturner@twopensource.com>
Cc: git@vger.kernel.org, David Turner <dturner@twitter.com>
Subject: Re: [PATCH v4 3/4] cache-tree: subdirectory tests
Date: Mon, 07 Jul 2014 12:15:07 -0700 [thread overview]
Message-ID: <xmqqegxxc75w.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1404619619-4774-3-git-send-email-dturner@twitter.com> (David Turner's message of "Sat, 5 Jul 2014 21:06:58 -0700")
David Turner <dturner@twopensource.com> writes:
> Add tests to confirm that invalidation of subdirectories nether over-
> nor under-invalidates.
>
> Signed-off-by: David Turner <dturner@twitter.com>
> ---
> t/t0090-cache-tree.sh | 28 +++++++++++++++++++++++++---
> 1 file changed, 25 insertions(+), 3 deletions(-)
>
> diff --git a/t/t0090-cache-tree.sh b/t/t0090-cache-tree.sh
> index 98fb1ab..8437c5f 100755
> --- a/t/t0090-cache-tree.sh
> +++ b/t/t0090-cache-tree.sh
> @@ -21,10 +21,13 @@ test_shallow_cache_tree () {
> cmp_cache_tree expect
> }
>
> +# Test that the cache-tree for a given directory is invalid.
> +# If no directory is given, check that the root is invalid
> test_invalid_cache_tree () {
> - echo "invalid (0 subtrees)" >expect &&
> - printf "SHA #(ref) (%d entries, 0 subtrees)\n" $(git ls-files|wc -l) >>expect &&
> - cmp_cache_tree expect
> + test-dump-cache-tree >actual &&
> + sed -e "s/$_x40/SHA/" -e "s/[0-9]* subtrees//g" <actual >filtered &&
> + expect=$(printf "invalid $1 ()\n") &&
It would be saner to do 'printf "string %s more string" "$1"' than
embedding caller-supplied "$1" inside the format specifier.
> + fgrep "$expect" filtered
We'd actually want to see fewer uses of 'fgrep' in the tests for two
reasons.
Is having an entry that is invalidated the only thing we care about
in this test? Shouldn't the caller expect "These subtrees and
nothing else must be invalidated", in which case the helper should
check not just the expected "invalid dir1/" appears in the output
but no other unexpected "invalid somethingelse/" appears (and this
"no other unexpected output" makes use of grep family in tests like
this less desirable).
In other words, wouldn't it be better to do the helper along the
lines of:
test_invalidated_cache_tree () {
if test $# != 0
then
printf "invalid %s ()\n" "" "$@"
fi >expect &&
test-dump-cache-tree |
sed -n -e '/^invalid /p' >actual &&
test_cmp expect actual
}
and use
test_invalidated_cache_tree dir1
when we expect only dir1 and dir2 (but not dir2 or anything else) is
invalidated?
Thanks.
next prev parent reply other threads:[~2014-07-07 19:15 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-06 4:06 [PATCH v4 1/4] cache-tree: Create/update cache-tree on checkout David Turner
2014-07-06 4:06 ` [PATCH v4 2/4] test-dump-cache-tree: invalid trees are not errors David Turner
2014-07-07 19:27 ` Junio C Hamano
2014-07-06 4:06 ` [PATCH v4 3/4] cache-tree: subdirectory tests David Turner
2014-07-06 8:10 ` Eric Sunshine
2014-07-07 19:15 ` Junio C Hamano [this message]
2014-07-06 4:06 ` [PATCH v4 4/4] cache-tree: Write updated cache-tree after commit David Turner
2014-07-07 20:03 ` Junio C Hamano
2014-07-08 0:26 ` Junio C Hamano
2014-07-08 10:32 ` Duy Nguyen
2014-07-08 17:05 ` Junio C Hamano
2014-07-09 1:58 ` Duy Nguyen
2014-07-08 18:32 ` Junio C Hamano
2014-07-08 19:15 ` Junio C Hamano
2014-07-07 18:58 ` [PATCH v4 1/4] cache-tree: Create/update cache-tree on checkout Junio C Hamano
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqegxxc75w.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=dturner@twitter.com \
--cc=dturner@twopensource.com \
--cc=git@vger.kernel.org \
/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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.