[PATCH v2 4/6] test: add some exclude tests

2012-04-05 Thread Austin Clements
On Sat, 31 Mar 2012, Mark Walters  wrote:
> Systematically test the exclude options for search. Also move the
> search existing exclude tests into the new test. There is some overlap
> between the two sets of tests but many of the existing ones are there
> because they triggered bugs in the past so I have kept them to ensure
> coverage.
> ---
>  test/notmuch-test|1 +
>  test/search  |   48 ---
>  test/search-excludes |  214 
> ++
>  3 files changed, 215 insertions(+), 48 deletions(-)
>  create mode 100755 test/search-excludes
>
> diff --git a/test/notmuch-test b/test/notmuch-test
> index f03b594..4dcd8c6 100755
> --- a/test/notmuch-test
> +++ b/test/notmuch-test
> @@ -27,6 +27,7 @@ TESTS="
>search-position-overlap-bug
>search-insufficient-from-quoting
>search-limiting
> +  search-excludes
>tagging
>json
>multipart
> diff --git a/test/search b/test/search
> index 17af6a2..a7a0b18 100755
> --- a/test/search
> +++ b/test/search
> @@ -129,52 +129,4 @@ add_message '[subject]="utf8-message-body-subject"' 
> '[date]="Sat, 01 Jan 2000 12
>  output=$(notmuch search "b?d?" | notmuch_search_sanitize)
>  test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test 
> Suite; utf8-message-body-subject (inbox unread)"
>  
> -test_begin_subtest "Exclude \"deleted\" messages from search"
> -notmuch config set search.exclude_tags deleted
> -generate_message '[subject]="Not deleted"'
> -not_deleted_id=$gen_msg_id
> -generate_message '[subject]="Deleted"'
> -notmuch new > /dev/null
> -notmuch tag +deleted id:$gen_msg_id
> -deleted_id=$gen_msg_id
> -output=$(notmuch search subject:deleted | notmuch_search_sanitize)
> -test_expect_equal "$output" "thread:XXX   2001-01-05 [1/1] Notmuch Test 
> Suite; Not deleted (inbox unread)
> -thread:XXX   2001-01-05 [0/1] Notmuch Test Suite; Deleted (deleted inbox 
> unread)"
> -
> -test_begin_subtest "Exclude \"deleted\" messages from message search"
> -output=$(notmuch search --output=messages subject:deleted | 
> notmuch_search_sanitize)
> -test_expect_equal "$output" "id:$not_deleted_id"
> -
> -test_begin_subtest "Exclude \"deleted\" messages from message search 
> (no-exclude)"
> -output=$(notmuch search --no-exclude --output=messages subject:deleted | 
> notmuch_search_sanitize)
> -test_expect_equal "$output" "id:$not_deleted_id
> -id:$deleted_id"
> -
> -test_begin_subtest "Exclude \"deleted\" messages from message search 
> (non-existent exclude-tag)"
> -notmuch config set search.exclude_tags deleted non_existent_tag
> -output=$(notmuch search --output=messages subject:deleted | 
> notmuch_search_sanitize)
> -test_expect_equal "$output" "id:$not_deleted_id"
> -notmuch config set search.exclude_tags deleted
> -
> -test_begin_subtest "Exclude \"deleted\" messages from search, overridden"
> -output=$(notmuch search subject:deleted and tag:deleted | 
> notmuch_search_sanitize)
> -test_expect_equal "$output" "thread:XXX   2001-01-05 [1/1] Notmuch Test 
> Suite; Deleted (deleted inbox unread)"
> -
> -test_begin_subtest "Exclude \"deleted\" messages from threads"
> -add_message '[subject]="Not deleted reply"' '[in-reply-to]="<$gen_msg_id>"'
> -output=$(notmuch search subject:deleted | notmuch_search_sanitize)
> -test_expect_equal "$output" "thread:XXX   2001-01-05 [1/1] Notmuch Test 
> Suite; Not deleted (inbox unread)
> -thread:XXX   2001-01-05 [1/2] Notmuch Test Suite; Not deleted reply (deleted 
> inbox unread)"
> -
> -test_begin_subtest "Don't exclude \"deleted\" messages when --no-exclude 
> specified"
> -output=$(notmuch search --no-exclude subject:deleted | 
> notmuch_search_sanitize)
> -test_expect_equal "$output" "thread:XXX   2001-01-05 [1/1] Notmuch Test 
> Suite; Not deleted (inbox unread)
> -thread:XXX   2001-01-05 [2/2] Notmuch Test Suite; Deleted (deleted inbox 
> unread)"
> -
> -test_begin_subtest "Don't exclude \"deleted\" messages from search if not 
> configured"
> -notmuch config set search.exclude_tags
> -output=$(notmuch search subject:deleted | notmuch_search_sanitize)
> -test_expect_equal "$output" "thread:XXX   2001-01-05 [1/1] Notmuch Test 
> Suite; Not deleted (inbox unread)
> -thread:XXX   2001-01-05 [2/2] Notmuch Test Suite; Deleted (deleted inbox 
> unread)"
> -
>  test_done
> diff --git a/test/search-excludes b/test/search-excludes
> new file mode 100755
> index 000..63acb7b
> --- /dev/null
> +++ b/test/search-excludes
> @@ -0,0 +1,214 @@
> +#!/usr/bin/env bash
> +test_description='"notmuch search" with excludes in several variations'
> +. ./test-lib.sh
> +
> +# Generates a thread of 'length' messages. The subject of the nth
> +# message in the thread is 'subject: message n'
> +generate_thread ()
> +{
> +local subject="$1"
> +local length="$2"
> +generate_message '[subject]="'"${subject}: message 1"'"'
> +parent_id=$gen_msg_id
> +for i in `seq 2 $length`
> +do
> + generate_message '[subject]="'"${subject}: message $i"'"' \

Re: [PATCH v2 4/6] test: add some exclude tests

2012-04-05 Thread Austin Clements
On Sat, 31 Mar 2012, Mark Walters markwalters1...@gmail.com wrote:
 Systematically test the exclude options for search. Also move the
 search existing exclude tests into the new test. There is some overlap
 between the two sets of tests but many of the existing ones are there
 because they triggered bugs in the past so I have kept them to ensure
 coverage.
 ---
  test/notmuch-test|1 +
  test/search  |   48 ---
  test/search-excludes |  214 
 ++
  3 files changed, 215 insertions(+), 48 deletions(-)
  create mode 100755 test/search-excludes

 diff --git a/test/notmuch-test b/test/notmuch-test
 index f03b594..4dcd8c6 100755
 --- a/test/notmuch-test
 +++ b/test/notmuch-test
 @@ -27,6 +27,7 @@ TESTS=
search-position-overlap-bug
search-insufficient-from-quoting
search-limiting
 +  search-excludes
tagging
json
multipart
 diff --git a/test/search b/test/search
 index 17af6a2..a7a0b18 100755
 --- a/test/search
 +++ b/test/search
 @@ -129,52 +129,4 @@ add_message '[subject]=utf8-message-body-subject' 
 '[date]=Sat, 01 Jan 2000 12
  output=$(notmuch search bödý | notmuch_search_sanitize)
  test_expect_equal $output thread:XXX   2000-01-01 [1/1] Notmuch Test 
 Suite; utf8-message-body-subject (inbox unread)
  
 -test_begin_subtest Exclude \deleted\ messages from search
 -notmuch config set search.exclude_tags deleted
 -generate_message '[subject]=Not deleted'
 -not_deleted_id=$gen_msg_id
 -generate_message '[subject]=Deleted'
 -notmuch new  /dev/null
 -notmuch tag +deleted id:$gen_msg_id
 -deleted_id=$gen_msg_id
 -output=$(notmuch search subject:deleted | notmuch_search_sanitize)
 -test_expect_equal $output thread:XXX   2001-01-05 [1/1] Notmuch Test 
 Suite; Not deleted (inbox unread)
 -thread:XXX   2001-01-05 [0/1] Notmuch Test Suite; Deleted (deleted inbox 
 unread)
 -
 -test_begin_subtest Exclude \deleted\ messages from message search
 -output=$(notmuch search --output=messages subject:deleted | 
 notmuch_search_sanitize)
 -test_expect_equal $output id:$not_deleted_id
 -
 -test_begin_subtest Exclude \deleted\ messages from message search 
 (no-exclude)
 -output=$(notmuch search --no-exclude --output=messages subject:deleted | 
 notmuch_search_sanitize)
 -test_expect_equal $output id:$not_deleted_id
 -id:$deleted_id
 -
 -test_begin_subtest Exclude \deleted\ messages from message search 
 (non-existent exclude-tag)
 -notmuch config set search.exclude_tags deleted non_existent_tag
 -output=$(notmuch search --output=messages subject:deleted | 
 notmuch_search_sanitize)
 -test_expect_equal $output id:$not_deleted_id
 -notmuch config set search.exclude_tags deleted
 -
 -test_begin_subtest Exclude \deleted\ messages from search, overridden
 -output=$(notmuch search subject:deleted and tag:deleted | 
 notmuch_search_sanitize)
 -test_expect_equal $output thread:XXX   2001-01-05 [1/1] Notmuch Test 
 Suite; Deleted (deleted inbox unread)
 -
 -test_begin_subtest Exclude \deleted\ messages from threads
 -add_message '[subject]=Not deleted reply' '[in-reply-to]=$gen_msg_id'
 -output=$(notmuch search subject:deleted | notmuch_search_sanitize)
 -test_expect_equal $output thread:XXX   2001-01-05 [1/1] Notmuch Test 
 Suite; Not deleted (inbox unread)
 -thread:XXX   2001-01-05 [1/2] Notmuch Test Suite; Not deleted reply (deleted 
 inbox unread)
 -
 -test_begin_subtest Don't exclude \deleted\ messages when --no-exclude 
 specified
 -output=$(notmuch search --no-exclude subject:deleted | 
 notmuch_search_sanitize)
 -test_expect_equal $output thread:XXX   2001-01-05 [1/1] Notmuch Test 
 Suite; Not deleted (inbox unread)
 -thread:XXX   2001-01-05 [2/2] Notmuch Test Suite; Deleted (deleted inbox 
 unread)
 -
 -test_begin_subtest Don't exclude \deleted\ messages from search if not 
 configured
 -notmuch config set search.exclude_tags
 -output=$(notmuch search subject:deleted | notmuch_search_sanitize)
 -test_expect_equal $output thread:XXX   2001-01-05 [1/1] Notmuch Test 
 Suite; Not deleted (inbox unread)
 -thread:XXX   2001-01-05 [2/2] Notmuch Test Suite; Deleted (deleted inbox 
 unread)
 -
  test_done
 diff --git a/test/search-excludes b/test/search-excludes
 new file mode 100755
 index 000..63acb7b
 --- /dev/null
 +++ b/test/search-excludes
 @@ -0,0 +1,214 @@
 +#!/usr/bin/env bash
 +test_description='notmuch search with excludes in several variations'
 +. ./test-lib.sh
 +
 +# Generates a thread of 'length' messages. The subject of the nth
 +# message in the thread is 'subject: message n'
 +generate_thread ()
 +{
 +local subject=$1
 +local length=$2
 +generate_message '[subject]='${subject}: message 1''
 +parent_id=$gen_msg_id
 +for i in `seq 2 $length`
 +do
 + generate_message '[subject]='${subject}: message $i'' \
 +  [in-reply-to]=\$parent_id\
 + parent_id=$gen_msg_id
 +done
 +notmuch new  /dev/null
 +}
 +
 +# These are the original search exclude tests.
 +
 

[PATCH v2 4/6] test: add some exclude tests

2012-04-01 Thread Mark Walters
Systematically test the exclude options for search. Also move the
search existing exclude tests into the new test. There is some overlap
between the two sets of tests but many of the existing ones are there
because they triggered bugs in the past so I have kept them to ensure
coverage.
---
 test/notmuch-test|1 +
 test/search  |   48 ---
 test/search-excludes |  214 ++
 3 files changed, 215 insertions(+), 48 deletions(-)
 create mode 100755 test/search-excludes

diff --git a/test/notmuch-test b/test/notmuch-test
index f03b594..4dcd8c6 100755
--- a/test/notmuch-test
+++ b/test/notmuch-test
@@ -27,6 +27,7 @@ TESTS="
   search-position-overlap-bug
   search-insufficient-from-quoting
   search-limiting
+  search-excludes
   tagging
   json
   multipart
diff --git a/test/search b/test/search
index 17af6a2..a7a0b18 100755
--- a/test/search
+++ b/test/search
@@ -129,52 +129,4 @@ add_message '[subject]="utf8-message-body-subject"' 
'[date]="Sat, 01 Jan 2000 12
 output=$(notmuch search "b?d?" | notmuch_search_sanitize)
 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; 
utf8-message-body-subject (inbox unread)"

-test_begin_subtest "Exclude \"deleted\" messages from search"
-notmuch config set search.exclude_tags deleted
-generate_message '[subject]="Not deleted"'
-not_deleted_id=$gen_msg_id
-generate_message '[subject]="Deleted"'
-notmuch new > /dev/null
-notmuch tag +deleted id:$gen_msg_id
-deleted_id=$gen_msg_id
-output=$(notmuch search subject:deleted | notmuch_search_sanitize)
-test_expect_equal "$output" "thread:XXX   2001-01-05 [1/1] Notmuch Test Suite; 
Not deleted (inbox unread)
-thread:XXX   2001-01-05 [0/1] Notmuch Test Suite; Deleted (deleted inbox 
unread)"
-
-test_begin_subtest "Exclude \"deleted\" messages from message search"
-output=$(notmuch search --output=messages subject:deleted | 
notmuch_search_sanitize)
-test_expect_equal "$output" "id:$not_deleted_id"
-
-test_begin_subtest "Exclude \"deleted\" messages from message search 
(no-exclude)"
-output=$(notmuch search --no-exclude --output=messages subject:deleted | 
notmuch_search_sanitize)
-test_expect_equal "$output" "id:$not_deleted_id
-id:$deleted_id"
-
-test_begin_subtest "Exclude \"deleted\" messages from message search 
(non-existent exclude-tag)"
-notmuch config set search.exclude_tags deleted non_existent_tag
-output=$(notmuch search --output=messages subject:deleted | 
notmuch_search_sanitize)
-test_expect_equal "$output" "id:$not_deleted_id"
-notmuch config set search.exclude_tags deleted
-
-test_begin_subtest "Exclude \"deleted\" messages from search, overridden"
-output=$(notmuch search subject:deleted and tag:deleted | 
notmuch_search_sanitize)
-test_expect_equal "$output" "thread:XXX   2001-01-05 [1/1] Notmuch Test Suite; 
Deleted (deleted inbox unread)"
-
-test_begin_subtest "Exclude \"deleted\" messages from threads"
-add_message '[subject]="Not deleted reply"' '[in-reply-to]="<$gen_msg_id>"'
-output=$(notmuch search subject:deleted | notmuch_search_sanitize)
-test_expect_equal "$output" "thread:XXX   2001-01-05 [1/1] Notmuch Test Suite; 
Not deleted (inbox unread)
-thread:XXX   2001-01-05 [1/2] Notmuch Test Suite; Not deleted reply (deleted 
inbox unread)"
-
-test_begin_subtest "Don't exclude \"deleted\" messages when --no-exclude 
specified"
-output=$(notmuch search --no-exclude subject:deleted | notmuch_search_sanitize)
-test_expect_equal "$output" "thread:XXX   2001-01-05 [1/1] Notmuch Test Suite; 
Not deleted (inbox unread)
-thread:XXX   2001-01-05 [2/2] Notmuch Test Suite; Deleted (deleted inbox 
unread)"
-
-test_begin_subtest "Don't exclude \"deleted\" messages from search if not 
configured"
-notmuch config set search.exclude_tags
-output=$(notmuch search subject:deleted | notmuch_search_sanitize)
-test_expect_equal "$output" "thread:XXX   2001-01-05 [1/1] Notmuch Test Suite; 
Not deleted (inbox unread)
-thread:XXX   2001-01-05 [2/2] Notmuch Test Suite; Deleted (deleted inbox 
unread)"
-
 test_done
diff --git a/test/search-excludes b/test/search-excludes
new file mode 100755
index 000..63acb7b
--- /dev/null
+++ b/test/search-excludes
@@ -0,0 +1,214 @@
+#!/usr/bin/env bash
+test_description='"notmuch search" with excludes in several variations'
+. ./test-lib.sh
+
+# Generates a thread of 'length' messages. The subject of the nth
+# message in the thread is 'subject: message n'
+generate_thread ()
+{
+local subject="$1"
+local length="$2"
+generate_message '[subject]="'"${subject}: message 1"'"'
+parent_id=$gen_msg_id
+for i in `seq 2 $length`
+do
+   generate_message '[subject]="'"${subject}: message $i"'"' \
+"[in-reply-to]=\<$parent_id\>"
+   parent_id=$gen_msg_id
+done
+notmuch new > /dev/null
+}
+
+# These are the original search exclude tests.
+
+test_begin_subtest "Exclude \"deleted\" messages from search"
+notmuch config set search.exclude_tags 

[PATCH v2 4/6] test: add some exclude tests

2012-03-31 Thread Mark Walters
Systematically test the exclude options for search. Also move the
search existing exclude tests into the new test. There is some overlap
between the two sets of tests but many of the existing ones are there
because they triggered bugs in the past so I have kept them to ensure
coverage.
---
 test/notmuch-test|1 +
 test/search  |   48 ---
 test/search-excludes |  214 ++
 3 files changed, 215 insertions(+), 48 deletions(-)
 create mode 100755 test/search-excludes

diff --git a/test/notmuch-test b/test/notmuch-test
index f03b594..4dcd8c6 100755
--- a/test/notmuch-test
+++ b/test/notmuch-test
@@ -27,6 +27,7 @@ TESTS=
   search-position-overlap-bug
   search-insufficient-from-quoting
   search-limiting
+  search-excludes
   tagging
   json
   multipart
diff --git a/test/search b/test/search
index 17af6a2..a7a0b18 100755
--- a/test/search
+++ b/test/search
@@ -129,52 +129,4 @@ add_message '[subject]=utf8-message-body-subject' 
'[date]=Sat, 01 Jan 2000 12
 output=$(notmuch search bödý | notmuch_search_sanitize)
 test_expect_equal $output thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; 
utf8-message-body-subject (inbox unread)
 
-test_begin_subtest Exclude \deleted\ messages from search
-notmuch config set search.exclude_tags deleted
-generate_message '[subject]=Not deleted'
-not_deleted_id=$gen_msg_id
-generate_message '[subject]=Deleted'
-notmuch new  /dev/null
-notmuch tag +deleted id:$gen_msg_id
-deleted_id=$gen_msg_id
-output=$(notmuch search subject:deleted | notmuch_search_sanitize)
-test_expect_equal $output thread:XXX   2001-01-05 [1/1] Notmuch Test Suite; 
Not deleted (inbox unread)
-thread:XXX   2001-01-05 [0/1] Notmuch Test Suite; Deleted (deleted inbox 
unread)
-
-test_begin_subtest Exclude \deleted\ messages from message search
-output=$(notmuch search --output=messages subject:deleted | 
notmuch_search_sanitize)
-test_expect_equal $output id:$not_deleted_id
-
-test_begin_subtest Exclude \deleted\ messages from message search 
(no-exclude)
-output=$(notmuch search --no-exclude --output=messages subject:deleted | 
notmuch_search_sanitize)
-test_expect_equal $output id:$not_deleted_id
-id:$deleted_id
-
-test_begin_subtest Exclude \deleted\ messages from message search 
(non-existent exclude-tag)
-notmuch config set search.exclude_tags deleted non_existent_tag
-output=$(notmuch search --output=messages subject:deleted | 
notmuch_search_sanitize)
-test_expect_equal $output id:$not_deleted_id
-notmuch config set search.exclude_tags deleted
-
-test_begin_subtest Exclude \deleted\ messages from search, overridden
-output=$(notmuch search subject:deleted and tag:deleted | 
notmuch_search_sanitize)
-test_expect_equal $output thread:XXX   2001-01-05 [1/1] Notmuch Test Suite; 
Deleted (deleted inbox unread)
-
-test_begin_subtest Exclude \deleted\ messages from threads
-add_message '[subject]=Not deleted reply' '[in-reply-to]=$gen_msg_id'
-output=$(notmuch search subject:deleted | notmuch_search_sanitize)
-test_expect_equal $output thread:XXX   2001-01-05 [1/1] Notmuch Test Suite; 
Not deleted (inbox unread)
-thread:XXX   2001-01-05 [1/2] Notmuch Test Suite; Not deleted reply (deleted 
inbox unread)
-
-test_begin_subtest Don't exclude \deleted\ messages when --no-exclude 
specified
-output=$(notmuch search --no-exclude subject:deleted | notmuch_search_sanitize)
-test_expect_equal $output thread:XXX   2001-01-05 [1/1] Notmuch Test Suite; 
Not deleted (inbox unread)
-thread:XXX   2001-01-05 [2/2] Notmuch Test Suite; Deleted (deleted inbox 
unread)
-
-test_begin_subtest Don't exclude \deleted\ messages from search if not 
configured
-notmuch config set search.exclude_tags
-output=$(notmuch search subject:deleted | notmuch_search_sanitize)
-test_expect_equal $output thread:XXX   2001-01-05 [1/1] Notmuch Test Suite; 
Not deleted (inbox unread)
-thread:XXX   2001-01-05 [2/2] Notmuch Test Suite; Deleted (deleted inbox 
unread)
-
 test_done
diff --git a/test/search-excludes b/test/search-excludes
new file mode 100755
index 000..63acb7b
--- /dev/null
+++ b/test/search-excludes
@@ -0,0 +1,214 @@
+#!/usr/bin/env bash
+test_description='notmuch search with excludes in several variations'
+. ./test-lib.sh
+
+# Generates a thread of 'length' messages. The subject of the nth
+# message in the thread is 'subject: message n'
+generate_thread ()
+{
+local subject=$1
+local length=$2
+generate_message '[subject]='${subject}: message 1''
+parent_id=$gen_msg_id
+for i in `seq 2 $length`
+do
+   generate_message '[subject]='${subject}: message $i'' \
+[in-reply-to]=\$parent_id\
+   parent_id=$gen_msg_id
+done
+notmuch new  /dev/null
+}
+
+# These are the original search exclude tests.
+
+test_begin_subtest Exclude \deleted\ messages from search
+notmuch config set search.exclude_tags deleted
+generate_message '[subject]=Not deleted'
+not_deleted_id=$gen_msg_id
+generate_message