X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2Fcount;h=da86c8cc70cf4a9f32669fd1b3472353f528d295;hp=b97fc06652f33f87fcf3a4d6016b1b28db536695;hb=09f8ef3e3db6e9e831f3f57fcd18231af355557a;hpb=0e386504345857725893d4da45338f00cc2147fa diff --git a/test/count b/test/count index b97fc066..da86c8cc 100755 --- a/test/count +++ b/test/count @@ -4,58 +4,94 @@ test_description='"notmuch count" for messages and threads' add_email_corpus -SEARCH="\"*\"" +# Note: The 'wc -l' results below are wrapped in arithmetic evaluation +# $((...)) to strip whitespace. This is for portability, as 'wc -l' +# emits whitespace on some BSD variants. test_begin_subtest "message count is the default for notmuch count" test_expect_equal \ - "`notmuch search --output=messages ${SEARCH} | wc -l`" \ - "`notmuch count ${SEARCH}`" + "$((`notmuch search --output=messages '*' | wc -l`))" \ + "`notmuch count '*'`" test_begin_subtest "message count with --output=messages" test_expect_equal \ - "`notmuch search --output=messages ${SEARCH} | wc -l`" \ - "`notmuch count --output=messages ${SEARCH}`" + "$((`notmuch search --output=messages '*' | wc -l`))" \ + "`notmuch count --output=messages '*'`" test_begin_subtest "thread count with --output=threads" test_expect_equal \ - "`notmuch search --output=threads ${SEARCH} | wc -l`" \ - "`notmuch count --output=threads ${SEARCH}`" + "$((`notmuch search --output=threads '*' | wc -l`))" \ + "`notmuch count --output=threads '*'`" test_begin_subtest "thread count is the default for notmuch search" test_expect_equal \ - "`notmuch search ${SEARCH} | wc -l`" \ - "`notmuch count --output=threads ${SEARCH}`" + "$((`notmuch search '*' | wc -l`))" \ + "`notmuch count --output=threads '*'`" + +test_begin_subtest "files count" +test_expect_equal \ + "$((`notmuch search --output=files '*' | wc -l`))" \ + "`notmuch count --output=files '*'`" + +test_begin_subtest "files count for a duplicate message-id" +test_expect_equal \ + "2" \ + "`notmuch count --output=files id:20091117232137.GA7669@griffis1.net`" -SEARCH="from:cworth and not from:cworth" test_begin_subtest "count with no matching messages" test_expect_equal \ "0" \ - "`notmuch count --output=messages ${SEARCH}`" + "`notmuch count --output=messages from:cworth and not from:cworth`" test_begin_subtest "count with no matching threads" test_expect_equal \ "0" \ - "`notmuch count --output=threads ${SEARCH}`" + "`notmuch count --output=threads from:cworth and not from:cworth`" -test_begin_subtest "count excluding \"deleted\" messages" -notmuch config set search.exclude_tags deleted -generate_message '[subject]="Not deleted"' -generate_message '[subject]="Another not deleted"' -generate_message '[subject]="Deleted"' -notmuch new > /dev/null -notmuch tag +deleted id:$gen_msg_id -test_expect_equal \ - "2" \ - "`notmuch count subject:deleted`" +test_begin_subtest "message count is the default for batch count" +notmuch count --batch >OUTPUT <EXPECTED +notmuch count --output=messages from:cworth >>EXPECTED +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "batch message count" +notmuch count --batch --output=messages >OUTPUT <EXPECTED +notmuch count --output=messages >>EXPECTED +notmuch count --output=messages tag:inbox >>EXPECTED +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "batch thread count" +notmuch count --batch --output=threads >OUTPUT <EXPECTED +notmuch count --output=threads from:cworth >>EXPECTED +notmuch count --output=threads from:cworth and not from:cworth >>EXPECTED +notmuch count --output=threads foo >>EXPECTED +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "batch message count with input file" +cat >INPUT <OUTPUT +notmuch count --output=messages from:cworth >EXPECTED +notmuch count --output=messages >>EXPECTED +notmuch count --output=messages tag:inbox >>EXPECTED +test_expect_equal_file EXPECTED OUTPUT -test_begin_subtest "count \"deleted\" messages, with --no-exclude" -test_expect_equal \ - "3" \ - "`notmuch count --no-exclude subject:deleted`" test_done