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 v5 4/4] cache-tree: Write updated cache-tree after commit
Date: Tue, 08 Jul 2014 10:55:08 -0700 [thread overview]
Message-ID: <xmqqoawzag77.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1404779625-16972-4-git-send-email-dturner@twitter.com> (David Turner's message of "Mon, 7 Jul 2014 17:33:45 -0700")
David Turner <dturner@twopensource.com> writes:
> @@ -16,8 +16,26 @@ cmp_cache_tree () {
> # We don't bother with actually checking the SHA1:
> # test-dump-cache-tree already verifies that all existing data is
> # correct.
> -test_shallow_cache_tree () {
> - printf "SHA (%d entries, 0 subtrees)\n" $(git ls-files|wc -l) >expect &&
> +generate_expected_cache_tree () {
> + dir="$1${1:+/}" &&
> + parent="$2" &&
> + # ls-files might have foo/bar, foo/bar/baz, and foo/bar/quux
> + # We want to count only foo because it's the only direct child
> + subtrees=$(git ls-files|grep /|cut -d / -f 1|uniq) &&
> + subtree_count=$(echo "$subtrees"|awk '$1 {++c} END {print c}') &&
> + entries=$(git ls-files|wc -l) &&
> + printf "SHA $dir (%d entries, %d subtrees)\n" $entries $subtree_count &&
> + for subtree in $subtrees
> + do
> + cd "$subtree"
> + generate_expected_cache_tree "$dir$subtree" $dir || return 1
> + cd ..
If the || return 1 ever triggers, would the main test process end up
in an unexpected place? A test piece executes test_cache_tree whose
control eventually reaches here and returns failure; the next test
piece will start at a wrong directory, no?
> + done &&
> + dir=$parent
> +}
> +
> +test_cache_tree () {
> + generate_expected_cache_tree >expect &&
> cmp_cache_tree expect
> }
>
> @@ -33,14 +51,14 @@ test_no_cache_tree () {
> cmp_cache_tree expect
> }
>
> -test_expect_failure 'initial commit has cache-tree' '
> +test_expect_success 'initial commit has cache-tree' '
> test_commit foo &&
> - test_shallow_cache_tree
> + test_cache_tree
> '
>
> test_expect_success 'read-tree HEAD establishes cache-tree' '
> git read-tree HEAD &&
> - test_shallow_cache_tree
> + test_cache_tree
> '
prev parent reply other threads:[~2014-07-08 17:55 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-08 0:33 [PATCH v5 1/4] cache-tree: Create/update cache-tree on checkout David Turner
2014-07-08 0:33 ` [PATCH v5 2/4] test-dump-cache-tree: invalid trees are not errors David Turner
2014-07-08 0:33 ` [PATCH v5 3/4] cache-tree: subdirectory tests David Turner
2014-07-08 17:38 ` Junio C Hamano
2014-07-08 0:33 ` [PATCH v5 4/4] cache-tree: Write updated cache-tree after commit David Turner
2014-07-08 17:55 ` Junio C Hamano [this message]
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=xmqqoawzag77.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.