completion tests: don't add test cruft to the test repository
[gitweb.git] / t / t6500-gc.sh
index b1a63655f98dfc8d19c1a80f86652654cd9cade6..1762dfa6a306ca672e3d3430b020f1b01a16da7e 100755 (executable)
@@ -9,6 +9,11 @@ test_expect_success 'gc empty repository' '
        git gc
 '
 
+test_expect_success 'gc does not leave behind pid file' '
+       git gc &&
+       test_path_is_missing .git/gc.pid
+'
+
 test_expect_success 'gc --gobbledegook' '
        test_expect_code 129 git gc --nonsense 2>err &&
        test_i18ngrep "[Uu]sage: git gc" err
@@ -25,4 +30,42 @@ test_expect_success 'gc -h with invalid configuration' '
        test_i18ngrep "[Uu]sage" broken/usage
 '
 
+test_expect_success 'gc is not aborted due to a stale symref' '
+       git init remote &&
+       (
+               cd remote &&
+               test_commit initial &&
+               git clone . ../client &&
+               git branch -m develop &&
+               cd ../client &&
+               git fetch --prune &&
+               git gc
+       )
+'
+
+test_expect_success 'auto gc with too many loose objects does not attempt to create bitmaps' '
+       test_config gc.auto 3 &&
+       test_config gc.autodetach false &&
+       test_config pack.writebitmaps true &&
+       # We need to create two object whose sha1s start with 17
+       # since this is what git gc counts.  As it happens, these
+       # two blobs will do so.
+       test_commit 263 &&
+       test_commit 410 &&
+       # Our first gc will create a pack; our second will create a second pack
+       git gc --auto &&
+       ls .git/objects/pack | sort >existing_packs &&
+       test_commit 523 &&
+       test_commit 790 &&
+
+       git gc --auto 2>err &&
+       test_i18ngrep ! "^warning:" err &&
+       ls .git/objects/pack/ | sort >post_packs &&
+       comm -1 -3 existing_packs post_packs >new &&
+       comm -2 -3 existing_packs post_packs >del &&
+       test_line_count = 0 del && # No packs are deleted
+       test_line_count = 2 new # There is one new pack and its .idx
+'
+
+
 test_done