[PATCH] emacs: tag: fix compile warning

2013-05-15 Thread David Bremner
Mark Walters  writes:

> When compiling notmuch-tag.el there is a compile warning:
> notmuch-tag.el:27:1:Warning: cl package required at runtime
>


pushed the patch.

Someone (TM) should investigate the new cl- prefixed functions,
e.g. cl-loop which maybe me less hassle in the long run.

d




simplify and fix performance tests

2013-05-15 Thread David Bremner
david at tethera.net writes:

> Jani noticed the alleged file notmuch-memory-test was missing.
> Austin grumbled about explicitly adding tests to a list.
> This series should give them both something else to grumble about.

Pushed,

d


[PATCH] emacs: tag: fix compile warning

2013-05-15 Thread Tomi Ollila
On Tue, May 14 2013, Mark Walters  wrote:

> When compiling notmuch-tag.el there is a compile warning:
> notmuch-tag.el:27:1:Warning: cl package required at runtime
>
> Since we have decided to allow runtime use of cl we suppress this
> warning by adding a tail comment to the file.

> ---

LGTM.

Tomi


>
> This warning has irritated me for some time: thanks to Austin (on irc)
> for pointing out how to fix it.
>
> Best wishes
>
> Mark
>
>  emacs/notmuch-tag.el |4 
>  1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/emacs/notmuch-tag.el b/emacs/notmuch-tag.el
> index 75a438b..064cfa8 100644
> --- a/emacs/notmuch-tag.el
> +++ b/emacs/notmuch-tag.el
> @@ -292,3 +292,7 @@ begin with a \"+\" or a \"-\". If REVERSE is non-nil, 
> replace all
>  ;;
>  
>  (provide 'notmuch-tag)
> +
> +;; Local Variables:
> +;; byte-compile-warnings: (not cl-functions)
> +;; End:
> -- 
> 1.7.9.1
>
> ___
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch


simplify and fix performance tests

2013-05-15 Thread Austin Clements
LGTM.

Quoth david at tethera.net on May 15 at  8:02 am:
> Jani noticed the alleged file notmuch-memory-test was missing.
> Austin grumbled about explicitly adding tests to a list.
> This series should give them both something else to grumble about.


Re: [PATCH] emacs: tag: fix compile warning

2013-05-15 Thread David Bremner
Mark Walters  writes:

> When compiling notmuch-tag.el there is a compile warning:
> notmuch-tag.el:27:1:Warning: cl package required at runtime
>


pushed the patch.

Someone (TM) should investigate the new cl- prefixed functions,
e.g. cl-loop which maybe me less hassle in the long run.

d


___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: simplify and fix performance tests

2013-05-15 Thread David Bremner
da...@tethera.net writes:

> Jani noticed the alleged file notmuch-memory-test was missing.
> Austin grumbled about explicitly adding tests to a list.
> This series should give them both something else to grumble about.

Pushed,

d
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH] build: fix out-of-tree builds

2013-05-15 Thread Jani Nikula
On Wed, 15 May 2013, David Bremner  wrote:
> Jani Nikula  writes:
>>  # List all subdirectories here. Each contains its own Makefile.local
>> -subdirs := compat completion emacs lib man parse-time-string
>> -subdirs += performance-test util test
>> +subdirs = compat completion emacs lib man parse-time-string 
>> performance-test util test
>
> Is this a functional change or a cosmetic one?

Functional. All of it seems to be required for out-of-tree builds (*) to
work. I'm afraid I've forgotten exactly why both := and += make it fail
(I wrote the patch a few months ago).

Jani.


(*) For example:

$ cd /some/empty/dir
$ /path/to/notmuch/configure
$ make


Re: simplify and fix performance tests

2013-05-15 Thread Austin Clements
LGTM.

Quoth da...@tethera.net on May 15 at  8:02 am:
> Jani noticed the alleged file notmuch-memory-test was missing.
> Austin grumbled about explicitly adding tests to a list.
> This series should give them both something else to grumble about.
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


simplify and fix performance tests

2013-05-15 Thread Tomi Ollila
On Wed, May 15 2013, david at tethera.net wrote:

> Jani noticed the alleged file notmuch-memory-test was missing.
> Austin grumbled about explicitly adding tests to a list.
> This series should give them both something else to grumble about.

This test series looks good to me. It is consistent what was there
before and easies future development.

If there is desire to handle the cases where executed test
scripts exit nonzero that can be done in future commits
(in any case).

+1

Tomi


[PATCH] build: fix out-of-tree builds

2013-05-15 Thread Jani Nikula
Support for out-of-tree builds was added in
commit 3e4a9d60a9419621b08c647a306843d76c47c2cb
Author: Carl Worth 
Date:   Wed Mar 9 15:02:42 2011 -0800

build: Add support for non-source-directory builds.

and broken in
commit 7beeb8c88a014ecbc53d8241f10683b3c4c16228
Author: David Bremner 
Date:   Sat Nov 17 12:28:15 2012 -0400

test: initial performance testing infrastructure

Fix the build breakage.

Out-of-tree 'make test' has been broken since earlier than the above,
and remains broken, as does out-of-tree perf test, but at least the
build now works.

---

I didn't have the time to dig into the test and perf test breakage.
---
 Makefile|3 +--
 performance-test/Makefile.local |2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 73a8554..3301d30 100644
--- a/Makefile
+++ b/Makefile
@@ -3,8 +3,7 @@
 all:

 # List all subdirectories here. Each contains its own Makefile.local
-subdirs := compat completion emacs lib man parse-time-string
-subdirs += performance-test util test
+subdirs = compat completion emacs lib man parse-time-string performance-test 
util test

 # We make all targets depend on the Makefiles themselves.
 global_deps = Makefile Makefile.config Makefile.local \
diff --git a/performance-test/Makefile.local b/performance-test/Makefile.local
index 73aa963..e47219a 100644
--- a/performance-test/Makefile.local
+++ b/performance-test/Makefile.local
@@ -2,7 +2,7 @@

 dir := performance-test

-include $(dir)/version.sh
+include $(srcdir)/$(dir)/version.sh

 TIME_TEST_SCRIPT := ${dir}/notmuch-time-test
 MEMORY_TEST_SCRIPT := ${dir}/notmuch-memory-test
-- 
1.7.2.5



Re: [PATCH] emacs: tag: fix compile warning

2013-05-15 Thread Tomi Ollila
On Tue, May 14 2013, Mark Walters  wrote:

> When compiling notmuch-tag.el there is a compile warning:
> notmuch-tag.el:27:1:Warning: cl package required at runtime
>
> Since we have decided to allow runtime use of cl we suppress this
> warning by adding a tail comment to the file.

> ---

LGTM.

Tomi


>
> This warning has irritated me for some time: thanks to Austin (on irc)
> for pointing out how to fix it.
>
> Best wishes
>
> Mark
>
>  emacs/notmuch-tag.el |4 
>  1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/emacs/notmuch-tag.el b/emacs/notmuch-tag.el
> index 75a438b..064cfa8 100644
> --- a/emacs/notmuch-tag.el
> +++ b/emacs/notmuch-tag.el
> @@ -292,3 +292,7 @@ begin with a \"+\" or a \"-\". If REVERSE is non-nil, 
> replace all
>  ;;
>  
>  (provide 'notmuch-tag)
> +
> +;; Local Variables:
> +;; byte-compile-warnings: (not cl-functions)
> +;; End:
> -- 
> 1.7.9.1
>
> ___
> notmuch mailing list
> notmuch@notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH] build: fix out-of-tree builds

2013-05-15 Thread David Bremner
Jani Nikula  writes:
>  # List all subdirectories here. Each contains its own Makefile.local
> -subdirs := compat completion emacs lib man parse-time-string
> -subdirs += performance-test util test
> +subdirs = compat completion emacs lib man parse-time-string performance-test 
> util test

Is this a functional change or a cosmetic one?

d


Re: [PATCH] build: fix out-of-tree builds

2013-05-15 Thread Jani Nikula
On Wed, 15 May 2013, David Bremner  wrote:
> Jani Nikula  writes:
>>  # List all subdirectories here. Each contains its own Makefile.local
>> -subdirs := compat completion emacs lib man parse-time-string
>> -subdirs += performance-test util test
>> +subdirs = compat completion emacs lib man parse-time-string 
>> performance-test util test
>
> Is this a functional change or a cosmetic one?

Functional. All of it seems to be required for out-of-tree builds (*) to
work. I'm afraid I've forgotten exactly why both := and += make it fail
(I wrote the patch a few months ago).

Jani.


(*) For example:

$ cd /some/empty/dir
$ /path/to/notmuch/configure
$ make
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


Re: [PATCH] build: fix out-of-tree builds

2013-05-15 Thread David Bremner
Jani Nikula  writes:
>  # List all subdirectories here. Each contains its own Makefile.local
> -subdirs := compat completion emacs lib man parse-time-string
> -subdirs += performance-test util test
> +subdirs = compat completion emacs lib man parse-time-string performance-test 
> util test

Is this a functional change or a cosmetic one?

d
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH 4/4] perf-test: add notmuch-memory-test

2013-05-15 Thread da...@tethera.net
From: David Bremner 

Somehow this file was not added to the patch set which split the tests
into time and memory tests. Take advantage of the the "new" way of
running tests to avoid listing the explicitly.
---
 performance-test/notmuch-memory-test | 21 +
 1 file changed, 21 insertions(+)
 create mode 100755 performance-test/notmuch-memory-test

diff --git a/performance-test/notmuch-memory-test 
b/performance-test/notmuch-memory-test
new file mode 100755
index 000..3cf28c7
--- /dev/null
+++ b/performance-test/notmuch-memory-test
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+
+# Run tests
+#
+# Copyright (c) 2005 Junio C Hamano
+#
+# Adapted from a Makefile to a shell script by Carl Worth (2010)
+
+if [ ${BASH_VERSINFO[0]} -lt 4 ]; then
+echo "Error: The notmuch test suite requires a bash version >= 4.0"
+echo "due to use of associative arrays within the test suite."
+echo "Please try again with a newer bash (or help us fix the"
+echo "test suite to be more portable). Thanks."
+exit 1
+fi
+
+cd $(dirname "$0")
+
+for test in M*.sh; do
+./"$test" "$@"
+done
-- 
1.8.2.rc2



[PATCH 3/4] perf-test: run all appropriately named time tests

2013-05-15 Thread da...@tethera.net
From: David Bremner 

This avoids hassle with manually adding every test to the master list.
---
 performance-test/notmuch-time-test | 10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/performance-test/notmuch-time-test 
b/performance-test/notmuch-time-test
index 54a208f..7113efb 100755
--- a/performance-test/notmuch-time-test
+++ b/performance-test/notmuch-time-test
@@ -16,12 +16,6 @@ fi

 cd $(dirname "$0")

-TESTS="
-  T00-new
-  T01-dump-restore
-  T02-tag
-"
-
-for test in $TESTS; do
-./$test "$@"
+for test in T*.sh; do
+./"$test" "$@"
 done
-- 
1.8.2.rc2



[PATCH 2/4] perf-test: rename time tests to have .sh suffix

2013-05-15 Thread da...@tethera.net
From: David Bremner 

This will simplify notmuch time tests
---
 performance-test/T00-new | 15 ---
 performance-test/T00-new.sh  | 15 +++
 performance-test/T01-dump-restore| 13 -
 performance-test/T01-dump-restore.sh | 13 +
 performance-test/T02-tag | 14 --
 performance-test/T02-tag.sh  | 14 ++
 6 files changed, 42 insertions(+), 42 deletions(-)
 delete mode 100755 performance-test/T00-new
 create mode 100755 performance-test/T00-new.sh
 delete mode 100755 performance-test/T01-dump-restore
 create mode 100755 performance-test/T01-dump-restore.sh
 delete mode 100755 performance-test/T02-tag
 create mode 100755 performance-test/T02-tag.sh

diff --git a/performance-test/T00-new b/performance-test/T00-new
deleted file mode 100755
index 553bb8b..000
--- a/performance-test/T00-new
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-test_description='notmuch new'
-
-. ./perf-test-lib.sh
-
-uncache_database
-
-time_start
-
-for i in $(seq 2 6); do
-time_run "notmuch new #$i" 'notmuch new'
-done
-
-time_done
diff --git a/performance-test/T00-new.sh b/performance-test/T00-new.sh
new file mode 100755
index 000..553bb8b
--- /dev/null
+++ b/performance-test/T00-new.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+test_description='notmuch new'
+
+. ./perf-test-lib.sh
+
+uncache_database
+
+time_start
+
+for i in $(seq 2 6); do
+time_run "notmuch new #$i" 'notmuch new'
+done
+
+time_done
diff --git a/performance-test/T01-dump-restore 
b/performance-test/T01-dump-restore
deleted file mode 100755
index b2ff940..000
--- a/performance-test/T01-dump-restore
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-
-test_description='dump and restore'
-
-. ./perf-test-lib.sh
-
-time_start
-
-time_run 'load nmbug tags' 'notmuch restore --accumulate < 
corpus.tags/nmbug.sup-dump'
-time_run 'dump *' 'notmuch dump > tags.out'
-time_run 'restore *' 'notmuch restore < tags.out'
-
-time_done
diff --git a/performance-test/T01-dump-restore.sh 
b/performance-test/T01-dump-restore.sh
new file mode 100755
index 000..b2ff940
--- /dev/null
+++ b/performance-test/T01-dump-restore.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+test_description='dump and restore'
+
+. ./perf-test-lib.sh
+
+time_start
+
+time_run 'load nmbug tags' 'notmuch restore --accumulate < 
corpus.tags/nmbug.sup-dump'
+time_run 'dump *' 'notmuch dump > tags.out'
+time_run 'restore *' 'notmuch restore < tags.out'
+
+time_done
diff --git a/performance-test/T02-tag b/performance-test/T02-tag
deleted file mode 100755
index 78ceccc..000
--- a/performance-test/T02-tag
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/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/T02-tag.sh b/performance-test/T02-tag.sh
new file mode 100755
index 000..78ceccc
--- /dev/null
+++ b/performance-test/T02-tag.sh
@@ -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
-- 
1.8.2.rc2



[PATCH 1/4] perf-test: rename memory tests

2013-05-15 Thread da...@tethera.net
From: David Bremner 

The common suffix will help running them all automatically.
---
 performance-test/M00-new | 15 ---
 performance-test/M00-new.sh  | 15 +++
 performance-test/M01-dump-restore| 15 ---
 performance-test/M01-dump-restore.sh | 15 +++
 4 files changed, 30 insertions(+), 30 deletions(-)
 delete mode 100755 performance-test/M00-new
 create mode 100755 performance-test/M00-new.sh
 delete mode 100755 performance-test/M01-dump-restore
 create mode 100755 performance-test/M01-dump-restore.sh

diff --git a/performance-test/M00-new b/performance-test/M00-new
deleted file mode 100755
index 99c3f52..000
--- a/performance-test/M00-new
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-test_description='notmuch new'
-
-. ./perf-test-lib.sh
-
-# ensure initial 'notmuch new' is run by memory_start
-uncache_database
-
-memory_start
-
-# run 'notmuch new' a second time, to test different code paths
-memory_run "notmuch new" "notmuch new"
-
-memory_done
diff --git a/performance-test/M00-new.sh b/performance-test/M00-new.sh
new file mode 100755
index 000..99c3f52
--- /dev/null
+++ b/performance-test/M00-new.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+test_description='notmuch new'
+
+. ./perf-test-lib.sh
+
+# ensure initial 'notmuch new' is run by memory_start
+uncache_database
+
+memory_start
+
+# run 'notmuch new' a second time, to test different code paths
+memory_run "notmuch new" "notmuch new"
+
+memory_done
diff --git a/performance-test/M01-dump-restore 
b/performance-test/M01-dump-restore
deleted file mode 100755
index be5894a..000
--- a/performance-test/M01-dump-restore
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-test_description='dump and restore'
-
-. ./perf-test-lib.sh
-
-memory_start
-
-memory_run 'load nmbug tags' 'notmuch restore --accumulate 
--input=corpus.tags/nmbug.sup-dump'
-memory_run 'dump *' 'notmuch dump --output=tags.sup'
-memory_run 'restore *' 'notmuch restore --input=tags.sup'
-memory_run 'dump --format=batch-tag *' 'notmuch dump --format=batch-tag 
--output=tags.bt'
-memory_run 'restore --format=batch-tag *' 'notmuch restore --format=batch-tag 
--input=tags.bt'
-
-memory_done
diff --git a/performance-test/M01-dump-restore.sh 
b/performance-test/M01-dump-restore.sh
new file mode 100755
index 000..be5894a
--- /dev/null
+++ b/performance-test/M01-dump-restore.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+test_description='dump and restore'
+
+. ./perf-test-lib.sh
+
+memory_start
+
+memory_run 'load nmbug tags' 'notmuch restore --accumulate 
--input=corpus.tags/nmbug.sup-dump'
+memory_run 'dump *' 'notmuch dump --output=tags.sup'
+memory_run 'restore *' 'notmuch restore --input=tags.sup'
+memory_run 'dump --format=batch-tag *' 'notmuch dump --format=batch-tag 
--output=tags.bt'
+memory_run 'restore --format=batch-tag *' 'notmuch restore --format=batch-tag 
--input=tags.bt'
+
+memory_done
-- 
1.8.2.rc2



simplify and fix performance tests

2013-05-15 Thread da...@tethera.net
Jani noticed the alleged file notmuch-memory-test was missing.
Austin grumbled about explicitly adding tests to a list.
This series should give them both something else to grumble about.



Re: simplify and fix performance tests

2013-05-15 Thread Tomi Ollila
On Wed, May 15 2013, da...@tethera.net wrote:

> Jani noticed the alleged file notmuch-memory-test was missing.
> Austin grumbled about explicitly adding tests to a list.
> This series should give them both something else to grumble about.

This test series looks good to me. It is consistent what was there
before and easies future development.

If there is desire to handle the cases where executed test
scripts exit nonzero that can be done in future commits
(in any case).

+1

Tomi
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH 2/4] perf-test: rename time tests to have .sh suffix

2013-05-15 Thread david
From: David Bremner 

This will simplify notmuch time tests
---
 performance-test/T00-new | 15 ---
 performance-test/T00-new.sh  | 15 +++
 performance-test/T01-dump-restore| 13 -
 performance-test/T01-dump-restore.sh | 13 +
 performance-test/T02-tag | 14 --
 performance-test/T02-tag.sh  | 14 ++
 6 files changed, 42 insertions(+), 42 deletions(-)
 delete mode 100755 performance-test/T00-new
 create mode 100755 performance-test/T00-new.sh
 delete mode 100755 performance-test/T01-dump-restore
 create mode 100755 performance-test/T01-dump-restore.sh
 delete mode 100755 performance-test/T02-tag
 create mode 100755 performance-test/T02-tag.sh

diff --git a/performance-test/T00-new b/performance-test/T00-new
deleted file mode 100755
index 553bb8b..000
--- a/performance-test/T00-new
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-test_description='notmuch new'
-
-. ./perf-test-lib.sh
-
-uncache_database
-
-time_start
-
-for i in $(seq 2 6); do
-time_run "notmuch new #$i" 'notmuch new'
-done
-
-time_done
diff --git a/performance-test/T00-new.sh b/performance-test/T00-new.sh
new file mode 100755
index 000..553bb8b
--- /dev/null
+++ b/performance-test/T00-new.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+test_description='notmuch new'
+
+. ./perf-test-lib.sh
+
+uncache_database
+
+time_start
+
+for i in $(seq 2 6); do
+time_run "notmuch new #$i" 'notmuch new'
+done
+
+time_done
diff --git a/performance-test/T01-dump-restore 
b/performance-test/T01-dump-restore
deleted file mode 100755
index b2ff940..000
--- a/performance-test/T01-dump-restore
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-
-test_description='dump and restore'
-
-. ./perf-test-lib.sh
-
-time_start
-
-time_run 'load nmbug tags' 'notmuch restore --accumulate < 
corpus.tags/nmbug.sup-dump'
-time_run 'dump *' 'notmuch dump > tags.out'
-time_run 'restore *' 'notmuch restore < tags.out'
-
-time_done
diff --git a/performance-test/T01-dump-restore.sh 
b/performance-test/T01-dump-restore.sh
new file mode 100755
index 000..b2ff940
--- /dev/null
+++ b/performance-test/T01-dump-restore.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+test_description='dump and restore'
+
+. ./perf-test-lib.sh
+
+time_start
+
+time_run 'load nmbug tags' 'notmuch restore --accumulate < 
corpus.tags/nmbug.sup-dump'
+time_run 'dump *' 'notmuch dump > tags.out'
+time_run 'restore *' 'notmuch restore < tags.out'
+
+time_done
diff --git a/performance-test/T02-tag b/performance-test/T02-tag
deleted file mode 100755
index 78ceccc..000
--- a/performance-test/T02-tag
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/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/T02-tag.sh b/performance-test/T02-tag.sh
new file mode 100755
index 000..78ceccc
--- /dev/null
+++ b/performance-test/T02-tag.sh
@@ -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
-- 
1.8.2.rc2

___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH 1/4] perf-test: rename memory tests

2013-05-15 Thread david
From: David Bremner 

The common suffix will help running them all automatically.
---
 performance-test/M00-new | 15 ---
 performance-test/M00-new.sh  | 15 +++
 performance-test/M01-dump-restore| 15 ---
 performance-test/M01-dump-restore.sh | 15 +++
 4 files changed, 30 insertions(+), 30 deletions(-)
 delete mode 100755 performance-test/M00-new
 create mode 100755 performance-test/M00-new.sh
 delete mode 100755 performance-test/M01-dump-restore
 create mode 100755 performance-test/M01-dump-restore.sh

diff --git a/performance-test/M00-new b/performance-test/M00-new
deleted file mode 100755
index 99c3f52..000
--- a/performance-test/M00-new
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-test_description='notmuch new'
-
-. ./perf-test-lib.sh
-
-# ensure initial 'notmuch new' is run by memory_start
-uncache_database
-
-memory_start
-
-# run 'notmuch new' a second time, to test different code paths
-memory_run "notmuch new" "notmuch new"
-
-memory_done
diff --git a/performance-test/M00-new.sh b/performance-test/M00-new.sh
new file mode 100755
index 000..99c3f52
--- /dev/null
+++ b/performance-test/M00-new.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+test_description='notmuch new'
+
+. ./perf-test-lib.sh
+
+# ensure initial 'notmuch new' is run by memory_start
+uncache_database
+
+memory_start
+
+# run 'notmuch new' a second time, to test different code paths
+memory_run "notmuch new" "notmuch new"
+
+memory_done
diff --git a/performance-test/M01-dump-restore 
b/performance-test/M01-dump-restore
deleted file mode 100755
index be5894a..000
--- a/performance-test/M01-dump-restore
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-test_description='dump and restore'
-
-. ./perf-test-lib.sh
-
-memory_start
-
-memory_run 'load nmbug tags' 'notmuch restore --accumulate 
--input=corpus.tags/nmbug.sup-dump'
-memory_run 'dump *' 'notmuch dump --output=tags.sup'
-memory_run 'restore *' 'notmuch restore --input=tags.sup'
-memory_run 'dump --format=batch-tag *' 'notmuch dump --format=batch-tag 
--output=tags.bt'
-memory_run 'restore --format=batch-tag *' 'notmuch restore --format=batch-tag 
--input=tags.bt'
-
-memory_done
diff --git a/performance-test/M01-dump-restore.sh 
b/performance-test/M01-dump-restore.sh
new file mode 100755
index 000..be5894a
--- /dev/null
+++ b/performance-test/M01-dump-restore.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+test_description='dump and restore'
+
+. ./perf-test-lib.sh
+
+memory_start
+
+memory_run 'load nmbug tags' 'notmuch restore --accumulate 
--input=corpus.tags/nmbug.sup-dump'
+memory_run 'dump *' 'notmuch dump --output=tags.sup'
+memory_run 'restore *' 'notmuch restore --input=tags.sup'
+memory_run 'dump --format=batch-tag *' 'notmuch dump --format=batch-tag 
--output=tags.bt'
+memory_run 'restore --format=batch-tag *' 'notmuch restore --format=batch-tag 
--input=tags.bt'
+
+memory_done
-- 
1.8.2.rc2

___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH 3/4] perf-test: run all appropriately named time tests

2013-05-15 Thread david
From: David Bremner 

This avoids hassle with manually adding every test to the master list.
---
 performance-test/notmuch-time-test | 10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/performance-test/notmuch-time-test 
b/performance-test/notmuch-time-test
index 54a208f..7113efb 100755
--- a/performance-test/notmuch-time-test
+++ b/performance-test/notmuch-time-test
@@ -16,12 +16,6 @@ fi
 
 cd $(dirname "$0")
 
-TESTS="
-  T00-new
-  T01-dump-restore
-  T02-tag
-"
-
-for test in $TESTS; do
-./$test "$@"
+for test in T*.sh; do
+./"$test" "$@"
 done
-- 
1.8.2.rc2

___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH 4/4] perf-test: add notmuch-memory-test

2013-05-15 Thread david
From: David Bremner 

Somehow this file was not added to the patch set which split the tests
into time and memory tests. Take advantage of the the "new" way of
running tests to avoid listing the explicitly.
---
 performance-test/notmuch-memory-test | 21 +
 1 file changed, 21 insertions(+)
 create mode 100755 performance-test/notmuch-memory-test

diff --git a/performance-test/notmuch-memory-test 
b/performance-test/notmuch-memory-test
new file mode 100755
index 000..3cf28c7
--- /dev/null
+++ b/performance-test/notmuch-memory-test
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+
+# Run tests
+#
+# Copyright (c) 2005 Junio C Hamano
+#
+# Adapted from a Makefile to a shell script by Carl Worth (2010)
+
+if [ ${BASH_VERSINFO[0]} -lt 4 ]; then
+echo "Error: The notmuch test suite requires a bash version >= 4.0"
+echo "due to use of associative arrays within the test suite."
+echo "Please try again with a newer bash (or help us fix the"
+echo "test suite to be more portable). Thanks."
+exit 1
+fi
+
+cd $(dirname "$0")
+
+for test in M*.sh; do
+./"$test" "$@"
+done
-- 
1.8.2.rc2

___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


simplify and fix performance tests

2013-05-15 Thread david
Jani noticed the alleged file notmuch-memory-test was missing.
Austin grumbled about explicitly adding tests to a list.
This series should give them both something else to grumble about.
 
___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch


[PATCH] build: fix out-of-tree builds

2013-05-15 Thread Jani Nikula
Support for out-of-tree builds was added in
commit 3e4a9d60a9419621b08c647a306843d76c47c2cb
Author: Carl Worth 
Date:   Wed Mar 9 15:02:42 2011 -0800

build: Add support for non-source-directory builds.

and broken in
commit 7beeb8c88a014ecbc53d8241f10683b3c4c16228
Author: David Bremner 
Date:   Sat Nov 17 12:28:15 2012 -0400

test: initial performance testing infrastructure

Fix the build breakage.

Out-of-tree 'make test' has been broken since earlier than the above,
and remains broken, as does out-of-tree perf test, but at least the
build now works.

---

I didn't have the time to dig into the test and perf test breakage.
---
 Makefile|3 +--
 performance-test/Makefile.local |2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 73a8554..3301d30 100644
--- a/Makefile
+++ b/Makefile
@@ -3,8 +3,7 @@
 all:
 
 # List all subdirectories here. Each contains its own Makefile.local
-subdirs := compat completion emacs lib man parse-time-string
-subdirs += performance-test util test
+subdirs = compat completion emacs lib man parse-time-string performance-test 
util test
 
 # We make all targets depend on the Makefiles themselves.
 global_deps = Makefile Makefile.config Makefile.local \
diff --git a/performance-test/Makefile.local b/performance-test/Makefile.local
index 73aa963..e47219a 100644
--- a/performance-test/Makefile.local
+++ b/performance-test/Makefile.local
@@ -2,7 +2,7 @@
 
 dir := performance-test
 
-include $(dir)/version.sh
+include $(srcdir)/$(dir)/version.sh
 
 TIME_TEST_SCRIPT := ${dir}/notmuch-time-test
 MEMORY_TEST_SCRIPT := ${dir}/notmuch-memory-test
-- 
1.7.2.5

___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch