Update tests to use test-chmtime

test-lib:
  Make sure test-chmtime has been built before starting.

t4200-rerere:
  Removed non-portable date dependency and avoid touch
  Avoid "test -a" which isn't portable, either

lib-git-svn:
  Use test-chmtime instead of Perl one-liner to poke

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Eric Wong 2007-02-24 16:59:52 -08:00 committed by Junio C Hamano
parent 17e4836875
commit 56cf9806a9
3 changed files with 21 additions and 28 deletions

View file

@ -46,5 +46,5 @@ rawsvnrepo="$svnrepo"
svnrepo="file://$svnrepo"
poke() {
perl -e '@x = stat($ARGV[0]); utime($x[8], $x[9] + 1, $ARGV[0])' "$1"
test-chmtime +1 "$1"
}

View file

@ -112,39 +112,26 @@ rr2=.git/rr-cache/$sha2
mkdir $rr2
echo Hello > $rr2/preimage
case "$(date -d @11111111 +%s 2>/dev/null)" in
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.
almost_15_days_ago=$((60-15*86400))
just_over_15_days_ago=$((-1-15*86400))
almost_60_days_ago=$((60-60*86400))
just_over_60_days_ago=$((-1-60*86400))
now=$(date +%s)
almost_15_days_ago=$(($now+60-15*86400))
just_over_15_days_ago=$(($now-1-15*86400))
almost_60_days_ago=$(($now+60-60*86400))
just_over_60_days_ago=$(($now-1-60*86400))
predate1="$(date -d "@$almost_60_days_ago" +%Y%m%d%H%M.%S)"
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)"
test-chmtime =$almost_60_days_ago $rr/preimage
test-chmtime =$almost_15_days_ago $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 && test -f $rr2/preimage"
test_expect_success 'young records still live' \
"test -f $rr/preimage -a -f $rr2/preimage"
test-chmtime =$just_over_60_days_ago $rr/preimage
test-chmtime =$just_over_15_days_ago $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"
;;
esac
test_expect_success 'old records rest in peace' \
"test ! -f $rr/preimage && test ! -f $rr2/preimage"
test_done

View file

@ -264,6 +264,12 @@ test -d ../templates/blt || {
error "You haven't built things yet, have you?"
}
if ! test -x ../test-chmtime; then
echo >&2 'You need to build test-chmtime:'
echo >&2 'Run "make test-chmtime" in the source (toplevel) directory'
exit 1
fi
# Test repository
test=trash
rm -fr "$test"