X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2FT090-search-output.sh;h=bf28d220a760515bfeeba06a7e2fa92d389ad42b;hp=a8ab92058d6b7c3ba30f909ba62a7fb8a9fad9e9;hb=4c5b17b10b786994255641fee8df4733c3586f3e;hpb=7630f300ba52f4aab22ee696fe1507d0ef9790bc diff --git a/test/T090-search-output.sh b/test/T090-search-output.sh index a8ab9205..bf28d220 100755 --- a/test/T090-search-output.sh +++ b/test/T090-search-output.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash test_description='various settings for "notmuch search --output="' -. ./test-lib.sh +. $(dirname "$0")/test-lib.sh || exit 1 add_email_corpus @@ -32,7 +32,7 @@ thread:THREADID thread:THREADID thread:THREADID EOF -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "--output=threads --format=json" notmuch search --format=json --output=threads '*' | sed -e s/\".*\"/\"THREADID\"/ >OUTPUT @@ -120,7 +120,25 @@ id:87lji5cbwo.fsf@yoom.home.cworth.org id:1258471718-6781-2-git-send-email-dottedmag@dottedmag.net id:1258471718-6781-1-git-send-email-dottedmag@dottedmag.net EOF -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "--output=messages --duplicate=1" +notmuch search --output=messages --duplicate=1 '*' >OUTPUT +# reuse same EXPECTED as above +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "--output=messages --duplicate=2" +notmuch search --output=messages --duplicate=2 '*' >OUTPUT +cat <EXPECTED +id:20091117232137.GA7669@griffis1.net +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "--output=messages --duplicate=3" +notmuch search --output=messages --duplicate=3 '*' >OUTPUT +cat <EXPECTED +EOF +test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "--output=messages --format=json" notmuch search --format=json --output=messages '*' >OUTPUT @@ -178,70 +196,93 @@ cat <EXPECTED "1258471718-6781-2-git-send-email-dottedmag@dottedmag.net", "1258471718-6781-1-git-send-email-dottedmag@dottedmag.net"] EOF -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "--output=messages --format=json --duplicate=1" +notmuch search --output=messages --format=json --duplicate=1 '*' >OUTPUT +# reuse same EXPECTED as above +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "--output=messages --format=json --duplicate=2" +notmuch search --output=messages --format=json --duplicate=2 '*' >OUTPUT +cat <EXPECTED +["20091117232137.GA7669@griffis1.net"] +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "--output=messages --format=json --duplicate=3" +notmuch search --output=messages --format=json --duplicate=3 '*' >OUTPUT +cat <EXPECTED +[] +EOF +test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "--output=files" -notmuch search --output=files '*' | notmuch_search_files_sanitize >OUTPUT +notmuch search --output=files '*' | notmuch_search_files_sanitize | sort >OUTPUT cat <EXPECTED -MAIL_DIR/cur/52:2, -MAIL_DIR/cur/53:2, -MAIL_DIR/cur/50:2, -MAIL_DIR/cur/49:2, -MAIL_DIR/cur/48:2, -MAIL_DIR/cur/47:2, -MAIL_DIR/cur/46:2, -MAIL_DIR/cur/45:2, -MAIL_DIR/cur/44:2, -MAIL_DIR/cur/43:2, -MAIL_DIR/cur/42:2, -MAIL_DIR/cur/41:2, -MAIL_DIR/cur/40:2, -MAIL_DIR/cur/39:2, -MAIL_DIR/cur/38:2, -MAIL_DIR/cur/37:2, -MAIL_DIR/cur/36:2, -MAIL_DIR/cur/35:2, -MAIL_DIR/cur/34:2, -MAIL_DIR/cur/33:2, -MAIL_DIR/cur/32:2, -MAIL_DIR/cur/31:2, -MAIL_DIR/cur/30:2, +MAIL_DIR/01:2, +MAIL_DIR/02:2, +MAIL_DIR/bar/17:2, +MAIL_DIR/bar/18:2, +MAIL_DIR/bar/baz/05:2, +MAIL_DIR/bar/baz/23:2, +MAIL_DIR/bar/baz/24:2, +MAIL_DIR/bar/baz/cur/25:2, +MAIL_DIR/bar/baz/cur/26:2, +MAIL_DIR/bar/baz/new/27:2, +MAIL_DIR/bar/baz/new/28:2, +MAIL_DIR/bar/cur/19:2, +MAIL_DIR/bar/cur/20:2, +MAIL_DIR/bar/new/21:2, +MAIL_DIR/bar/new/22:2, MAIL_DIR/cur/29:2, -MAIL_DIR/cur/28:2, -MAIL_DIR/cur/27:2, -MAIL_DIR/cur/26:2, -MAIL_DIR/cur/25:2, -MAIL_DIR/cur/24:2, -MAIL_DIR/cur/23:2, -MAIL_DIR/cur/22:2, -MAIL_DIR/cur/21:2, -MAIL_DIR/cur/19:2, -MAIL_DIR/cur/18:2, +MAIL_DIR/cur/30:2, +MAIL_DIR/cur/31:2, +MAIL_DIR/cur/32:2, +MAIL_DIR/cur/33:2, +MAIL_DIR/cur/34:2, +MAIL_DIR/cur/35:2, +MAIL_DIR/cur/36:2, +MAIL_DIR/cur/37:2, +MAIL_DIR/cur/38:2, +MAIL_DIR/cur/39:2, +MAIL_DIR/cur/40:2, +MAIL_DIR/cur/41:2, +MAIL_DIR/cur/42:2, +MAIL_DIR/cur/43:2, +MAIL_DIR/cur/44:2, +MAIL_DIR/cur/45:2, +MAIL_DIR/cur/46:2, +MAIL_DIR/cur/47:2, +MAIL_DIR/cur/48:2, +MAIL_DIR/cur/49:2, +MAIL_DIR/cur/50:2, MAIL_DIR/cur/51:2, -MAIL_DIR/cur/20:2, -MAIL_DIR/cur/17:2, -MAIL_DIR/cur/16:2, -MAIL_DIR/cur/15:2, -MAIL_DIR/cur/14:2, -MAIL_DIR/cur/13:2, -MAIL_DIR/cur/12:2, -MAIL_DIR/cur/11:2, -MAIL_DIR/cur/10:2, -MAIL_DIR/cur/09:2, -MAIL_DIR/cur/08:2, -MAIL_DIR/cur/06:2, -MAIL_DIR/cur/05:2, -MAIL_DIR/cur/04:2, -MAIL_DIR/cur/03:2, -MAIL_DIR/cur/07:2, -MAIL_DIR/cur/02:2, -MAIL_DIR/cur/01:2, +MAIL_DIR/cur/52:2, +MAIL_DIR/cur/53:2, +MAIL_DIR/foo/06:2, +MAIL_DIR/foo/baz/11:2, +MAIL_DIR/foo/baz/12:2, +MAIL_DIR/foo/baz/cur/13:2, +MAIL_DIR/foo/baz/cur/14:2, +MAIL_DIR/foo/baz/new/15:2, +MAIL_DIR/foo/baz/new/16:2, +MAIL_DIR/foo/cur/07:2, +MAIL_DIR/foo/cur/08:2, +MAIL_DIR/foo/new/03:2, +MAIL_DIR/foo/new/09:2, +MAIL_DIR/foo/new/10:2, +MAIL_DIR/new/04:2, EOF -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT + +dup1=$(notmuch search --output=files id:20091117232137.GA7669@griffis1.net | head -n 1 | sed -e "s,$MAIL_DIR,MAIL_DIR,") +dup2=$(notmuch search --output=files id:20091117232137.GA7669@griffis1.net | tail -n 1 | sed -e "s,$MAIL_DIR,MAIL_DIR,") test_begin_subtest "--output=files --duplicate=1" -notmuch search --output=files --duplicate=1 '*' | notmuch_search_files_sanitize >OUTPUT -cat <EXPECTED +notmuch search --output=files --duplicate=1 '*' | notmuch_search_files_sanitize | sort >OUTPUT +cat <EXPECTED +$dup1 MAIL_DIR/cur/52:2, MAIL_DIR/cur/53:2, MAIL_DIR/cur/50:2, @@ -266,40 +307,40 @@ MAIL_DIR/cur/32:2, MAIL_DIR/cur/31:2, MAIL_DIR/cur/30:2, MAIL_DIR/cur/29:2, -MAIL_DIR/cur/28:2, -MAIL_DIR/cur/27:2, -MAIL_DIR/cur/26:2, -MAIL_DIR/cur/25:2, -MAIL_DIR/cur/24:2, -MAIL_DIR/cur/23:2, -MAIL_DIR/cur/22:2, -MAIL_DIR/cur/21:2, -MAIL_DIR/cur/19:2, -MAIL_DIR/cur/18:2, -MAIL_DIR/cur/20:2, -MAIL_DIR/cur/17:2, -MAIL_DIR/cur/16:2, -MAIL_DIR/cur/15:2, -MAIL_DIR/cur/14:2, -MAIL_DIR/cur/13:2, -MAIL_DIR/cur/12:2, -MAIL_DIR/cur/11:2, -MAIL_DIR/cur/10:2, -MAIL_DIR/cur/09:2, -MAIL_DIR/cur/08:2, -MAIL_DIR/cur/06:2, -MAIL_DIR/cur/05:2, -MAIL_DIR/cur/04:2, -MAIL_DIR/cur/03:2, -MAIL_DIR/cur/07:2, -MAIL_DIR/cur/02:2, -MAIL_DIR/cur/01:2, +MAIL_DIR/bar/baz/new/28:2, +MAIL_DIR/bar/baz/new/27:2, +MAIL_DIR/bar/baz/cur/26:2, +MAIL_DIR/bar/baz/cur/25:2, +MAIL_DIR/bar/baz/24:2, +MAIL_DIR/bar/baz/23:2, +MAIL_DIR/bar/new/22:2, +MAIL_DIR/bar/new/21:2, +MAIL_DIR/bar/cur/19:2, +MAIL_DIR/bar/cur/20:2, +MAIL_DIR/bar/17:2, +MAIL_DIR/foo/baz/new/16:2, +MAIL_DIR/foo/baz/new/15:2, +MAIL_DIR/foo/baz/cur/14:2, +MAIL_DIR/foo/baz/cur/13:2, +MAIL_DIR/foo/baz/12:2, +MAIL_DIR/foo/baz/11:2, +MAIL_DIR/foo/new/10:2, +MAIL_DIR/foo/new/09:2, +MAIL_DIR/foo/cur/08:2, +MAIL_DIR/foo/06:2, +MAIL_DIR/bar/baz/05:2, +MAIL_DIR/new/04:2, +MAIL_DIR/foo/new/03:2, +MAIL_DIR/foo/cur/07:2, +MAIL_DIR/02:2, +MAIL_DIR/01:2, EOF -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "--output=files --format=json" -notmuch search --format=json --output=files '*' | notmuch_search_files_sanitize >OUTPUT -cat <EXPECTED +notmuch search --format=json --output=files '*' | notmuch_search_files_sanitize \ + | test_sort_json >OUTPUT +cat <EXPECTED ["MAIL_DIR/cur/52:2,", "MAIL_DIR/cur/53:2,", "MAIL_DIR/cur/50:2,", @@ -324,44 +365,44 @@ cat <EXPECTED "MAIL_DIR/cur/31:2,", "MAIL_DIR/cur/30:2,", "MAIL_DIR/cur/29:2,", -"MAIL_DIR/cur/28:2,", -"MAIL_DIR/cur/27:2,", -"MAIL_DIR/cur/26:2,", -"MAIL_DIR/cur/25:2,", -"MAIL_DIR/cur/24:2,", -"MAIL_DIR/cur/23:2,", -"MAIL_DIR/cur/22:2,", -"MAIL_DIR/cur/21:2,", -"MAIL_DIR/cur/19:2,", -"MAIL_DIR/cur/18:2,", +"MAIL_DIR/bar/baz/new/28:2,", +"MAIL_DIR/bar/baz/new/27:2,", +"MAIL_DIR/bar/baz/cur/26:2,", +"MAIL_DIR/bar/baz/cur/25:2,", +"MAIL_DIR/bar/baz/24:2,", +"MAIL_DIR/bar/baz/23:2,", +"MAIL_DIR/bar/new/22:2,", +"MAIL_DIR/bar/new/21:2,", +"MAIL_DIR/bar/cur/19:2,", +"MAIL_DIR/bar/18:2,", "MAIL_DIR/cur/51:2,", -"MAIL_DIR/cur/20:2,", -"MAIL_DIR/cur/17:2,", -"MAIL_DIR/cur/16:2,", -"MAIL_DIR/cur/15:2,", -"MAIL_DIR/cur/14:2,", -"MAIL_DIR/cur/13:2,", -"MAIL_DIR/cur/12:2,", -"MAIL_DIR/cur/11:2,", -"MAIL_DIR/cur/10:2,", -"MAIL_DIR/cur/09:2,", -"MAIL_DIR/cur/08:2,", -"MAIL_DIR/cur/06:2,", -"MAIL_DIR/cur/05:2,", -"MAIL_DIR/cur/04:2,", -"MAIL_DIR/cur/03:2,", -"MAIL_DIR/cur/07:2,", -"MAIL_DIR/cur/02:2,", -"MAIL_DIR/cur/01:2,"] +"MAIL_DIR/bar/cur/20:2,", +"MAIL_DIR/bar/17:2,", +"MAIL_DIR/foo/baz/new/16:2,", +"MAIL_DIR/foo/baz/new/15:2,", +"MAIL_DIR/foo/baz/cur/14:2,", +"MAIL_DIR/foo/baz/cur/13:2,", +"MAIL_DIR/foo/baz/12:2,", +"MAIL_DIR/foo/baz/11:2,", +"MAIL_DIR/foo/new/10:2,", +"MAIL_DIR/foo/new/09:2,", +"MAIL_DIR/foo/cur/08:2,", +"MAIL_DIR/foo/06:2,", +"MAIL_DIR/bar/baz/05:2,", +"MAIL_DIR/new/04:2,", +"MAIL_DIR/foo/new/03:2,", +"MAIL_DIR/foo/cur/07:2,", +"MAIL_DIR/02:2,", +"MAIL_DIR/01:2,"] EOF -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "--output=files --format=json --duplicate=2" notmuch search --format=json --output=files --duplicate=2 '*' | notmuch_search_files_sanitize >OUTPUT cat <EXPECTED -["MAIL_DIR/cur/51:2,"] +["$dup2"] EOF -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "--output=tags" notmuch search --output=tags '*' >OUTPUT @@ -371,7 +412,7 @@ inbox signed unread EOF -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "--output=tags --format=json" notmuch search --format=json --output=tags '*' >OUTPUT @@ -381,7 +422,7 @@ cat <EXPECTED "signed", "unread"] EOF -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "sanitize output for quoted-printable line-breaks in author and subject" add_message "[subject]='two =?ISO-8859-1?Q?line=0A_subject?= @@ -390,16 +431,16 @@ notmuch search id:"$gen_msg_id" | notmuch_search_sanitize >OUTPUT cat <EXPECTED thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; two line subject headers (inbox unread) EOF -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "search for non-existent message prints nothing" notmuch search "no-message-matches-this" > OUTPUT echo -n >EXPECTED -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "search --format=json for non-existent message prints proper empty json" notmuch search --format=json "no-message-matches-this" > OUTPUT echo "[]" >EXPECTED -test_expect_equal_file OUTPUT EXPECTED +test_expect_equal_file EXPECTED OUTPUT test_done