more war on "sleep" in tests
Two more tests that sleep only to waste tick can be converted to use test_tick and take expiry parameters relative to $test_tick. The basic idea is to replace "sleep 1" with "test_tick" to cause the "time" to pass. These tests are interested in expiring things with "now" as the timestamp, soo use a timestamp relative to $test_tick to give them more stability and reproducibility. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
eb523a8d79
commit
713c79e84b
@ -8,6 +8,7 @@ test_expect_success 'objects in packs marked .keep are not repacked' '
|
||||
echo content1 > file1 &&
|
||||
echo content2 > file2 &&
|
||||
git add . &&
|
||||
test_tick &&
|
||||
git commit -m initial_commit &&
|
||||
# Create two packs
|
||||
# The first pack will contain all of the objects except one
|
||||
@ -40,6 +41,7 @@ test_expect_success 'loose objects in alternate ODB are not repacked' '
|
||||
echo content3 > file3 &&
|
||||
objsha1=$(GIT_OBJECT_DIRECTORY=alt_objects git hash-object -w file3) &&
|
||||
git add file3 &&
|
||||
test_tick &&
|
||||
git commit -m commit_file3 &&
|
||||
git repack -a -d -l &&
|
||||
git prune-packed &&
|
||||
@ -73,6 +75,7 @@ test_expect_success 'packed obs in alt ODB are repacked when local repo has pack
|
||||
rm -f .git/objects/pack/* &&
|
||||
echo new_content >> file1 &&
|
||||
git add file1 &&
|
||||
test_tick &&
|
||||
git commit -m more_content &&
|
||||
git repack &&
|
||||
git repack -a -d &&
|
||||
@ -118,8 +121,8 @@ test_expect_success 'packed unreachable obs in alternate ODB are not loosened' '
|
||||
mv .git/objects/pack/* alt_objects/pack/ &&
|
||||
csha1=$(git rev-parse HEAD^{commit}) &&
|
||||
git reset --hard HEAD^ &&
|
||||
sleep 1 &&
|
||||
git reflog expire --expire=now --expire-unreachable=now --all &&
|
||||
test_tick &&
|
||||
git reflog expire --expire=$test_tick --expire-unreachable=$test_tick --all &&
|
||||
# The pack-objects call on the next line is equivalent to
|
||||
# git repack -A -d without the call to prune-packed
|
||||
git pack-objects --honor-pack-keep --non-empty --all --reflog \
|
||||
@ -156,7 +159,7 @@ test_expect_success 'objects made unreachable by grafts only are kept' '
|
||||
H1=$(git rev-parse HEAD^) &&
|
||||
H2=$(git rev-parse HEAD^^) &&
|
||||
echo "$H0 $H2" > .git/info/grafts &&
|
||||
git reflog expire --expire=now --expire-unreachable=now --all &&
|
||||
git reflog expire --expire=$test_tick --expire-unreachable=$test_tick --all &&
|
||||
git repack -a -d &&
|
||||
git cat-file -t $H1
|
||||
'
|
||||
|
@ -11,17 +11,20 @@ tsha1=
|
||||
test_expect_success '-A with -d option leaves unreachable objects unpacked' '
|
||||
echo content > file1 &&
|
||||
git add . &&
|
||||
test_tick &&
|
||||
git commit -m initial_commit &&
|
||||
# create a transient branch with unique content
|
||||
git checkout -b transient_branch &&
|
||||
echo more content >> file1 &&
|
||||
# record the objects created in the database for file, commit, tree
|
||||
fsha1=$(git hash-object file1) &&
|
||||
test_tick &&
|
||||
git commit -a -m more_content &&
|
||||
csha1=$(git rev-parse HEAD^{commit}) &&
|
||||
tsha1=$(git rev-parse HEAD^{tree}) &&
|
||||
git checkout master &&
|
||||
echo even more content >> file1 &&
|
||||
test_tick &&
|
||||
git commit -a -m even_more_content &&
|
||||
# delete the transient branch
|
||||
git branch -D transient_branch &&
|
||||
@ -34,9 +37,11 @@ test_expect_success '-A with -d option leaves unreachable objects unpacked' '
|
||||
git show $fsha1 &&
|
||||
git show $csha1 &&
|
||||
git show $tsha1 &&
|
||||
# now expire the reflog
|
||||
sleep 1 &&
|
||||
git reflog expire --expire-unreachable=now --all &&
|
||||
# now expire the reflog, while keeping reachable ones but expiring
|
||||
# unreachables immediately
|
||||
test_tick &&
|
||||
sometimeago=$(( $test_tick - 10000 )) &&
|
||||
git reflog expire --expire=$sometimeago --expire-unreachable=$test_tick --all &&
|
||||
# and repack
|
||||
git repack -A -d -l &&
|
||||
# verify objects are retained unpacked
|
||||
@ -71,7 +76,7 @@ test_expect_success '-A without -d option leaves unreachable objects packed' '
|
||||
test 1 = $(ls -1 .git/objects/pack/pack-*.pack | wc -l) &&
|
||||
packfile=$(ls .git/objects/pack/pack-*.pack) &&
|
||||
git branch -D transient_branch &&
|
||||
sleep 1 &&
|
||||
test_tick &&
|
||||
git repack -A -l &&
|
||||
test ! -f "$fsha1path" &&
|
||||
test ! -f "$csha1path" &&
|
||||
|
Loading…
Reference in New Issue
Block a user