The unified diff between revisions [9b09f962..] and [84fd07d7..] is displayed below. It can also be downloaded as a raw diff.
# # # add_file "PROCEDURE" # content [cb945ce991124872bc9e32660646774952f391d1] # ============================================================ --- PROCEDURE cb945ce991124872bc9e32660646774952f391d1 +++ PROCEDURE cb945ce991124872bc9e32660646774952f391d1 @@ -0,0 +1,97 @@ +#!/bin/sh + +# A potential test procedure. This is suitable even for candidates that don't +# have migration code (such as limited-length forward deltas, which can populate +# a database for testing using pull). +# +# MTO_HEAD - normal monotone mainline +# MTO_TEST - a test binary +# SOURCE_DB - the source dataset +# TEST_BRANCH - a source dataset branch to test checkouts (such as n.v.m) +# REVS_PER_SYNC - how many revs to sync at a time + +# SEED - a random seed + +# PURGE - get a cold cache + +# This assumes appropriate hook files etc. + +echo '"Migrating"' $SOURCE_DB via pull + +# TODO: --quiet? +$MTO_TEST -d test.db db init +$MTO_HEAD -d $SOURCE_DB serve \* & +$MTO_TEST -d test.db pull localhost \* +kill %1 + +echo "Producing incremental pull test db" + +rm -f serve.db +rm -f pull.db +./on_the_fly.py test.db $REVS_PER_SYNC $MTO_TEST $MTO_TEST $SEED + +mv pull.db incremental.db + +echo "=== Disk usage, incremental ===" +du incremental.db +du -a incremental.db + +$MTO_TEST -d cleanpull.db db init +$PURGE +$MTO_TEST 2>&1 > /dev/null + +time $MTO_TEST -d incremental.db serve \* & +echo "=== Clean pull timing 1, cold ===" +time $MTO_TEST -d cleanpull.db pull localhost \* +echo "=== Clean serve timing 1, cold ===" +kill %1 + +rm cleanpull.db +$MTO_TEST -d cleanpull.db db init +time $MTO_TEST -d incremental.db serve \* & +echo "=== Clean pull timing 1, warm ===" +time $MTO_TEST -d cleanpull.db pull localhost \* +echo "=== Clean serve timing 1, warm ===" +kill %1 + +echo "=== Disk usage, cleanpull ===" +du cleanpull.db +du -a cleanpull.db.db + +echo "Checkout timings" + +rm -rf test_checkout +$PURGE +$MTO_TEST 2>&1 > /dev/null +echo "=== Checkout incremental, cold ===" +time $MTO_TEST -d incremental.db co -b $TEST_BRANCH test_checkout +rm -rf test_checkout +echo "=== Checkout incremental, warm ===" +time $MTO_TEST -d incremental.db co -b $TEST_BRANCH test_checkout +rm -rf test_checkout + +$PURGE +$MTO_TEST 2>&1 > /dev/null +echo "=== Checkout cleanpull, cold ===" +time $MTO_TEST -d cleanpull.db co -b $TEST_BRANCH test_checkout +rm -rf test_checkout +echo "=== Checkout cleanpull, warm ===" +time $MTO_TEST -d cleanpull.db co -b $TEST_BRANCH test_checkout +rm -rf test_checkout + +echo "Log timings" +HEAD=`$MTO_TEST -d cleanpull.db automate heads $TEST_BRANCH | head -1` + +$PURGE +$MTO_TEST 2>&1 > /dev/null +echo "=== log --diffs --last=40 cleanpull, cold ===" +time $MTO_TEST -d cleanpull.db log -r $HEAD -b $TEST_BRANCH --last=40 --diffs > /dev/null +echo "=== log --diffs --last=40 cleanpull, warm ===" +time $MTO_TEST -d cleanpull.db log -r $HEAD -b $TEST_BRANCH --last=40 --diffs > /dev/null + +$PURGE +$MTO_TEST 2>&1 > /dev/null +echo "=== log --diffs --last=40 incremental, cold ===" +time $MTO_TEST -d incremental.db log -r $HEAD -b $TEST_BRANCH --last=40 --diffs > /dev/null +echo "=== log --diffs --last=40 incremental, warm ===" +time $MTO_TEST -d incremental.db log -r $HEAD -b $TEST_BRANCH --last=40 --diffs > /dev/null