Fix "git log --diff-filter" bug
[gitweb.git] / t / t1410-reflog.sh
index 738d1513d49356d4e7a8eaec4b5df61a0e07881c..f959aae84630ddbb68304868b1a025b7c2d33d10 100755 (executable)
@@ -20,7 +20,7 @@ check_have () {
 }
 
 check_fsck () {
-       output=$(git fsck-objects --full)
+       output=$(git fsck --full)
        case "$1" in
        '')
                test -z "$output" ;;
@@ -71,6 +71,8 @@ test_expect_success setup '
        check_fsck &&
 
        chmod +x C &&
+       ( test "`git config --bool core.filemode`" != false ||
+         echo executable >>C ) &&
        git add C &&
        test_tick && git commit -m dragon &&
        L=`git rev-parse --verify HEAD` &&
@@ -173,4 +175,22 @@ test_expect_success 'recover and check' '
 
 '
 
+test_expect_success 'prune --expire' '
+
+       before=$(git count-objects | sed "s/ .*//") &&
+       BLOB=$(echo aleph | git hash-object -w --stdin) &&
+       BLOB_FILE=.git/objects/$(echo $BLOB | sed "s/^../&\//") &&
+       test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
+       test -f $BLOB_FILE &&
+       git reset --hard &&
+       git prune --expire=1.hour.ago &&
+       test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
+       test -f $BLOB_FILE &&
+       test-chmtime -86500 $BLOB_FILE &&
+       git prune --expire 1.day &&
+       test $before = $(git count-objects | sed "s/ .*//") &&
+       ! test -f $BLOB_FILE
+
+'
+
 test_done