t4200: skip gc-rerere test on systems with non GNU date.
authorJunio C Hamano <junkio@cox.net>
Wed, 7 Feb 2007 18:42:08 +0000 (10:42 -0800)
committerJunio C Hamano <junkio@cox.net>
Wed, 7 Feb 2007 18:43:56 +0000 (10:43 -0800)
Quite nonstandard "date -d @11111111 +%s" does not even fail on
OpenBSD but gives the current date in "seconds since epoch"
format, which is useless for the purpose of this test.  We want
to make sure that this returns exactly the same input before
proceeding.

Signed-off-by: Junio C Hamano <junkio@cox.net>
t/t4200-rerere.sh

index 91be272ac4fd905722d57cae2b7690a42739411a..c571a1bd744582c6be68504887cf8620514603b8 100755 (executable)
@@ -113,8 +113,11 @@ mkdir $rr2
 echo Hello > $rr2/preimage
 
 case "$(date -d @11111111 +%s 2>/dev/null)" in
-[1-9]*)
-       # it is a recent GNU date. good.
+11111111)
+       # 'date' must be able to take arbitrary input with @11111111 notation.
+       # for this test to succeed.  We should fix this part using more
+       # portable script someday.
+
        now=$(date +%s)
        almost_15_days_ago=$(($now+60-15*86400))
        just_over_15_days_ago=$(($now-1-15*86400))
@@ -124,30 +127,24 @@ case "$(date -d @11111111 +%s 2>/dev/null)" in
        predate2="$(date -d "@$almost_15_days_ago" +%Y%m%d%H%M.%S)"
        postdate1="$(date -d "@$just_over_60_days_ago" +%Y%m%d%H%M.%S)"
        postdate2="$(date -d "@$just_over_15_days_ago" +%Y%m%d%H%M.%S)"
-       ;;
-*)
-       # it is not GNU date. oh, well.
-       predate1="$(date +%Y%m%d%H%M.%S)"
-       predate2="$(date +%Y%m%d%H%M.%S)"
-       postdate1='200610010000.00'
-       postdate2='200612010000.00'
-esac
 
-touch -m -t "$predate1" $rr/preimage
-touch -m -t "$predate2" $rr2/preimage
+       touch -m -t "$predate1" $rr/preimage
+       touch -m -t "$predate2" $rr2/preimage
 
-test_expect_success 'garbage collection (part1)' 'git rerere gc'
+       test_expect_success 'garbage collection (part1)' 'git rerere gc'
 
-test_expect_success 'young records still live' \
-       "test -f $rr/preimage -a -f $rr2/preimage"
+       test_expect_success 'young records still live' \
+               "test -f $rr/preimage -a -f $rr2/preimage"
 
-touch -m -t "$postdate1" $rr/preimage
-touch -m -t "$postdate2" $rr2/preimage
+       touch -m -t "$postdate1" $rr/preimage
+       touch -m -t "$postdate2" $rr2/preimage
 
-test_expect_success 'garbage collection (part2)' 'git rerere gc'
+       test_expect_success 'garbage collection (part2)' 'git rerere gc'
 
-test_expect_success 'old records rest in peace' \
-       "test ! -f $rr/preimage -a ! -f $rr2/preimage"
+       test_expect_success 'old records rest in peace' \
+               "test ! -f $rr/preimage -a ! -f $rr2/preimage"
+       ;;
+esac
 
 test_done