Re: [PATCH v4 3/4] cache-tree: subdirectory tests

2014-07-07 Thread Junio C Hamano
David Turner dtur...@twopensource.com writes:

 Add tests to confirm that invalidation of subdirectories nether over-
 nor under-invalidates.

 Signed-off-by: David Turner dtur...@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.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v4 3/4] cache-tree: subdirectory tests

2014-07-06 Thread Eric Sunshine
On Sun, Jul 6, 2014 at 12:06 AM, David Turner dtur...@twopensource.com wrote:
 Add tests to confirm that invalidation of subdirectories nether over-

s/nether/neither/

 nor under-invalidates.

 Signed-off-by: David Turner dtur...@twitter.com
 ---
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v4 3/4] cache-tree: subdirectory tests

2014-07-05 Thread David Turner
Add tests to confirm that invalidation of subdirectories nether over-
nor under-invalidates.

Signed-off-by: David Turner dtur...@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) 
+   fgrep $expect filtered
 }
 
 test_no_cache_tree () {
@@ -49,6 +52,25 @@ test_expect_success 'git-add invalidates cache-tree' '
test_invalid_cache_tree
 '
 
+test_expect_success 'git-add in subdir invalidates cache-tree' '
+   test_when_finished git reset --hard; git read-tree HEAD 
+   mkdir dirx 
+   echo I changed this file dirx/foo 
+   git add dirx/foo 
+   test_invalid_cache_tree
+'
+
+test_expect_success 'git-add in subdir does not invalidate sibling cache-tree' 
'
+   git tag no-children 
+   test_when_finished git reset --hard no-children; git read-tree HEAD 
+   mkdir dir1 dir2 
+   test_commit dir1/a 
+   test_commit dir2/b 
+   echo I changed this file dir1/a 
+   git add dir1/a 
+   test_invalid_cache_tree dir1/
+'
+
 test_expect_success 'update-index invalidates cache-tree' '
test_when_finished git reset --hard; git read-tree HEAD 
echo I changed this file foo 
-- 
2.0.0.390.gcb682f8

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html