diff --git a/performance-test/00-new b/performance-test/00-new new file mode 100755 index 00000000..6f0b50c3 --- /dev/null +++ b/performance-test/00-new @@ -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 diff --git a/performance-test/01-dump-restore b/performance-test/01-dump-restore new file mode 100755 index 00000000..0ee3a282 --- /dev/null +++ b/performance-test/01-dump-restore @@ -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 diff --git a/performance-test/02-tag b/performance-test/02-tag new file mode 100755 index 00000000..78cecccc --- /dev/null +++ b/performance-test/02-tag @@ -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 diff --git a/performance-test/README b/performance-test/README index d36612d7..14816602 100644 --- a/performance-test/README +++ b/performance-test/README @@ -51,8 +51,8 @@ Each test script supports the following arguments Writing tests ------------- -Have a look at "basic" for an example. Sourcing "perf-test-lib.sh" is -mandatory. Utility functions include +Have a look at "01-dump-restore" for an example. Sourcing +"perf-test-lib.sh" is mandatory. Utility functions include - 'add_email_corpus' unpacks a set of messages and adds them to the 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. - 'time_done' does the cleanup; comment it out or pass --debug to the 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. diff --git a/performance-test/basic b/performance-test/basic deleted file mode 100755 index 41a7ff1a..00000000 --- a/performance-test/basic +++ /dev/null @@ -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 diff --git a/performance-test/notmuch-perf-test b/performance-test/notmuch-perf-test index 1bea3452..fc39d8a9 100755 --- a/performance-test/notmuch-perf-test +++ b/performance-test/notmuch-perf-test @@ -17,7 +17,9 @@ fi cd $(dirname "$0") TESTS=" - basic + 00-new + 01-dump-restore + 02-tag " for test in $TESTS; do