From 7beeb8c88a014ecbc53d8241f10683b3c4c16228 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sat, 17 Nov 2012 12:28:15 -0400 Subject: test: initial performance testing infrastructure This is not near as fancy as as the unit tests, on the theory that the code should typically be crashing when performance tuning. Nonetheless, there is plenty of room for improvement. Several more of the pieces of the test infrastructure (e.g. the option parsing) could be factored out into test/test-lib-common.sh --- performance-test/perf-test-lib.sh | 67 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 performance-test/perf-test-lib.sh (limited to 'performance-test/perf-test-lib.sh') diff --git a/performance-test/perf-test-lib.sh b/performance-test/perf-test-lib.sh new file mode 100644 index 00000000..80ec1eb0 --- /dev/null +++ b/performance-test/perf-test-lib.sh @@ -0,0 +1,67 @@ +. ./version.sh + +. ../test/test-lib-common.sh + +set -e + +if ! test -x ../notmuch +then + echo >&2 'You do not seem to have built notmuch yet.' + exit 1 +fi + +add_email_corpus () +{ + rm -rf ${MAIL_DIR} + + case "$1" in + --small) + arg="mail/enron/bailey-s" + ;; + --medium) + arg="mail/notmuch-archive" + ;; + *) + arg=mail + esac + + if command -v pixz > /dev/null; then + XZ=pixz + else + XZ=xz + fi + + printf "Unpacking corpus\n" + tar --checkpoint=.5000 --extract --strip-components=1 \ + --directory ${TMP_DIRECTORY} \ + --use-compress-program ${XZ} \ + --file ../download/notmuch-email-corpus-${PERFTEST_VERSION}.tar.xz \ + notmuch-email-corpus/"$arg" + + printf "\n" +} + +print_header () { + printf "[v%4s] Wall(s)\tUsr(s)\tSys(s)\tRes(K)\tIn\tOut\n" \ + ${PERFTEST_VERSION} +} + +time_run () { + printf "%-22s" "$1" + if test "$verbose" != "t"; then exec 4>test.output 3>&4; fi + if ! eval >&3 "/usr/bin/time -f '%e\t%U\t%S\t%M\t%I\t%O' $2" ; then + test_failure=$(($test_failure + 1)) + fi +} + +time_done () { + if [ "$test_failure" = "0" ]; then + rm -rf "$remove_tmp" + exit 0 + else + exit 1 + fi +} + +cd -P "$test" || error "Cannot setup test environment" +test_failure=0 -- cgit v1.2.3