test-dump-cache-tree: invalid trees are not errors
[gitweb.git] / t / t0090-cache-tree.sh
index f97256292e9f7d3f6cc69e790284382e09584921..98fb1ab6daab92ffd54f7ce82bccd4d10896def9 100755 (executable)
@@ -17,15 +17,13 @@ cmp_cache_tree () {
 # test-dump-cache-tree already verifies that all existing data is
 # correct.
 test_shallow_cache_tree () {
-       echo "SHA " \
-           "($(git ls-files|wc -l) entries, 0 subtrees)" >expect &&
+       printf "SHA  (%d entries, 0 subtrees)\n" $(git ls-files|wc -l) >expect &&
        cmp_cache_tree expect
 }
 
 test_invalid_cache_tree () {
        echo "invalid                                   (0 subtrees)" >expect &&
-       echo "SHA #(ref) " \
-           "($(git ls-files|wc -l) entries, 0 subtrees)" >>expect &&
+       printf "SHA #(ref)  (%d entries, 0 subtrees)\n" $(git ls-files|wc -l) >>expect &&
        cmp_cache_tree expect
 }
 
@@ -46,14 +44,14 @@ test_expect_success 'read-tree HEAD establishes cache-tree' '
 
 test_expect_success 'git-add invalidates cache-tree' '
        test_when_finished "git reset --hard; git read-tree HEAD" &&
-       echo "I changed this file" > foo &&
+       echo "I changed this file" >foo &&
        git add foo &&
        test_invalid_cache_tree
 '
 
 test_expect_success 'update-index invalidates cache-tree' '
        test_when_finished "git reset --hard; git read-tree HEAD" &&
-       echo "I changed this file" > foo &&
+       echo "I changed this file" >foo &&
        git update-index --add foo &&
        test_invalid_cache_tree
 '
@@ -87,9 +85,22 @@ test_expect_success 'reset --hard without index gives cache-tree' '
        test_shallow_cache_tree
 '
 
-test_expect_failure 'checkout gives cache-tree' '
+test_expect_success 'checkout gives cache-tree' '
+       git tag current &&
        git checkout HEAD^ &&
        test_shallow_cache_tree
 '
 
+test_expect_success 'checkout -b gives cache-tree' '
+       git checkout current &&
+       git checkout -b prev HEAD^ &&
+       test_shallow_cache_tree
+'
+
+test_expect_success 'checkout -B gives cache-tree' '
+       git checkout current &&
+       git checkout -B prev HEAD^ &&
+       test_shallow_cache_tree
+'
+
 test_done