From 20f78709faae8fb36c6ebbf81ecfc856a5dcd3c7 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 8 Dec 2013 16:39:05 +0800 Subject: test: pass expected output through json_sanitize in 2 places This makes the tests more robust against changes in the sanitization rules. --- test/missing-headers | 8 +++++--- test/multipart | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/missing-headers b/test/missing-headers index 43e861bc..cb38301c 100755 --- a/test/missing-headers +++ b/test/missing-headers @@ -95,7 +95,7 @@ Body test_begin_subtest "Show: json" output=$(notmuch show --format=json '*' | notmuch_json_show_sanitize) -test_expect_equal_json "$output" ' +expected=$(notmuch_json_show_sanitize <OUTPUT -cat <EXPECTED +notmuch_json_show_sanitize <EXPECTED {"reply-headers": {"Subject": "Re: Multipart message", "From": "Notmuch Test Suite ", "To": "Carl Worth , cworth@cworth.org", -- cgit v1.2.3 From 18921be2e9c0b15c7a4c053718470f667fd35b35 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 8 Dec 2013 16:41:34 +0800 Subject: test: sanitize Date and timestamp fields in json Eventually we want test messages to have distinct dates to avoid reproducability problems. This sanitization will prevent some test failures when that change is made. Replace the use of a local function in maildir-sync with notmuch_json_show_sanitize --- test/maildir-sync | 15 +++++---------- test/test-lib.sh | 4 +++- 2 files changed, 8 insertions(+), 11 deletions(-) (limited to 'test') diff --git a/test/maildir-sync b/test/maildir-sync index 33d2c585..3186e70f 100755 --- a/test/maildir-sync +++ b/test/maildir-sync @@ -4,11 +4,6 @@ test_description="maildir synchronization" . ./test-lib.sh -# Avoid including the local value of MAIL_DIR in the result. -filter_show_json() { - sed -e "s|${MAIL_DIR}/|MAIL_DIR/|" -} - # Create the expected maildir structure mkdir $MAIL_DIR/cur mkdir $MAIL_DIR/new @@ -40,18 +35,18 @@ output=$(cd ${MAIL_DIR}/cur; ls -1 adding-replied*) test_expect_equal "$output" "adding-replied-tag:2,RS" test_begin_subtest "notmuch show works with renamed file (without notmuch new)" -output=$(notmuch show --format=json id:${gen_msg_id} | filter_show_json) -test_expect_equal_json "$output" '[[[{"id": "adding-replied-tag@notmuch-test-suite", +output=$(notmuch show --format=json id:${gen_msg_id} | notmuch_json_show_sanitize) +test_expect_equal_json "$output" '[[[{"id": "XXXXX", "match": true, "excluded": false, -"filename": "MAIL_DIR/cur/adding-replied-tag:2,RS", -"timestamp": 978709437, +"filename": "YYYYY", +"timestamp": 42, "date_relative": "2001-01-05", "tags": ["inbox","replied"], "headers": {"Subject": "Adding replied tag", "From": "Notmuch Test Suite ", "To": "Notmuch Test Suite ", -"Date": "Fri, 05 Jan 2001 15:43:57 +0000"}, +"Date": "GENERATED_DATE"}, "body": [{"id": 1, "content-type": "text/plain", "content": "This is just a test message (#3)\n"}]}, diff --git a/test/test-lib.sh b/test/test-lib.sh index 8611ba5e..8f18e735 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -625,7 +625,9 @@ notmuch_json_show_sanitize () { sed \ -e 's|"id": "[^"]*",|"id": "XXXXX",|g' \ - -e 's|"filename": "/[^"]*",|"filename": "YYYYY",|g' + -e 's|"Date": "Fri, 05 Jan 2001 [^"]*0000"|"Date": "GENERATED_DATE"|g' \ + -e 's|"filename": "/[^"]*",|"filename": "YYYYY",|g' \ + -e 's|"timestamp": 97.......|"timestamp": 42|g' } notmuch_emacs_error_sanitize () -- cgit v1.2.3 From 72ff135ac3e79be548bf5b82b63d15ba278ef4ce Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 8 Dec 2013 22:52:41 +0800 Subject: test: sanitize dates in emacs, raw, and text output add a new function notmuch_date_sanitize for rfc822-ish things. Add date sanitization to notmuch_show_sanitize_all and use it more places. This is all in aid of a transition to unique timestamps on messages. --- test/emacs | 12 +++++++----- test/emacs-show | 10 ++++++---- test/encoding | 8 ++++---- test/raw | 8 ++++---- test/test-lib.sh | 9 ++++++++- 5 files changed, 29 insertions(+), 18 deletions(-) (limited to 'test') diff --git a/test/emacs b/test/emacs index 456435c1..1b1ebe31 100755 --- a/test/emacs +++ b/test/emacs @@ -86,15 +86,16 @@ add_message "[subject]=\"message-with-invalid-from\"" \ "[from]=\"\\\"Invalid \\\" From\\\" \"" thread=$(notmuch search --output=threads subject:message-with-invalid-from) test_emacs "(notmuch-show \"$thread\") - (test-output)" + (test-output \"OUTPUT.raw\")" cat <EXPECTED "Invalid " (2001-01-05) (inbox) Subject: message-with-invalid-from To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE This is just a test message (#1) EOF +notmuch_date_sanitize < OUTPUT.raw > OUTPUT test_expect_equal_file OUTPUT EXPECTED test_begin_subtest "Navigation of notmuch-search to thread view" @@ -605,11 +606,11 @@ Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing in e-mail?"' test_emacs "(notmuch-show \"top-posting\") - (test-visible-output)" + (test-visible-output \"OUTPUT.raw\")" echo "Notmuch Test Suite (2001-01-05) (inbox) Subject: The problem with top-posting To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? @@ -618,13 +619,14 @@ Q: What is the most annoying thing in e-mail? Top Poster (2001-01-05) (inbox unread) Subject: Re: The problem with top-posting To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE Thanks for the advice! I will be sure to put it to good use. -Top Poster [ 9-line hidden original message. Click/Enter to show. ]" > EXPECTED +notmuch_date_sanitize < OUTPUT.raw > OUTPUT test_expect_equal_file OUTPUT EXPECTED test_begin_subtest "Hiding message in notmuch-show view" diff --git a/test/emacs-show b/test/emacs-show index ec863334..2a3a5356 100755 --- a/test/emacs-show +++ b/test/emacs-show @@ -19,13 +19,14 @@ cat <EXPECTED Notmuch Test Suite (2001-01-05) (inbox) Subject: Hiding Original Message region at beginning of a message To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE [ 2-line hidden original message. Click/Enter to show. ] EOF test_emacs "(notmuch-show \"id:$message_id\") - (test-visible-output)" + (test-visible-output \"OUTPUT.raw\")" +notmuch_date_sanitize < OUTPUT.raw > OUTPUT test_expect_equal_file OUTPUT EXPECTED test_begin_subtest "Bare subject #1" @@ -130,12 +131,12 @@ mid:abc%20def mid:abc. mid:abc, mid:abc;"' test_emacs '(notmuch-show "id:'$gen_msg_id'") (notmuch-test-mark-links) - (test-visible-output)' + (test-visible-output "OUTPUT.raw")' cat <EXPECTED Notmuch Test Suite (2001-01-05) (inbox) Subject: id buttonization To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE <> <>. <>, <>; <>: @@ -159,6 +160,7 @@ cid:xxx <> <>. <>, <>; EOF +notmuch_date_sanitize < OUTPUT.raw > OUTPUT test_expect_equal_file OUTPUT EXPECTED diff --git a/test/encoding b/test/encoding index 8609652c..b6c86bf0 100755 --- a/test/encoding +++ b/test/encoding @@ -5,14 +5,14 @@ test_description="encoding issues" test_begin_subtest "Message with text of unknown charset" add_message '[content-type]="text/plain; charset=unknown-8bit"' \ "[body]=irrelevant" -output=$(notmuch show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize) -test_expect_equal "$output" " message{ id:msg-001@notmuch-test-suite depth:0 match:1 excluded:0 filename:/XXX/mail/msg-001 +output=$(notmuch show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize_all) +test_expect_equal "$output" " message{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX header{ Notmuch Test Suite (2001-01-05) (inbox unread) Subject: Message with text of unknown charset From: Notmuch Test Suite To: Notmuch Test Suite -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE header} body{ part{ ID: 1, Content-type: text/plain @@ -26,7 +26,7 @@ add_message '[content-type]="text/plain; charset=iso-8859-2"' \ '[content-transfer-encoding]=8bit' \ '[subject]="ISO-8859-2 encoded message"' \ "[body]=$'Czech word tu\350\362\341\350\350\355 means pinguin\'s.'" # ISO-8859-2 characters are generated by shell's escape sequences -output=$(notmuch search tučňáččí 2>&1 | notmuch_show_sanitize) +output=$(notmuch search tučňáččí 2>&1 | notmuch_show_sanitize_all) test_expect_equal "$output" "thread:0000000000000002 2001-01-05 [1/1] Notmuch Test Suite; ISO-8859-2 encoded message (inbox unread)" test_begin_subtest "RFC 2047 encoded word with spaces" diff --git a/test/raw b/test/raw index de0b8677..daf5735c 100755 --- a/test/raw +++ b/test/raw @@ -11,22 +11,22 @@ output=$(notmuch show --format=raw "*" 2>&1) test_expect_equal "$output" "Error: search term did not match precisely one message." test_begin_subtest "Show a raw message" -output=$(notmuch show --format=raw id:msg-001@notmuch-test-suite) +output=$(notmuch show --format=raw id:msg-001@notmuch-test-suite | notmuch_date_sanitize) test_expect_equal "$output" "From: Notmuch Test Suite To: Notmuch Test Suite Message-Id: Subject: Test message #1 -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE This is just a test message (#1)" test_begin_subtest "Show another raw message" -output=$(notmuch show --format=raw id:msg-002@notmuch-test-suite) +output=$(notmuch show --format=raw id:msg-002@notmuch-test-suite | notmuch_date_sanitize) test_expect_equal "$output" "From: Notmuch Test Suite To: Notmuch Test Suite Message-Id: Subject: Test message #2 -Date: Fri, 05 Jan 2001 15:43:57 +0000 +Date: GENERATED_DATE This is just a test message (#2)" diff --git a/test/test-lib.sh b/test/test-lib.sh index 8f18e735..d22408d8 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -618,7 +618,8 @@ notmuch_show_sanitize_all () { sed \ -e 's| filename:.*| filename:XXXXX|' \ - -e 's| id:[^ ]* | id:XXXXX |' + -e 's| id:[^ ]* | id:XXXXX |' | \ + notmuch_date_sanitize } notmuch_json_show_sanitize () @@ -641,6 +642,12 @@ notmuch_emacs_error_sanitize () -e 's/^\[.*\]$/[XXX]/' \ -e "s|^\(command: \)\{0,1\}/.*/$command|\1YYY/$command|" } + +notmuch_date_sanitize () +{ + sed \ + -e 's/^Date: Fri, 05 Jan 2001 .*0000/Date: GENERATED_DATE/' +} # End of notmuch helper functions # Use test_set_prereq to tell that a particular prerequisite is available. -- cgit v1.2.3 From b421f00a05dba82d6c3df6dcb6ae9063c5395b49 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 8 Dec 2013 23:29:38 +0800 Subject: test: give unique timestamps to messages The choice of decreasing timestamps is a hack which reduces the number of existing tests which fail. This can be changed to increasing if/when somebody wants update another 47 tests. --- test/excludes | 4 ++-- test/test-lib.sh | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/test/excludes b/test/excludes index f1ae9ea9..8bbbc2dd 100755 --- a/test/excludes +++ b/test/excludes @@ -67,7 +67,7 @@ thread:XXX 2001-01-05 [1/2] Notmuch Test Suite; Not deleted reply (deleted inb test_begin_subtest "Search, don't exclude \"deleted\" messages when --exclude=flag specified" output=$(notmuch search --exclude=flag 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)" +thread:XXX 2001-01-05 [1/2] Notmuch Test Suite; Deleted (deleted inbox unread)" test_begin_subtest "Search, don't exclude \"deleted\" messages from search if not configured" notmuch config set search.exclude_tags @@ -152,7 +152,7 @@ ${matching_message_ids[5]}" test_begin_subtest "Search, exclude=flag (thread summary)" output=$(notmuch search --exclude=flag tag:test | notmuch_search_sanitize) test_expect_equal "$output" "thread:XXX 2001-01-05 [0/6] Notmuch Test Suite; All messages excluded: single match: reply 2 (deleted inbox test unread) -thread:XXX 2001-01-05 [0/6] Notmuch Test Suite; All messages excluded: double match: reply 4 (deleted inbox test unread) +thread:XXX 2001-01-05 [0/6] Notmuch Test Suite; All messages excluded: double match: reply 2 (deleted inbox test unread) thread:XXX 2001-01-05 [0/6] Notmuch Test Suite; Some messages excluded: single excluded match: reply 3 (deleted inbox test unread) thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single non-excluded match: reply 4 (deleted inbox test unread) thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; No messages excluded: single match: reply 3 (inbox test unread)" diff --git a/test/test-lib.sh b/test/test-lib.sh index d22408d8..53cb9475 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -356,7 +356,11 @@ generate_message () fi if [ -z "${template[date]}" ]; then - template[date]="Fri, 05 Jan 2001 15:43:57 +0000" + # we use decreasing timestamps here for historical reasons; + # the existing test suite when we converted to unique timestamps just + # happened to have signicantly fewer failures with that choice. + template[date]=$(TZ=UTC printf "%(%a, %d %b %Y %T %z)T\n" \ + $((978709437 - gen_msg_cnt))) fi additional_headers="" -- cgit v1.2.3 From 513a36d105995c327c23fec5f60ea70c65b986dd Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sat, 14 Dec 2013 22:39:54 +0800 Subject: test: add emacs_fcc_message that does not use smtp-dummy Most of the tests previously using emacs_deliver_message do not use the actual transmitted message, so we replace it with a simpler (and presumably more reliable function) that only saves (and indexes) an fcc copy of the message. --- test/crypto | 10 +++------- test/emacs | 4 ++-- test/json | 2 +- test/sexp | 2 +- test/test-lib.sh | 30 ++++++++++++++++++++++++++++++ 5 files changed, 37 insertions(+), 11 deletions(-) (limited to 'test') diff --git a/test/crypto b/test/crypto index 9e5ff4f7..477b397e 100755 --- a/test/crypto +++ b/test/crypto @@ -28,12 +28,8 @@ add_gnupg_home # get key fingerprint FINGERPRINT=$(gpg --no-tty --list-secret-keys --with-colons --fingerprint | grep '^fpr:' | cut -d: -f10) -# for some reason this is needed for emacs_deliver_message to work, -# although I can't figure out why -add_email_corpus - test_expect_success 'emacs delivery of signed message' \ -'emacs_deliver_message \ +'emacs_fcc_message \ "test signed message 001" \ "This is a test signed message." \ "(mml-secure-message-sign)"' @@ -143,7 +139,7 @@ cat <TESTATTACHMENT This is a test file. EOF test_expect_success 'emacs delivery of encrypted message with attachment' \ -'emacs_deliver_message \ +'emacs_fcc_message \ "test encrypted message 001" \ "This is a test encrypted message.\n" \ "(mml-attach-file \"TESTATTACHMENT\") (mml-secure-message-encrypt)"' @@ -270,7 +266,7 @@ test_expect_equal_json \ mv "${GNUPGHOME}"{.bak,} test_expect_success 'emacs delivery of encrypted + signed message' \ -'emacs_deliver_message \ +'emacs_fcc_message \ "test encrypted message 002" \ "This is another test encrypted message.\n" \ "(mml-secure-message-sign-encrypt)"' diff --git a/test/emacs b/test/emacs index 1b1ebe31..863219d9 100755 --- a/test/emacs +++ b/test/emacs @@ -771,7 +771,7 @@ test_expect_equal_file OUTPUT EXPECTED test_begin_subtest "Do not call notmuch for non-inlinable application/mpeg parts" id='message-with-application/mpeg-attachment@notmuchmail.org' -emacs_deliver_message \ +emacs_fcc_message \ 'Message with application/mpeg attachment' \ '' \ "(message-goto-eoh) @@ -786,7 +786,7 @@ test_expect_equal $(notmuch_counter_value) 1 test_begin_subtest "Do not call notmuch for non-inlinable audio/mpeg parts" id='message-with-audio/mpeg-attachment@notmuchmail.org' -emacs_deliver_message \ +emacs_fcc_message \ 'Message with audio/mpeg attachment' \ '' \ "(message-goto-eoh) diff --git a/test/json b/test/json index e07a2904..c1cf649d 100755 --- a/test/json +++ b/test/json @@ -38,7 +38,7 @@ test_expect_equal_json "$output" "[[[{\"id\": \"${gen_msg_id}\", \"match\": true test_begin_subtest "Show message: json, inline attachment filename" subject='json-show-inline-attachment-filename' id="json-show-inline-attachment-filename@notmuchmail.org" -emacs_deliver_message \ +emacs_fcc_message \ "$subject" \ 'This is a test message with inline attachment with a filename' \ "(mml-attach-file \"$TEST_DIRECTORY/README\" nil nil \"inline\") diff --git a/test/sexp b/test/sexp index be815e12..667e3195 100755 --- a/test/sexp +++ b/test/sexp @@ -29,7 +29,7 @@ test_expect_equal "$output" "((((:id \"${gen_msg_id}\" :match t :excluded nil :f test_begin_subtest "Show message: sexp, inline attachment filename" subject='sexp-show-inline-attachment-filename' id="sexp-show-inline-attachment-filename@notmuchmail.org" -emacs_deliver_message \ +emacs_fcc_message \ "$subject" \ 'This is a test message with inline attachment with a filename' \ "(mml-attach-file \"$TEST_DIRECTORY/README\" nil nil \"inline\") diff --git a/test/test-lib.sh b/test/test-lib.sh index 53cb9475..be0c133b 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -470,6 +470,36 @@ emacs_deliver_message () notmuch new >/dev/null } +# Pretend to deliver a message with emacs. Really save it to a file +# and add it to the database +# +# Uses emacs to generate and deliver a message to the mail store. +# Accepts arbitrary extra emacs/elisp functions to modify the message +# before sending, which is useful to doing things like attaching files +# to the message and encrypting/signing. +emacs_fcc_message () +{ + local subject="$1" + local body="$2" + shift 2 + # before we can send a message, we have to prepare the FCC maildir + mkdir -p "$MAIL_DIR"/sent/{cur,new,tmp} + + test_emacs \ + "(let ((message-send-mail-function (lambda () t)) + (mail-host-address \"example.com\")) + (notmuch-mua-mail) + (message-goto-to) + (insert \"test_suite@notmuchmail.org\nDate: 01 Jan 2000 12:00:00 -0000\") + (message-goto-subject) + (insert \"${subject}\") + (message-goto-body) + (insert \"${body}\") + $@ + (message-send-and-exit))" || return 1 + notmuch new >/dev/null +} + # Generate a corpus of email and add it to the database. # # This corpus is fixed, (it happens to be 50 messages from early in -- cgit v1.2.3 From 30cde97ba87d7eb60ce4b0aa1c60d0ee6487fac9 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sat, 14 Dec 2013 22:49:43 +0800 Subject: test: remove call to notmuch-hello from emacs_deliver_message There is an obscure bug in notmuch-hello that very occasionally causes emacs_deliver_message to fail. Since it it doesn't serve any actual purpose in the function we delete it, and leave tracking down the the bug for another day. --- test/test-lib.sh | 1 - 1 file changed, 1 deletion(-) (limited to 'test') diff --git a/test/test-lib.sh b/test/test-lib.sh index be0c133b..efa9fb6f 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -452,7 +452,6 @@ emacs_deliver_message () (mail-host-address \"example.com\") (smtpmail-smtp-server \"localhost\") (smtpmail-smtp-service \"25025\")) - (notmuch-hello) (notmuch-mua-mail) (message-goto-to) (insert \"test_suite@notmuchmail.org\nDate: 01 Jan 2000 12:00:00 -0000\") -- cgit v1.2.3 From ef7b77ea3b1b23d29af3f0d8d9393b94b3ada993 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Mon, 23 Dec 2013 15:20:36 -0500 Subject: test: Fix transient error in 'new' test This fixes a non-deterministic failure in "Ignore files and directories specified in new.ignore (multiple occurrences)". The test assumed that all directories would be scanned, even though nothing updated the mtime of ${MAIL_DIR}. It *usually* worked nevertheless because the tests run quickly enough that the directory mtime is usually the same as the current time, so notmuch new does not update the mtime in the database (because more changes could occur in the same second). However, when it occasionally did update the mtime in the database, the notmuch new call in this test would (correctly) skip "pass 2" of scanning ${MAIL_DIR}, causing it to skip the following expected lines: (D) add_files_recursive, pass 2: explicitly ignoring ${MAIL_DIR}/.git (D) add_files_recursive, pass 2: explicitly ignoring ${MAIL_DIR}/.ignored_hidden_file (D) add_files_recursive, pass 2: explicitly ignoring ${MAIL_DIR}/ignored_file This patch fixes this problem by touching ${MAIL_DIR} to ensure it gets scanned and by rearranging the test to ensure the directories are touched immediately before the main notmuch new call in the test. --- test/new | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/new b/test/new index 3eff2fe9..f27423da 100755 --- a/test/new +++ b/test/new @@ -218,9 +218,10 @@ test_expect_equal "$output" "Added 1 new message to the database." test_begin_subtest "Ignore files and directories specified in new.ignore (multiple occurrences)" notmuch config set new.ignore .git ignored_file .ignored_hidden_file +notmuch new > /dev/null # ensure that files/folders will be printed in ASCII order. touch "${MAIL_DIR}"/.git # change .git's mtime for notmuch new to rescan. +touch "${MAIL_DIR}" # likewise for MAIL_DIR mkdir -p "${MAIL_DIR}"/one/two/three/.git -notmuch new > /dev/null # ensure that files/folders will be printed in ASCII order. touch "${MAIL_DIR}"/{one,one/two,one/two/three}/ignored_file output=$(NOTMUCH_NEW --debug 2>&1 | sort) test_expect_equal "$output" \ -- cgit v1.2.3