sha1_file: restore OBJECT_INFO_QUICK functionality
[gitweb.git] / t / t3210-pack-refs.sh
index 4b6583628302247f1c6abf589f8029b7a9560bc4..afa27ffe2d869a5e7fdf8318d5b9957208a96c52 100755 (executable)
@@ -194,7 +194,7 @@ test_expect_success 'notice d/f conflict with existing ref' '
        test_must_fail git branch foo/bar/baz/lots/of/extra/components
 '
 
-test_expect_failure 'reject packed-refs with unterminated line' '
+test_expect_success 'reject packed-refs with unterminated line' '
        cp .git/packed-refs .git/packed-refs.bak &&
        test_when_finished "mv .git/packed-refs.bak .git/packed-refs" &&
        printf "%s" "$HEAD refs/zzzzz" >>.git/packed-refs &&
@@ -203,7 +203,7 @@ test_expect_failure 'reject packed-refs with unterminated line' '
        test_cmp expected_err err
 '
 
-test_expect_failure 'reject packed-refs containing junk' '
+test_expect_success 'reject packed-refs containing junk' '
        cp .git/packed-refs .git/packed-refs.bak &&
        test_when_finished "mv .git/packed-refs.bak .git/packed-refs" &&
        printf "%s\n" "bogus content" >>.git/packed-refs &&
@@ -212,7 +212,7 @@ test_expect_failure 'reject packed-refs containing junk' '
        test_cmp expected_err err
 '
 
-test_expect_failure 'reject packed-refs with a short SHA-1' '
+test_expect_success 'reject packed-refs with a short SHA-1' '
        cp .git/packed-refs .git/packed-refs.bak &&
        test_when_finished "mv .git/packed-refs.bak .git/packed-refs" &&
        printf "%.7s %s\n" $HEAD refs/zzzzz >>.git/packed-refs &&
@@ -238,4 +238,19 @@ test_expect_success 'retry acquiring packed-refs.lock' '
        git -c core.packedrefstimeout=3000 pack-refs --all --prune
 '
 
+test_expect_success SYMLINKS 'pack symlinked packed-refs' '
+       # First make sure that symlinking works when reading:
+       git update-ref refs/heads/loosy refs/heads/master &&
+       git for-each-ref >all-refs-before &&
+       mv .git/packed-refs .git/my-deviant-packed-refs &&
+       ln -s my-deviant-packed-refs .git/packed-refs &&
+       git for-each-ref >all-refs-linked &&
+       test_cmp all-refs-before all-refs-linked &&
+       git pack-refs --all --prune &&
+       git for-each-ref >all-refs-packed &&
+       test_cmp all-refs-before all-refs-packed &&
+       test -h .git/packed-refs &&
+       test "$(readlink .git/packed-refs)" = "my-deviant-packed-refs"
+'
+
 test_done