Browse Source

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>
maint
Eric Wong 18 years ago committed by Junio C Hamano
parent
commit
56cf9806a9
  1. 2
      t/lib-git-svn.sh
  2. 53
      t/t4200-rerere.sh
  3. 6
      t/test-lib.sh

2
t/lib-git-svn.sh

@ -46,5 +46,5 @@ rawsvnrepo="$svnrepo" @@ -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"
}

53
t/t4200-rerere.sh

@ -112,39 +112,26 @@ rr2=.git/rr-cache/$sha2 @@ -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.

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)"

touch -m -t "$predate1" $rr/preimage
touch -m -t "$predate2" $rr2/preimage

test_expect_success 'garbage collection (part1)' 'git rerere gc'

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

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
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))

test-chmtime =$almost_60_days_ago $rr/preimage
test-chmtime =$almost_15_days_ago $rr2/preimage

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-chmtime =$just_over_60_days_ago $rr/preimage
test-chmtime =$just_over_15_days_ago $rr2/preimage

test_expect_success 'garbage collection (part2)' 'git rerere gc'

test_expect_success 'old records rest in peace' \
"test ! -f $rr/preimage && test ! -f $rr2/preimage"

test_done


6
t/test-lib.sh

@ -264,6 +264,12 @@ test -d ../templates/blt || { @@ -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"

Loading…
Cancel
Save