perf-test: split basic into 00-new, 01-dump-restore, and 02-tag

We use the new "time_start" function to restore the database from cache
if possible.
This commit is contained in:
David Bremner 2012-12-05 21:34:30 -04:00
parent 5c35791d7c
commit 51b0f8ff33
6 changed files with 54 additions and 23 deletions

19
performance-test/00-new Executable file
View file

@ -0,0 +1,19 @@
#!/bin/bash
test_description='notmuch new'
. ./perf-test-lib.sh
uncache_database
time_start
time_run 'initial notmuch new' 'notmuch new'
cache_database
for i in $(seq 2 6); do
time_run "notmuch new #$i" 'notmuch new'
done
time_done

View file

@ -0,0 +1,12 @@
#!/bin/bash
test_description='dump and restore'
. ./perf-test-lib.sh
time_start
time_run 'dump *' 'notmuch dump > tags.out'
time_run 'restore *' 'notmuch restore < tags.out'
time_done

14
performance-test/02-tag Executable file
View file

@ -0,0 +1,14 @@
#!/bin/bash
test_description='tagging'
. ./perf-test-lib.sh
time_start
time_run 'tag * +new_tag' "notmuch tag +new_tag '*'"
time_run 'tag * +existing_tag' "notmuch tag +new_tag '*'"
time_run 'tag * -existing_tag' "notmuch tag -new_tag '*'"
time_run 'tag * -missing_tag' "notmuch tag -new_tag '*'"
time_done

View file

@ -51,8 +51,8 @@ Each test script supports the following arguments
Writing tests Writing tests
------------- -------------
Have a look at "basic" for an example. Sourcing "perf-test-lib.sh" is Have a look at "01-dump-restore" for an example. Sourcing
mandatory. Utility functions include "perf-test-lib.sh" is mandatory. Utility functions include
- 'add_email_corpus' unpacks a set of messages and adds them to the database. - 'add_email_corpus' unpacks a set of messages and adds them to the database.
- 'cache_database': makes a snapshot of the current database - 'cache_database': makes a snapshot of the current database
@ -62,3 +62,7 @@ mandatory. Utility functions include
cannot find a cache of the appropriate corpus. cannot find a cache of the appropriate corpus.
- 'time_done' does the cleanup; comment it out or pass --debug to the - 'time_done' does the cleanup; comment it out or pass --debug to the
script to leave the temporary files around. script to leave the temporary files around.
Scripts are run in the order specified in notmuch-perf-test. In the
future this order might be chosen automatically so please follow the
convention of starting the name with two digits to specify the order.

View file

@ -1,20 +0,0 @@
#!/bin/bash
. ./perf-test-lib.sh
uncache_database
add_email_corpus
print_header
time_run 'initial notmuch new' 'notmuch new'
cache_database
time_run 'second notmuch new' 'notmuch new'
time_run 'dump *' 'notmuch dump > tags.out'
time_run 'restore *' 'notmuch restore < tags.out'
time_run 'tag * +new_tag' "notmuch tag +new_tag '*'"
time_done

View file

@ -17,7 +17,9 @@ fi
cd $(dirname "$0") cd $(dirname "$0")
TESTS=" TESTS="
basic 00-new
01-dump-restore
02-tag
" "
for test in $TESTS; do for test in $TESTS; do