Source: notmuch
Version: 0.35-1
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20220326 ftbfs-bookworm

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
> make[2]: Entering directory '/<<PKGBUILDDIR>>'
> cc -c -DNOTMUCH_VERSION=0.35 -Wall -Wextra -Wwrite-strings 
> -Wmissing-declarations -I./util -I./compat -I./lib -fPIC -fvisibility=hidden 
> -I./parse-time-string -I. -Wdate-time -D_FORTIFY_SOURCE=2 
> -D_LARGEFILE64_SOURCE -pthread -I/usr/include/gmime-3.0 
> -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 
> -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -DHAVE_VALGRIND=0  
> -DHAVE_SFSEXP=1 -I/usr/include/sfsexp -DHAVE_GETLINE=1 -DWITH_EMACS=1 
> -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_STRCASESTR=1 -DHAVE_STRSEP=1 
> -DHAVE_TIMEGM=1 -DHAVE_D_TYPE=1 -DSTD_GETPWUID=1 -DSTD_ASCTIME=1 
> -DSILENCE_XAPIAN_DEPRECATION_WARNINGS -DHAVE_XAPIAN_DB_RETRY_LOCK=1 -g -O2 
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
> -Werror=format-security test/arg-test.c -o test/arg-test.o -MD -MP -MF 
> .deps/test/arg-test.d
> cc -c -DNOTMUCH_VERSION=0.35 -Wall -Wextra -Wwrite-strings 
> -Wmissing-declarations -I./util -I./compat -I./lib -fPIC -fvisibility=hidden 
> -I./parse-time-string -I. -Wdate-time -D_FORTIFY_SOURCE=2 
> -D_LARGEFILE64_SOURCE -pthread -I/usr/include/gmime-3.0 
> -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 
> -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -DHAVE_VALGRIND=0  
> -DHAVE_SFSEXP=1 -I/usr/include/sfsexp -DHAVE_GETLINE=1 -DWITH_EMACS=1 
> -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_STRCASESTR=1 -DHAVE_STRSEP=1 
> -DHAVE_TIMEGM=1 -DHAVE_D_TYPE=1 -DSTD_GETPWUID=1 -DSTD_ASCTIME=1 
> -DSILENCE_XAPIAN_DEPRECATION_WARNINGS -DHAVE_XAPIAN_DB_RETRY_LOCK=1 -g -O2 
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
> -Werror=format-security test/hex-xcode.c -o test/hex-xcode.o -MD -MP -MF 
> .deps/test/hex-xcode.d
> cc -c -DNOTMUCH_VERSION=0.35 -Wall -Wextra -Wwrite-strings 
> -Wmissing-declarations -I./util -I./compat -I./lib -fPIC -fvisibility=hidden 
> -I./parse-time-string -I. -Wdate-time -D_FORTIFY_SOURCE=2 
> -D_LARGEFILE64_SOURCE -pthread -I/usr/include/gmime-3.0 
> -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 
> -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -DHAVE_VALGRIND=0  
> -DHAVE_SFSEXP=1 -I/usr/include/sfsexp -DHAVE_GETLINE=1 -DWITH_EMACS=1 
> -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_STRCASESTR=1 -DHAVE_STRSEP=1 
> -DHAVE_TIMEGM=1 -DHAVE_D_TYPE=1 -DSTD_GETPWUID=1 -DSTD_ASCTIME=1 
> -DSILENCE_XAPIAN_DEPRECATION_WARNINGS -DHAVE_XAPIAN_DB_RETRY_LOCK=1 -g -O2 
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
> -Werror=format-security test/random-corpus.c -o test/random-corpus.o -MD -MP 
> -MF .deps/test/random-corpus.d
> cc -c -DNOTMUCH_VERSION=0.35 -Wall -Wextra -Wwrite-strings 
> -Wmissing-declarations -I./util -I./compat -I./lib -fPIC -fvisibility=hidden 
> -I./parse-time-string -I. -Wdate-time -D_FORTIFY_SOURCE=2 
> -D_LARGEFILE64_SOURCE -pthread -I/usr/include/gmime-3.0 
> -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 
> -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -DHAVE_VALGRIND=0  
> -DHAVE_SFSEXP=1 -I/usr/include/sfsexp -DHAVE_GETLINE=1 -DWITH_EMACS=1 
> -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_STRCASESTR=1 -DHAVE_STRSEP=1 
> -DHAVE_TIMEGM=1 -DHAVE_D_TYPE=1 -DSTD_GETPWUID=1 -DSTD_ASCTIME=1 
> -DSILENCE_XAPIAN_DEPRECATION_WARNINGS -DHAVE_XAPIAN_DB_RETRY_LOCK=1 -g -O2 
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
> -Werror=format-security test/database-test.c -o test/database-test.o -MD -MP 
> -MF .deps/test/database-test.d
> cc -c -DNOTMUCH_VERSION=0.35 -Wall -Wextra -Wwrite-strings 
> -Wmissing-declarations -I./util -I./compat -I./lib -fPIC -fvisibility=hidden 
> -I./parse-time-string -I. -Wdate-time -D_FORTIFY_SOURCE=2 
> -D_LARGEFILE64_SOURCE -pthread -I/usr/include/gmime-3.0 
> -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 
> -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -DHAVE_VALGRIND=0  
> -DHAVE_SFSEXP=1 -I/usr/include/sfsexp -DHAVE_GETLINE=1 -DWITH_EMACS=1 
> -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_STRCASESTR=1 -DHAVE_STRSEP=1 
> -DHAVE_TIMEGM=1 -DHAVE_D_TYPE=1 -DSTD_GETPWUID=1 -DSTD_ASCTIME=1 
> -DSILENCE_XAPIAN_DEPRECATION_WARNINGS -DHAVE_XAPIAN_DB_RETRY_LOCK=1 -g -O2 
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
> -Werror=format-security test/parse-time.c -o test/parse-time.o -MD -MP -MF 
> .deps/test/parse-time.d
> cc -c -DNOTMUCH_VERSION=0.35 -Wall -Wextra -Wwrite-strings 
> -Wmissing-declarations -I./util -I./compat -I./lib -fPIC -fvisibility=hidden 
> -I./parse-time-string -I. -Wdate-time -D_FORTIFY_SOURCE=2 
> -D_LARGEFILE64_SOURCE -pthread -I/usr/include/gmime-3.0 
> -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 
> -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -DHAVE_VALGRIND=0  
> -DHAVE_SFSEXP=1 -I/usr/include/sfsexp -DHAVE_GETLINE=1 -DWITH_EMACS=1 
> -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_STRCASESTR=1 -DHAVE_STRSEP=1 
> -DHAVE_TIMEGM=1 -DHAVE_D_TYPE=1 -DSTD_GETPWUID=1 -DSTD_ASCTIME=1 
> -DSILENCE_XAPIAN_DEPRECATION_WARNINGS -DHAVE_XAPIAN_DB_RETRY_LOCK=1 -g -O2 
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
> -Werror=format-security test/smtp-dummy.c -o test/smtp-dummy.o -MD -MP -MF 
> .deps/test/smtp-dummy.d
> c++ -c -Wall -Wextra -Wwrite-strings -I./util -I./compat -I./lib -fPIC 
> -fvisibility=hidden -I./parse-time-string -I. -fvisibility-inlines-hidden 
> -Wdate-time -D_FORTIFY_SOURCE=2 -D_LARGEFILE64_SOURCE -pthread 
> -I/usr/include/gmime-3.0 -I/usr/include/libmount -I/usr/include/blkid 
> -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   
> -DHAVE_VALGRIND=0  -DHAVE_SFSEXP=1 -I/usr/include/sfsexp -DHAVE_GETLINE=1 
> -DWITH_EMACS=1 -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_STRCASESTR=1 
> -DHAVE_STRSEP=1 -DHAVE_TIMEGM=1 -DHAVE_D_TYPE=1 -DSTD_GETPWUID=1 
> -DSTD_ASCTIME=1 -DSILENCE_XAPIAN_DEPRECATION_WARNINGS 
> -DHAVE_XAPIAN_DB_RETRY_LOCK=1  -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. 
> -fstack-protector-strong -Wformat -Werror=format-security test/symbol-test.cc 
> -o test/symbol-test.o -MD -MP -MF .deps/test/symbol-test.d
> c++ -c -Wall -Wextra -Wwrite-strings -I./util -I./compat -I./lib -fPIC 
> -fvisibility=hidden -I./parse-time-string -I. -fvisibility-inlines-hidden 
> -Wdate-time -D_FORTIFY_SOURCE=2 -D_LARGEFILE64_SOURCE -pthread 
> -I/usr/include/gmime-3.0 -I/usr/include/libmount -I/usr/include/blkid 
> -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   
> -DHAVE_VALGRIND=0  -DHAVE_SFSEXP=1 -I/usr/include/sfsexp -DHAVE_GETLINE=1 
> -DWITH_EMACS=1 -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_STRCASESTR=1 
> -DHAVE_STRSEP=1 -DHAVE_TIMEGM=1 -DHAVE_D_TYPE=1 -DSTD_GETPWUID=1 
> -DSTD_ASCTIME=1 -DSILENCE_XAPIAN_DEPRECATION_WARNINGS 
> -DHAVE_XAPIAN_DB_RETRY_LOCK=1  -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. 
> -fstack-protector-strong -Wformat -Werror=format-security 
> test/make-db-version.cc -o test/make-db-version.o -MD -MP -MF 
> .deps/test/make-db-version.d
> c++ -c -Wall -Wextra -Wwrite-strings -I./util -I./compat -I./lib -fPIC 
> -fvisibility=hidden -I./parse-time-string -I. -fvisibility-inlines-hidden 
> -Wdate-time -D_FORTIFY_SOURCE=2 -D_LARGEFILE64_SOURCE -pthread 
> -I/usr/include/gmime-3.0 -I/usr/include/libmount -I/usr/include/blkid 
> -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   
> -DHAVE_VALGRIND=0  -DHAVE_SFSEXP=1 -I/usr/include/sfsexp -DHAVE_GETLINE=1 
> -DWITH_EMACS=1 -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_STRCASESTR=1 
> -DHAVE_STRSEP=1 -DHAVE_TIMEGM=1 -DHAVE_D_TYPE=1 -DSTD_GETPWUID=1 
> -DSTD_ASCTIME=1 -DSILENCE_XAPIAN_DEPRECATION_WARNINGS 
> -DHAVE_XAPIAN_DB_RETRY_LOCK=1  -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. 
> -fstack-protector-strong -Wformat -Werror=format-security 
> test/ghost-report.cc -o test/ghost-report.o -MD -MP -MF 
> .deps/test/ghost-report.d
> cc -c -DNOTMUCH_VERSION=0.35 -Wall -Wextra -Wwrite-strings 
> -Wmissing-declarations -I./util -I./compat -I./lib -fPIC -fvisibility=hidden 
> -I./parse-time-string -I. -Wdate-time -D_FORTIFY_SOURCE=2 
> -D_LARGEFILE64_SOURCE -pthread -I/usr/include/gmime-3.0 
> -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 
> -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -DHAVE_VALGRIND=0  
> -DHAVE_SFSEXP=1 -I/usr/include/sfsexp -DHAVE_GETLINE=1 -DWITH_EMACS=1 
> -DHAVE_CANONICALIZE_FILE_NAME=1 -DHAVE_STRCASESTR=1 -DHAVE_STRSEP=1 
> -DHAVE_TIMEGM=1 -DHAVE_D_TYPE=1 -DSTD_GETPWUID=1 -DSTD_ASCTIME=1 
> -DSILENCE_XAPIAN_DEPRECATION_WARNINGS -DHAVE_XAPIAN_DB_RETRY_LOCK=1 -g -O2 
> -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
> -Werror=format-security test/message-id-parse.c -o test/message-id-parse.o 
> -MD -MP -MF .deps/test/message-id-parse.d
> cc test/arg-test.o command-line-arguments.o util/libnotmuch_util.a -o 
> test/arg-test -Wl,-z,relro -Wl,-z,now
> cc test/parse-time.o parse-time-string/parse-time-string.o -o test/parse-time 
> -Wl,-z,relro -Wl,-z,now
> cc test/smtp-dummy.o -o test/smtp-dummy -Wl,-z,relro -Wl,-z,now
> cc test/hex-xcode.o command-line-arguments.o util/libnotmuch_util.a -o 
> test/hex-xcode -Wl,-z,relro -Wl,-z,now -ltalloc
> c++ test/random-corpus.o test/database-test.o notmuch-config.o status.o 
> command-line-arguments.o lib/libnotmuch.a util/libnotmuch_util.a 
> parse-time-string/libparse-time-string.a -o test/random-corpus -Wl,-z,relro 
> -Wl,-z,now -lgmime-3.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -ltalloc -lz 
> -L/usr/lib/x86_64-linux-gnu -lxapian -lsexp
> cc test/message-id-parse.o lib/libnotmuch.a util/libnotmuch_util.a -o 
> test/message-id-parse -Wl,-z,relro -Wl,-z,now -ltalloc
> c++ test/symbol-test.o lib/libnotmuch.so -o test/symbol-test -Wl,-z,relro 
> -Wl,-z,now -Llib -lnotmuch -L/usr/lib/x86_64-linux-gnu -lxapian
> c++ test/make-db-version.o -o test/make-db-version -Wl,-z,relro -Wl,-z,now 
> -L/usr/lib/x86_64-linux-gnu -lxapian
> c++ test/ghost-report.o -o test/ghost-report -Wl,-z,relro -Wl,-z,now 
> -L/usr/lib/x86_64-linux-gnu -lxapian
> INFO: using 2m timeout for tests
> 
> T000-basic: Testing the test framework itself.
>  PASS   success is reported like this
>  PASS   test runs if prerequisite is satisfied
>  PASS   tests clean up after themselves
>  PASS   tests clean up even after a failure
>  PASS   failure to clean up causes the test to fail
>  PASS   Ensure that test output is suppressed unless the test fails
>  PASS   Ensure that -v does not suppress test output
>  PASS   test that mail store was created
>  PASS   mail store should be empty
>  PASS   NOTMUCH_CONFIG is set and points to an existing file
>  PASS   PATH is set to build directory
>  PASS   notmuch is compiled with debugging symbols
> 
> T010-help-test: Testing online help
>  PASS   notmuch --help
>  PASS   notmuch help
>  PASS   notmuch --version
>  PASS   notmuch --help tag
>  PASS   notmuch help tag
> 
> T020-compact: Testing "notmuch compact"
>  PASS   Running compact
>  PASS   Compact preserves database
>  PASS   Restoring Backup
>  PASS   Checking restored backup
> 
> T030-config: Testing "notmuch config"
>  PASS   Get string value
>  PASS   Get list value
>  PASS   Set string value
>  PASS   Set string value again
>  PASS   Set list value
>  PASS   Set list value again
>  PASS   Remove key
>  PASS   Remove non-existent key
>  PASS   List all items
>  BROKEN Round trip config item with leading spaces
>       --- T030-config.10.expected     2022-03-26 19:29:38.934739982 +0000
>       +++ T030-config.10.output       2022-03-26 19:29:38.934739982 +0000
>       @@ -1 +1 @@
>       -  thing
>       +thing
>  BROKEN Round trip config item with leading tab
>       --- T030-config.11.expected     2022-03-26 19:29:38.950739998 +0000
>       +++ T030-config.11.output       2022-03-26 19:29:38.950739998 +0000
>       @@ -1 +1 @@
>       -       thing
>       +thing
>  PASS   Round trip config item with embedded tab
>  PASS   Round trip config item with embedded backslash
>  PASS   Round trip config item with embedded NL/CR
>  PASS   Top level --config=FILE option
>  PASS   Top level --config:FILE option
>  PASS   Top level --config<space>FILE option
>  PASS   Top level --config=FILE option changed the right file
>  PASS   Read config file through a symlink
>  PASS   Write config file through a symlink
>  PASS   Writing config file through symlink follows symlink
>  PASS   Round trip arbitrary key
>  PASS   Clear arbitrary key
>  PASS   Absolute database path returned
>  PASS   Relative database path expanded
>  PASS   Add config to database
>  PASS   Roundtrip config to/from database
>  PASS   set built_with.* yields error
>  PASS   get built_with.{compact,field_processor} prints true
>  PASS   get built_with.nonexistent prints false
> 
> T035-read-config: Testing Various options for reading configuration
>  PASS   count with saved query from config file
>  PASS   count with saved query from config file (xdg)
>  PASS   count with saved query from config file (xdg+profile)
>  PASS   dump with saved query from config file
>  PASS   dump with saved query from config file (xdg)
>  PASS   dump with saved query from config file (xdg+profile)
>  PASS   restore with xdg config
>  PASS   restore with xdg+profile config
>  PASS   Insert message with custom new.tags (xdg)
>  PASS   Insert message with custom new.tags (xdg+profile)
>  PASS   reindex with saved query from config file
>  PASS   reindex with saved query from config file (xdg)
>  PASS   reindex with saved query from config file (xdg+profile)
>  PASS   reply with saved query from config file
>  PASS   reply with saved query from config file (xdg)
>  PASS   reply with saved query from config file (xdg+profile)
>  PASS   search with alternate config
>  PASS   search with saved query from config file
>  PASS   search with saved query from config file (xdg)
>  PASS   search with saved query from config file (xdg + profile)
>  PASS   address: saved query from config file
>  PASS   address: saved query from config file (xdg)
>  PASS   address: saved query from config file (xdg+profile)
>  PASS   show with alternate config
>  PASS   show with alternate config (xdg)
>  PASS   show with alternate config (xdg+profile)
>  PASS   tag with saved query from config file
>  PASS   tag with saved query from config file (xdg)
>  PASS   tag with saved query from config file (xdg+profile)
>  PASS   running compact (xdg)
>  PASS   running compact (xdg + profile)
>  PASS   run notmuch-new (xdg)
>  PASS   run notmuch-new (xdg + profile)
> 
> T040-setup: Testing "notmuch setup"
>  PASS   Notmuch new without a config suggests notmuch setup
>  PASS   Create a new config interactively
>  PASS   setup consistent with config-set for single items
>  PASS   notmuch with a config but without a database suggests notmuch new
> 
> T050-new: Testing "notmuch new" in several variations
>  PASS   No new messages
>  PASS   Single new message
>  PASS   Single message (full-scan)
>  PASS   Multiple new messages
>  PASS   Multiple new messages (full-scan)
>  PASS   No new messages (non-empty DB)
>  PASS   No new messages (full-scan)
>  PASS   New directories
>  PASS   Alternate inode order
>  PASS   Message moved in
>  PASS   Renamed message
>  PASS   Deleted message
>  PASS   Renamed directory
>  PASS   Deleted directory
>  PASS   New directory (at end of list)
>  PASS   Deleted directory (end of list)
>  PASS   New symlink to directory
>  PASS   New symlink to a file
>  PASS   Broken symlink aborts
>  PASS   New two-level directory
>  PASS   Deleted two-level directory
>  PASS   One character directory at top level
>  PASS   Support single-message mbox
>  PASS   Skip and report non-mail files
>  PASS   Ignore files and directories specified in new.ignore
>  PASS   Ignore files and directories specified in new.ignore (full-scan)
>  PASS   Ignore files and directories specified in new.ignore (multiple 
> occurrences)
>  PASS   Don't stop for ignored broken symlinks
>  PASS   Ignore files and directories specified in new.ignore (regexp)
>  PASS   Quiet: No new mail.
>  PASS   Quiet: new, removed and renamed messages.
>  PASS   Empty tags in new.tags are ignored
>  PASS   leading/trailing whitespace in new.tags is ignored
>  PASS   Tags starting with '-' in new.tags are forbidden
>  PASS   Invalid tags set exit code
>  PASS   .notmuch only ignored at top level
>  BROKEN RFC822 group names are indexed
>       --- T050-new.37.expected        2022-03-26 19:29:41.638742656 +0000
>       +++ T050-new.37.output  2022-03-26 19:29:41.638742656 +0000
>       @@ -1 +1 @@
>       -msg-030@notmuch-test-suite
>       +
>  BROKEN Long directory names don't cause rescan
>       --- T050-new.38.EXPECTED        2022-03-26 19:29:41.670742689 +0000
>       +++ T050-new.38.OUTPUT  2022-03-26 19:29:41.670742689 +0000
>       @@ -1,3 +1,4 @@
>       -Added 1 new message to the database.
>        No new mail.
>       -No new mail. Removed 1 message.
>       +Processed 1 file in almost no time.
>       +No new mail.
>       +No new mail.
> add_file: A Xapian exception occurred
> A Xapian exception occurred finding/creating a directory: Term too long (> 
> 245): 
> XDDIRENTRY2:zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.
> Note: A fatal error was encountered: A Xapian exception occurred
> add_file: A Xapian exception occurred
> A Xapian exception occurred finding/creating a directory: Term too long (> 
> 245): 
> XDDIRENTRY2:zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.
> Note: A fatal error was encountered: A Xapian exception occurred
>  PASS   Xapian exception: read only files
>  PASS   Handle files vanishing between scandir and add_file
>  PASS   Relative database path expanded in new
>  PASS   Relative mail root (in db) expanded in new
>  PASS   reference loop does not crash
>  PASS   reference loop ordered by date
> 
> T051-new-renames: Testing "notmuch new" with directory renames
>  PASS   Index the messages, round 1
>  PASS   Rename folder
>  PASS   Rename folder back
>  PASS   Files remain the same
>  PASS   Index the messages, round 2
>  PASS   Rename folder
>  PASS   Rename folder back
>  PASS   Files remain the same
>  PASS   Index the messages, round 3
>  PASS   Rename folder
>  PASS   Rename folder back
>  PASS   Files remain the same
>  PASS   Index the messages, round 4
>  PASS   Rename folder
>  PASS   Rename folder back
>  PASS   Files remain the same
>  PASS   Index the messages, round 5
>  PASS   Rename folder
>  PASS   Rename folder back
>  PASS   Files remain the same
>  PASS   Index the messages, round 6
>  PASS   Rename folder
>  PASS   Rename folder back
>  PASS   Files remain the same
>  PASS   Index the messages, round 7
>  PASS   Rename folder
>  PASS   Rename folder back
>  PASS   Files remain the same
>  PASS   Index the messages, round 8
>  PASS   Rename folder
>  PASS   Rename folder back
>  PASS   Files remain the same
>  PASS   Index the messages, round 9
>  PASS   Rename folder
>  PASS   Rename folder back
>  PASS   Files remain the same
>  PASS   Index the messages, round 10
>  PASS   Rename folder
>  PASS   Rename folder back
>  PASS   Files remain the same
> 
> T055-path-config: Testing Configuration of mail-root and database path
>  PASS   count (traditional)
>  PASS   count+tag (traditional)
>  PASS   address (traditional)
>  PASS   dump (traditional)
>  PASS   dump + tag + restore (traditional)
>  PASS   reindex (traditional)
>  PASS   use existing database (traditional)
>  PASS   create database (traditional)
>  PASS   detect new files (traditional)
>  PASS   Show a raw message (traditional)
>  PASS   reply (traditional)
>  PASS   insert+search (traditional)
>  PASS   compact+search (traditional)
>  PASS   upgrade backup (traditional)
>  PASS   notmuch +config -database suggests notmuch new (traditional)
>  PASS   Set config value (traditional)
>  PASS   Set config value in database (traditional)
>  PASS   Config list (traditional)
>  PASS   .notmuch without xapian/ handled gracefully (traditional)
>  PASS   count (split)
>  PASS   count+tag (split)
>  PASS   address (split)
>  PASS   dump (split)
>  PASS   dump + tag + restore (split)
>  PASS   reindex (split)
>  PASS   use existing database (split)
>  PASS   create database (split)
>  PASS   detect new files (split)
>  PASS   Show a raw message (split)
>  PASS   reply (split)
>  PASS   insert+search (split)
>  PASS   compact+search (split)
>  PASS   upgrade backup (split)
>  PASS   notmuch +config -database suggests notmuch new (split)
>  PASS   Set config value (split)
>  PASS   Set config value in database (split)
>  PASS   Config list (split)
>  PASS   'to' header does not crash (python-cffi) (split)
>  PASS   count (XDG)
>  PASS   count+tag (XDG)
>  PASS   address (XDG)
>  PASS   dump (XDG)
>  PASS   dump + tag + restore (XDG)
>  PASS   reindex (XDG)
>  PASS   use existing database (XDG)
>  PASS   create database (XDG)
>  PASS   detect new files (XDG)
>  PASS   Show a raw message (XDG)
>  PASS   reply (XDG)
>  PASS   insert+search (XDG)
>  PASS   compact+search (XDG)
>  PASS   upgrade backup (XDG)
>  PASS   notmuch +config -database suggests notmuch new (XDG)
>  PASS   Set config value (XDG)
>  PASS   Set config value in database (XDG)
>  PASS   Config list (XDG)
>  PASS   Set shadowed config value in database (XDG)
>  PASS   'to' header does not crash (python-cffi) (XDG)
>  PASS   count (XDG+profile)
>  PASS   count+tag (XDG+profile)
>  PASS   address (XDG+profile)
>  PASS   dump (XDG+profile)
>  PASS   dump + tag + restore (XDG+profile)
>  PASS   reindex (XDG+profile)
>  PASS   use existing database (XDG+profile)
>  PASS   create database (XDG+profile)
>  PASS   detect new files (XDG+profile)
>  PASS   Show a raw message (XDG+profile)
>  PASS   reply (XDG+profile)
>  PASS   insert+search (XDG+profile)
>  PASS   compact+search (XDG+profile)
>  PASS   upgrade backup (XDG+profile)
>  PASS   notmuch +config -database suggests notmuch new (XDG+profile)
>  PASS   Set config value (XDG+profile)
>  PASS   Set config value in database (XDG+profile)
>  PASS   Config list (XDG+profile)
>  PASS   Set shadowed config value in database (XDG+profile)
>  PASS   'to' header does not crash (python-cffi) (XDG+profile)
>  PASS   count (symlink)
>  PASS   count+tag (symlink)
>  PASS   address (symlink)
>  PASS   dump (symlink)
>  PASS   dump + tag + restore (symlink)
>  PASS   reindex (symlink)
>  PASS   use existing database (symlink)
>  PASS   create database (symlink)
>  PASS   detect new files (symlink)
>  PASS   Show a raw message (symlink)
>  PASS   reply (symlink)
>  PASS   insert+search (symlink)
>  PASS   compact+search (symlink)
>  PASS   upgrade backup (symlink)
>  PASS   notmuch +config -database suggests notmuch new (symlink)
>  PASS   Set config value (symlink)
>  PASS   Set config value in database (symlink)
>  PASS   Config list (symlink)
>  PASS   .notmuch without xapian/ handled gracefully (symlink)
>  PASS   count (home_mail)
>  PASS   count+tag (home_mail)
>  PASS   address (home_mail)
>  PASS   dump (home_mail)
>  PASS   dump + tag + restore (home_mail)
>  PASS   reindex (home_mail)
>  PASS   use existing database (home_mail)
>  PASS   create database (home_mail)
>  PASS   detect new files (home_mail)
>  PASS   Show a raw message (home_mail)
>  PASS   reply (home_mail)
>  PASS   insert+search (home_mail)
>  PASS   compact+search (home_mail)
>  PASS   upgrade backup (home_mail)
>  PASS   notmuch +config -database suggests notmuch new (home_mail)
>  PASS   Set config value (home_mail)
>  PASS   Set config value in database (home_mail)
>  PASS   Config list (home_mail)
>  PASS   .notmuch without xapian/ handled gracefully (home_mail)
>  PASS   count (maildir_env)
>  PASS   count+tag (maildir_env)
>  PASS   address (maildir_env)
>  PASS   dump (maildir_env)
>  PASS   dump + tag + restore (maildir_env)
>  PASS   reindex (maildir_env)
>  PASS   use existing database (maildir_env)
>  PASS   create database (maildir_env)
>  PASS   detect new files (maildir_env)
>  PASS   Show a raw message (maildir_env)
>  PASS   reply (maildir_env)
>  PASS   insert+search (maildir_env)
>  PASS   compact+search (maildir_env)
>  PASS   upgrade backup (maildir_env)
>  PASS   notmuch +config -database suggests notmuch new (maildir_env)
>  PASS   Set config value (maildir_env)
>  PASS   Set config value in database (maildir_env)
>  PASS   Config list (maildir_env)
>  PASS   .notmuch without xapian/ handled gracefully (maildir_env)
> 
> T060-count: Testing "notmuch count" for messages and threads
>  PASS   message count is the default for notmuch count
>  PASS   message count with --output=messages
>  PASS   thread count with --output=threads
>  PASS   thread count is the default for notmuch search
>  PASS   files count
>  PASS   files count for a duplicate message-id
>  PASS   count with no matching messages
>  PASS   count with no matching threads
>  PASS   message count is the default for batch count
>  PASS   batch message count
>  PASS   batch thread count
>  PASS   batch message count with input file
>  PASS   error message for database open
>  PASS   error message from query_search_messages
>  PASS   count library function is non-destructive
>  PASS   and of exact terms (query=sexp)
>  PASS   or of exact terms (query=sexp)
>  PASS   starts-with, case-insensitive (query=sexp)
>  PASS   query that matches no messages (query=sexp)
>  PASS   Compound subquery (query=sexp)
> 
> T070-insert: Testing "notmuch insert"
>  PASS   Insert zero-length file
>  PASS   Insert non-message
>  PASS   Database empty so far
>  PASS   Insert message
>  PASS   Permissions on inserted message should be 0600
>  PASS   Insert message adds default tags
>  PASS   Insert duplicate message
>  PASS   Duplicate message does not change tags
>  PASS   Insert message, add tag
>  PASS   Insert tagged world-readable message
>  PASS   Permissions on inserted world-readable message should be 0644
>  PASS   Insert tagged world-readable message with group-only umask
>  PASS   Permissions on inserted world-readable message with funny umask 
> should be 0640
>  PASS   Insert message, add/remove tags
>  PASS   Insert message with default tags stays in new/
>  PASS   Insert message with non-maildir synced tags stays in new/
>  PASS   Insert message with custom new.tags goes to cur/
>  PASS   Insert message with custom new.tags actually gets the tags
>  PASS   Insert message with maildir synced tags goes to cur/
>  PASS   Insert message with maildir sync off goes to new/
>  PASS   Insert message into folder
>  PASS   Insert message into top level folder
>  PASS   Insert message into folder with trailing /
>  PASS   Insert message into folder, add/remove tags
>  PASS   Insert message into non-existent folder
>  PASS   Insert message, create folder
>  PASS   Insert message, create subfolder
>  PASS   Created subfolder should have permissions 0700
>  PASS   Created subfolder new/ should also have permissions 0700
>  PASS   Insert message, create world-readable subfolder
>  PASS   Created world-readable subfolder should have permissions 0755
>  PASS   Created world-readable subfolder new/ should also have permissions 
> 0755
>  PASS   Insert message, create existing subfolder
>  PASS   Insert message, create invalid subfolder
>  PASS   Empty tags in new.tags are ignored
>  PASS   leading/trailing whitespace in new.tags is ignored
>  PASS   Tags starting with '-' in new.tags are forbidden
>  PASS   Invalid tags set exit code
>  PASS   EXIT_FAILURE when index_file returns FILE_NOT_EMAIL
>  PASS   success exit with --keep when index_file returns FILE_NOT_EMAIL
>  PASS   EXIT_FAILURE when index_file returns READ_ONLY_DATABASE
>  PASS   success exit with --keep when index_file returns READ_ONLY_DATABASE
>  PASS   EXIT_FAILURE when index_file returns UPGRADE_REQUIRED
>  PASS   success exit with --keep when index_file returns UPGRADE_REQUIRED
>  PASS   EXIT_FAILURE when index_file returns PATH_ERROR
>  PASS   success exit with --keep when index_file returns PATH_ERROR
>  PASS   EX_TEMPFAIL when index_file returns OUT_OF_MEMORY
>  PASS   success exit with --keep when index_file returns OUT_OF_MEMORY
>  PASS   EX_TEMPFAIL when index_file returns XAPIAN_EXCEPTION
>  PASS   success exit with --keep when index_file returns XAPIAN_EXCEPTION
> 
> T080-search: Testing "notmuch search" in several variations
>  PASS   Search body
>  PASS   Search by from:
>  PASS   Search by to:
>  PASS   Search by subject:
>  PASS   Search by subject (utf-8):
>  PASS   Search by id:
>  PASS   Search by mid:
>  PASS   Search by tag:
>  PASS   Search by thread:
>  PASS   Search body (phrase)
>  PASS   Search by from: (address)
>  PASS   Search by from: (name)
>  PASS   Search by from: (name and address)
>  PASS   Search by from: without prefix (name and address)
>  PASS   Search by to: (address)
>  PASS   Search by to: (name)
>  PASS   Search by to: (name and address)
>  PASS   Search by to: without prefix (name and address)
>  PASS   Search by subject: (phrase)
>  PASS   Search for all messages ("*")
>  PASS   Search body (utf-8):
>  PASS   headers do not have adjacent term positions
>  PASS   parts have non-overlapping term positions
>  PASS   parts do not have adjacent term positions
> 
> T081-sexpr-search: Testing "notmuch search" in several variations
>  PASS   all messages: ()
>  PASS   all messages: (not)
>  PASS   all messages: (and)
>  PASS   all messages: (or ())
>  PASS   all messages: (or (not))
>  PASS   all messages: (or (and))
>  PASS   all messages: (or (and) (or) (not (and)))
>  PASS   no messages: (or)
>  PASS   no messages: (not ())
>  PASS   no messages: (not (not))
>  PASS   no messages: (not (and))
>  PASS   no messages: (not (or (and) (or) (not (and))))
>  PASS   and of exact terms
>  PASS   or of exact terms
>  PASS   single term in body
>  PASS   single term in body (case insensitive)
>  PASS   single term in body, stemmed version
>  PASS   single term in body, unstemmed version
>  PASS   Search by 'subject'
>  PASS   Search by 'subject' (case insensitive)
>  PASS   Search by 'subject' (utf-8):
>  PASS   Search by 'subject' (utf-8, and):
>  PASS   Search by 'subject' (utf-8, and outside):
>  PASS   Search by 'subject' (utf-8, or):
>  PASS   Search by 'subject' (utf-8, or outside):
>  PASS   Search by 'attachment'
>  PASS   Search by 'body'
>  PASS   Search by 'body' (phrase)
>  PASS   Search by 'body' (utf-8):
>  PASS   search without body: prefix
>  PASS   negated body: prefix
>  PASS   search unprefixed for prefixed term
>  PASS   search with body: prefix for term only in subject
>  PASS   Search by 'from'
>  PASS   Search by 'from' (address)
>  PASS   Search by 'from' (name)
>  PASS   Search by 'from' (name and address)
>  PASS   Search by 'folder' (multiple)
>  PASS   Search by 'folder': top level.
>  PASS   Search by 'folder' with --output=files
>  PASS   Search by 'folder' with --output=files (trailing /)
>  PASS   Search by 'folder' (multiple)
>  PASS   Search by 'folder' (multiple, trailing /)
>  PASS   Search by 'path' with --output=files
>  PASS   Search by 'path' with --output=files (trailing /)
>  PASS   Search by 'path' specification (multiple)
>  PASS   Search by 'path' specification (multiple, trailing /)
>  PASS   Search by 'id'
>  PASS   Search by 'id' (or)
>  PASS   Search by 'is' (multiple)
>  PASS   Search by 'mid'
>  PASS   Search by 'mid' (or)
>  PASS   Search by 'mimetype'
>  PASS   ill-formed named query search
>  PASS   ill-formed named query search 2
>  PASS   search named query
>  PASS   Search by 'subject' (utf-8, phrase-token):
>  PASS   search named query with other terms
>  PASS   search nested named query
>  PASS   Search by 'subject' (utf-8, quoted string):
>  PASS   Search by 'subject' (combine phrase, term):
>  PASS   Search by 'subject' (combine phrase, term 2):
>  PASS   Search by 'subject' (combine phrase, term 3):
>  PASS   Search by 'tag'
>  PASS   Search by 'tag' (multiple)
>  PASS   Search by 'tag' and 'subject'
>  PASS   Search by 'thread'
>  PASS   Search by 'to'
>  PASS   Search by 'to' (address)
>  PASS   Search by 'to' (name)
>  PASS   Search by 'to' (name and address)
>  PASS   starts-with, no prefix
>  PASS   starts-with, case-insensitive
>  PASS   starts-with, no prefix, all messages
>  PASS   starts-with, attachment
>  PASS   starts-with, folder
>  PASS   starts-with, from
>  PASS   starts-with, id
>  PASS   starts-with, is
>  PASS   starts-with, mid
>  PASS   starts-with, mimetype
>  PASS   starts-with, property
>  PASS   starts-with, subject
>  PASS   starts-with, tag
>  PASS   negated starts-with, tag
>  PASS   negated starts-with, tag 2
>  PASS   negated starts-with, tag 3
>  PASS   starts-with, thread
>  PASS   starts-with, to
>  PASS   wildcard search for 'is'
>  PASS   negated wildcard search for 'is'
>  PASS   wildcard search for 'property'
>  PASS   wildcard search for 'tag'
>  PASS   negated wildcard search for 'tag'
>  PASS   search for 'tag' "*"
>  PASS   search for missing / empty to
>  PASS   Unbalanced parens
>  PASS   Unbalanced parens, error message
>  PASS   unknown prefix
>  PASS   list as prefix
>  PASS   illegal nesting
>  PASS   starts-with, no argument
>  PASS   starts-with, list argument
>  PASS   starts-with, too many arguments
>  PASS   starts-with, illegal field
>  PASS   wildcard, illegal field
>  PASS   Search, exclude "deleted" messages from search
>  PASS   Search, exclude "deleted" messages from message search --exclude=false
>  PASS   Search, exclude "deleted" messages from search, overridden
>  PASS   Search, exclude "deleted" messages from threads
>  PASS   Search, don't exclude "deleted" messages when --exclude=flag specified
>  PASS   Search, don't exclude "deleted" messages from search if not configured
>  PASS   regex at top level
>  PASS   regex in illegal field
>  PASS   regexp 'from' search
>  PASS   regexp search for 'from' 2
>  PASS   regexp 'folder' search
>  PASS   regexp 'id' search
>  PASS   unanchored 'is' search
>  PASS   anchored 'is' search
>  PASS   combine regexp mid and subject
>  PASS   regexp 'path' search
>  PASS   regexp 'property' search
>  PASS   anchored 'tag' search
>  PASS   regexp 'thread' search
>  PASS   Basic query that matches no messages
>  PASS   Same query against threads
>  PASS   Mix thread and non-threads query
>  PASS   Compound subquery
>  PASS   empty subquery
>  PASS   illegal expansion
>  PASS   (folder (of subquery))
>  PASS   infix query
>  PASS   bad infix query 1
>  PASS   bad infix query 2
>  PASS   bad infix query 3: bad nesting
>  PASS   infix query that matches no messages
>  PASS   compound infix query
>  PASS   compound infix query 2
>  PASS   date query, empty
>  PASS   date query, one argument
>  PASS   date query, two arguments
>  PASS   date query, illegal nesting 1
>  PASS   date query, illegal nesting 2
>  PASS   date query, illegal nesting 3
>  PASS   date query, illegal nesting 4
>  PASS   date query, too many arguments
>  PASS   date query, bad date
>  PASS   lastmod query, empty
>  PASS   lastmod query, one argument
>  PASS   lastmod query, two arguments
>  PASS   lastmod query, illegal nesting 1
>  PASS   lastmod query, bad from revision
>  PASS   lastmod query, bad to revision
>  PASS   lastmod query, illegal nesting 2
>  PASS   lastmod query, illegal nesting 3
>  PASS   lastmod query, illegal nesting 4
>  PASS   lastmod query, too many arguments
>  PASS   user header (unknown header)
>  PASS   adding user header
>  PASS   reindexing
>  PASS   wildcard search for user header
>  PASS   wildcard search for user header 2
>  PASS   search for user header
>  PASS   search for user header (list token)
>  PASS   search for user header (quoted string)
>  PASS   search for user header (atoms)
>  PASS   check saved query name
>  PASS   roundtrip saved query (database)
>  PASS   roundtrip saved query
>  PASS   unknown saved query
>  PASS   syntax error in saved query
>  PASS   Saved Search by 'tag' and 'subject'
>  PASS   Saved Search: illegal nesting
>  PASS   Saved Search: list as prefix
>  PASS   Saved Search: bad parameter syntax
>  PASS   Saved Search: bad parameter syntax 2
>  PASS   Saved Search: bad parameter syntax 3
>  PASS   Saved Search: bad parameter syntax 4
>  PASS   Saved Search: macro without body
>  PASS   macro in query
>  PASS   zero argument macro
>  PASS   undefined argument
>  PASS   Single argument macro
>  PASS   Single argument macro, list argument
>  PASS   two argument macro
>  PASS   nested macros (shadowing)
>  PASS   nested macros (no dynamic scope)
>  PASS   combine macro and user defined header
>  PASS   combine macro and user defined header
> 
> T090-search-output: Testing various settings for "notmuch search --output="
>  PASS   --output=threads
>  PASS   --output=threads --format=json
>  PASS   --output=messages
>  PASS   --output=messages --duplicate=1
>  PASS   --output=messages --duplicate=2
>  PASS   --output=messages --duplicate=3
>  PASS   --output=messages --format=json
>  PASS   --output=messages --format=json --duplicate=1
>  PASS   --output=messages --format=json --duplicate=2
>  PASS   --output=messages --format=json --duplicate=3
>  PASS   --output=files
>  PASS   --output=files --duplicate=1
>  PASS   --output=files --format=json
>  PASS   --output=files --format=json --duplicate=2
>  PASS   --output=tags
>  PASS   --output=tags --format=json
>  PASS   sanitize output for quoted-printable line-breaks in author and subject
>  PASS   search for non-existent message prints nothing
>  PASS   search --format=json for non-existent message prints proper empty json
> 
> T095-address: Testing "notmuch address" in several variants
>  PASS   --output=sender
>  PASS   without --output
>  PASS   --output=sender --format=json
>  PASS   --output=recipients
>  PASS   --output=sender --output=recipients
>  PASS   --output=sender --output=count
>  PASS   --output=recipients --output=address
>  PASS   --output=sender --output=address --output=count
>  PASS   --output=count --format=json
>  PASS   --deduplicate=no --sort=oldest-first --output=sender
>  PASS   --deduplicate=no --sort=newest-first --output=sender 
> --output=recipients
>  PASS   --deduplicate=address --output=sender --output=recipients
>  PASS   --deduplicate=no --output=sender
>  PASS   --deduplicate=mailbox --output=sender --output=count
>  PASS   --deduplicate=address --output=sender --output=count
> 
> T100-search-by-folder: Testing "notmuch search" by folder: and path: (with 
> variations)
>  PASS   Single-world folder: specification (multiple results)
>  PASS   search by path: specification (multiple)
>  PASS   Top level folder
>  PASS   Two-word path to narrow results to one
>  PASS   Folder search with --output=files
>  PASS   Folder search with --output=files (trailing /)
>  PASS   After removing duplicate instance of matching path
>  PASS   Folder search with --output=files part #2
>  PASS   After removing duplicate instance of matching path part #2
>  PASS   After rename, old path returns nothing
>  PASS   After rename, new path returns result
>  PASS   folder: search
>  PASS   top level folder: search
>  PASS   path: search
>  PASS   path: search (trailing /)
>  PASS   top level path: search
>  PASS   recursive path: search
> 
> T110-search-position-overlap-bug: Testing that notmuch does not overlap term 
> positions
>  PASS   Search for a@b.c matches
>  PASS   Search for x@y.z matches
>  PASS   Search for a@y.c must not match
> 
> T120-search-insufficient-from-quoting: Testing messages with unquoted . in 
> name
>  PASS   Search by first name
>  PASS   Search by last name:
>  PASS   Search by address:
>  PASS   Search for all messages:
> 
> T130-search-limiting: Testing "notmuch search" --offset and --limit parameters
>  PASS   messages: limit does the right thing
>  PASS   messages: concatenation of limited searches
>  PASS   messages: limit larger than result set
>  PASS   messages: limit = 0
>  PASS   messages: offset does the right thing
>  PASS   messages: offset = 0
>  PASS   messages: negative offset
>  PASS   messages: negative offset
>  PASS   messages: negative offset combined with limit
>  PASS   messages: negative offset combined with equal limit
>  PASS   messages: negative offset combined with large limit
>  PASS   messages: negative offset larger then results
>  PASS   threads: limit does the right thing
>  PASS   threads: concatenation of limited searches
>  PASS   threads: limit larger than result set
>  PASS   threads: limit = 0
>  PASS   threads: offset does the right thing
>  PASS   threads: offset = 0
>  PASS   threads: negative offset
>  PASS   threads: negative offset
>  PASS   threads: negative offset combined with limit
>  PASS   threads: negative offset combined with equal limit
>  PASS   threads: negative offset combined with large limit
>  PASS   threads: negative offset larger then results
> 
> T140-excludes: Testing "notmuch search, count and show" with excludes in 
> several variations
>  PASS   Search, exclude "deleted" messages from search
>  PASS   Search, exclude "deleted" messages; alternate config file
>  PASS   Search, exclude "deleted" messages from message search
>  PASS   Search, exclude "deleted" messages from message search --exclude=false
>  PASS   Search, exclude "deleted" messages from message search (non-existent 
> exclude-tag)
>  PASS   Search, exclude "deleted" messages from search, overridden
>  PASS   Search, exclude "deleted" messages from threads
>  PASS   Search, don't exclude "deleted" messages when --exclude=flag specified
>  PASS   Search, don't exclude "deleted" messages from search if not configured
>  PASS   Search, default exclusion (thread summary)
>  PASS   Search, default exclusion (messages)
>  PASS   Search, exclude=true (thread summary)
>  PASS   Search, exclude=true (messages)
>  PASS   Search, exclude=false (thread summary)
>  PASS   Search, exclude=false (messages)
>  PASS   Search, exclude=flag (thread summary)
>  PASS   Search, exclude=flag (messages)
>  PASS   Search, exclude=all (thread summary)
>  PASS   Search, exclude=all (messages)
>  PASS   Search, default exclusion: tag in query (thread summary)
>  PASS   Search, default exclusion: tag in query (messages)
>  PASS   Search, exclude=true: tag in query (thread summary)
>  PASS   Search, exclude=true: tag in query (messages)
>  PASS   Search, exclude=false: tag in query (thread summary)
>  PASS   Search, exclude=false: tag in query (messages)
>  PASS   Search, exclude=flag: tag in query (thread summary)
>  PASS   Search, exclude=flag: tag in query (messages)
>  PASS   Search, exclude=all: tag in query (thread summary)
>  PASS   Search, exclude=all: tag in query (messages)
>  PASS   Count, default exclusion (messages)
>  PASS   Count, default exclusion (threads)
>  PASS   Count, exclude=true (messages)
>  PASS   Count, exclude=true (threads)
>  PASS   Count, exclude=false (messages)
>  PASS   Count, exclude=false (threads)
>  PASS   Count, default exclusion: tag in query (messages)
>  PASS   Count, default exclusion: tag in query (threads)
>  PASS   Count, default exclusion, batch
>  PASS   Count, exclude=true: tag in query (messages)
>  PASS   Count, exclude=true: tag in query (threads)
>  PASS   Count, exclude=false: tag in query (messages)
>  PASS   Count, exclude=false: tag in query (threads)
>  PASS   Show, default exclusion
>  PASS   Show, default exclusion (entire-thread)
>  PASS   Show, exclude=true
>  PASS   Show, exclude=true (entire-thread)
>  PASS   Show, exclude=false
>  PASS   Show, exclude=false (entire-thread)
> 
> T150-tagging: Testing "notmuch tag"
>  PASS   Adding tags
>  PASS   Removing tags
>  PASS   No tag operations
>  PASS   No query
>  PASS   Redundant tagging
>  PASS   Remove all
>  PASS   Remove all with batch
>  PASS   Remove all with a no-op
>  PASS   Special characters in tags
>  PASS   Tagging order
>  PASS   --batch
>  PASS   --input
>  PASS   --batch --input
>  PASS   --batch --input --remove-all
>  PASS   --batch, dependence on previous line
>  PASS   --batch, blank lines and comments
>  PASS   --batch: checking error messages
>  PASS   --batch: tags with quotes
>  PASS   --batch: tags with punctuation and space
>  PASS   --batch: unicode tags
>  PASS   --batch: only space and % needs to be encoded.
>  PASS   --batch: unicode message-ids
>  PASS   Empty tag names
>  PASS   Tag name beginning with -
>  PASS   Xapian exception: read only files
>  PASS   sexpr query: (and "wonderful" "wizard")
>  PASS   sexpr query: (or "php" "wizard")
>  PASS   sexpr query: wizard
>  PASS   sexpr query: Wizard
>  PASS   sexpr query: (attachment notmuch-help.patch)
>  PASS   sexpr query: (mimetype text/html)
>  PASS   --batch --query=sexp
> 
> T160-json: Testing --format=json output
>  PASS   Show message: json
>  PASS   Show message: json --body=true
>  PASS   Show message: json --body=false
>  PASS   Search message: json
>  PASS   Show message: json, utf-8
>  PASS   Show message: json, inline attachment filename
>  PASS   Search message: json, utf-8
>  PASS   Search message: json, 64-bit timestamp
>  PASS   Format version: too low
>  PASS   Format version: too high
>  PASS   Show message: multiple filenames
>  PASS   Show message: multiple filenames, format version 2
>  PASS   show extra headers
> 
> T170-sexp: Testing --format=sexp output
>  PASS   Show message: sexp
>  PASS   Show message: sexp --body=true
>  PASS   Show message: sexp --body=false
>  PASS   Search message: sexp
>  PASS   Show message: sexp, utf-8
>  PASS   Search message: sexp, utf-8
>  PASS   Show message: sexp, inline attachment filename
>  PASS   show extra headers
> 
> T180-text: Testing --format=text output
>  PASS   Show message: text
>  PASS   Search message: text
>  PASS   Show message: text, utf-8
>  PASS   Search message: text, utf-8
>  PASS   Search message tags: text0
>  PASS   Compare text vs. text0 for threads
>  PASS   Compare text vs. text0 for messages
>  PASS   Compare text vs. text0 for files
>  PASS   Compare text vs. text0 for tags
> 
> T190-multipart: Testing output of multipart message
>  PASS   --format=text --part=0, full message
>  PASS   --format=text --part=0 --body=false, message header
>  PASS   --format=text --part=1, message body
>  PASS   --format=text --part=2, multipart/mixed
>  PASS   --format=text --part=3, rfc822 part
>  PASS   --format=text --part=4, rfc822's multipart
>  PASS   --format=text --part=5, rfc822's html part
>  PASS   --format=text --include-html --part=5, rfc822's html part
>  PASS   --format=text --part=6, rfc822's text part
>  PASS   --format=text --part=7, inline attachment
>  PASS   --format=text --part=8, plain text part
>  PASS   --format=text --part=9, pgp signature (unverified)
>  PASS   --format=text --part=8, no part, expect error
>  PASS   --format=json --part=0, full message
>  PASS   --format=json --part=1, message body
>  PASS   --format=json --part=2, multipart/mixed
>  PASS   --format=json --part=3, rfc822 part
>  PASS   --format=json --part=4, rfc822's multipart/alternative
>  PASS   --format=json --part=5, rfc822's html part
>  PASS   --format=json --part=6, rfc822's text part
>  PASS   --format=json --part=7, inline attachment
>  PASS   --format=json --part=8, plain text part
>  PASS   --format=json --part=9, pgp signature (unverified)
>  PASS   --format=json --part=10, no part, expect error
>  PASS   --format=raw
>  PASS   --format=raw --part=0, full message
>  PASS   --format=raw --part=1, message body
>  PASS   --format=raw --part=2, multipart/mixed
>  PASS   --format=raw --part=3, rfc822 part
>  PASS   --format=raw --part=4, rfc822's multipart
>  PASS   --format=raw --part=5, rfc822's html part
>  PASS   --format=raw --part=6, rfc822's text part
>  PASS   --format=raw --part=7, inline attachment
>  PASS   --format=raw --part=8, plain text part
>  PASS   --format=raw --part=9, pgp signature (unverified)
>  PASS   --format=raw --part=10, no part, expect error
>  PASS   --format=mbox
>  PASS   --format=mbox --part=1, incompatible, expect error
>  PASS   'notmuch reply' to a multipart message
>  PASS   'notmuch reply' to a multipart message with json format
>  PASS   'notmuch show --part' does not corrupt a part with CRLF pair
>  PASS   html parts excluded by default
>  PASS   html parts included
>  PASS   indexes mime-type #1
>  PASS   indexes mime-type #2
>  PASS   indexes mime-type #3
>  PASS   case of Content-Disposition doesn't matter for indexing
> 
> T200-thread-naming: Testing naming of threads with changing subject
>  PASS   Initial thread name (oldest-first search)
>  PASS   Initial thread name (newest-first search)
>  PASS   Changed thread name (oldest-first search)
>  PASS   Changed thread name (newest-first search)
>  PASS   Ignore added reply prefix (Re:)
>  PASS   Ignore added reply prefix (Aw:)
>  PASS   Ignore added reply prefix (Vs:)
>  PASS   Ignore added reply prefix (Sv:)
>  PASS   Use empty subjects if necessary.
>  PASS   Avoid empty subjects if possible (newest-first).
>  PASS   Avoid empty subjects if possible (oldest-first).
>  PASS   Test order of messages in "notmuch show"
> 
> T205-author-naming: Testing naming of authors with unusual addresses
>  PASS   Add author with empty quoted real name
> 
> T210-raw: Testing notmuch show --format=raw
>  PASS   Attempt to show multiple raw messages
>  PASS   Show a raw message
>  PASS   Show another raw message
>  PASS   content, message of size 0001024
>  PASS   return value, message of size 0001024
>  PASS   content, message of size 0002048
>  PASS   return value, message of size 0002048
>  PASS   content, message of size 0004096
>  PASS   return value, message of size 0004096
>  PASS   content, message of size 0008192
>  PASS   return value, message of size 0008192
>  PASS   content, message of size 0016384
>  PASS   return value, message of size 0016384
>  PASS   content, message of size 0032768
>  PASS   return value, message of size 0032768
>  PASS   content, message of size 0065536
>  PASS   return value, message of size 0065536
>  PASS   content, message of size 0131072
>  PASS   return value, message of size 0131072
>  PASS   content, message of size 0262144
>  PASS   return value, message of size 0262144
>  PASS   content, message of size 0524288
>  PASS   return value, message of size 0524288
>  PASS   content, message of size 1048576
>  PASS   return value, message of size 1048576
> 
> T220-reply: Testing "notmuch reply" in several variations
>  PASS   Basic reply
>  PASS   Basic reply (query=sexp)
>  PASS   Multiple recipients
>  PASS   Reply with CC
>  PASS   Reply from alternate address
>  PASS   Reply from address in named group list
>  PASS   Support for Reply-To
>  PASS   Un-munging Reply-To
>  PASS   Un-munging Reply-To With Exact Match
>  PASS   Un-munging Reply-To With Raw addr-spec
>  PASS   Message with header of exactly 200 bytes
>  PASS   From guessing: Envelope-To
>  PASS   From guessing: X-Original-To
>  PASS   From guessing: Delivered-To
>  PASS   From guessing: multiple Delivered-To
>  PASS   Reply with RFC 2047-encoded headers
>  PASS   Reply with RFC 2047-encoded headers (JSON)
>  PASS   Reply to a message with multiple Cc headers
> 
> T230-reply-to-sender: Testing "notmuch reply --reply-to=sender" in several 
> variations
>  PASS   Basic reply-to-sender
>  PASS   From Us, Basic reply to message
>  PASS   Multiple recipients
>  PASS   From Us, Multiple TO recipients
>  PASS   Reply with CC
>  PASS   From Us, Reply with CC
>  PASS   From Us, Reply no TO but with CC
>  PASS   Reply from alternate address
>  PASS   Support for Reply-To
>  PASS   Support for Reply-To with multiple recipients
>  PASS   Un-munging Reply-To
>  PASS   Message with header of exactly 200 bytes
> 
> T240-dump-restore: Testing "notmuch dump" and "notmuch restore"
>  PASS   dump header
>  PASS   Dumping all tags
>  PASS   Dumping all tags II
>  PASS   Clearing all tags
>  PASS   Clearing all tags
>  PASS   Restoring original tags
>  PASS   Restore with nothing to do
>  PASS   Accumulate with existing tags
>  PASS   Accumulate with no tags
>  PASS   Accumulate with new tags
>  PASS   Invalid restore invocation
>  PASS   dump --output=outfile
>  PASS   dump --output=outfile --
>  PASS   dump --gzip
>  PASS   dump --gzip --output=outfile
>  PASS   restoring gzipped stdin
>  PASS   restoring gzipped file
>  PASS   dump -- from:cworth
>  PASS   dump --query=sexp -- '(from cworth)'
>  PASS   dump --query=sexp --output=outfile '(from cworth)'
>  PASS   dump --output=outfile from:cworth
>  PASS   dump --output=outfile -- from:cworth
>  PASS   Check for a safe set of message-ids
>  PASS   format=batch-tag, dump sanity check.
>  PASS   format=batch-tag, missing newline
>  PASS   format=batch-tag, # round-trip
>  PASS   format=batch-tag, # blank lines and comments
>  PASS   format=batch-tag, # reverse-round-trip empty tag
>  PASS   restoring empty file is not an error
>  PASS   file of comments and blank lines is not an error
>  PASS   detect format=batch-tag with leading comments and blanks
>  PASS   detect format=sup with leading comments and blanks
>  PASS   format=batch-tag, round trip with strange tags
>  PASS   format=batch-tag, checking encoded output
>  PASS   restoring sane tags
>  PASS   format=batch-tag, restore=auto
>  PASS   format=sup, restore=auto
>  PASS   format=batch-tag, restore=default
>  PASS   format=sup, restore=default
>  PASS   restore: checking error messages
>  PASS   roundtripping random message-ids and tags
> 
> T250-uuencode: Testing handling of uuencoded data
>  PASS   Ensure content before uu data is indexed
>  PASS   Ensure uu data is not indexed
>  PASS   Ensure content after uu data is indexed
> 
> T260-thread-order: Testing threading when messages received out of order
>  PASS   Messages with one parent get linked in all delivery orders
>  PASS   Messages with all parents get linked in all delivery orders
> 
> T270-author-order: Testing author reordering;
>  PASS   Adding parent message
>  PASS   Adding initial child message
>  PASS   Adding second child message
>  PASS   Searching when all three messages match
>  PASS   Searching when two messages match
>  PASS   Searching when only one message matches
>  PASS   Searching when only first message matches
>  PASS   Adding duplicate author
>  PASS   Searching when all four messages match
>  PASS   Adding non-monotonic child message
>  PASS   Searching non-monotonic messages (oldest-first)
>  PASS   Searching non-monotonic messages (newest-first)
> 
> T280-from-guessing: Testing From line heuristics (with multiple configured 
> addresses)
>  PASS   Magic from guessing (nothing to go on)
>  PASS   Magic from guessing (Envelope-to:)
>  PASS   Magic from guessing (X-Original-To:)
>  PASS   Magic from guessing (Received: .. for ..)
>  PASS   Magic from guessing (Received: domain)
>  PASS   Magic from guessing (multiple Received: headers)
>  PASS   Testing From line heuristics (with single configured address)
>  PASS   Magic from guessing (nothing to go on)
>  PASS   Magic from guessing (Envelope-to:)
>  PASS   Magic from guessing (X-Original-To:)
>  PASS   Magic from guessing (Received: .. for ..)
>  PASS   Magic from guessing (Received: domain)
> 
> T290-long-id: Testing messages with ridiculously-long message IDs
>  PASS   Referencing long ID before adding
>  PASS   Adding message with long ID
>  PASS   Referencing long ID after adding
>  PASS   Ensure all messages were threaded together
> 
> T300-encoding: Testing encoding issues
>  PASS   Message with text of unknown charset
>  PASS   Search for ISO-8859-2 encoded message
>  PASS   RFC 2047 encoded word with spaces
>  PASS   RFC 2047 encoded words back to back
>  PASS   RFC 2047 encoded words without space before or after
>  PASS   Mislabeled Windows-1252 encoding
> 
> T310-emacs: Testing emacs interface
>  PASS   Syntax of emacs test library
>  PASS   Basic notmuch-hello view in emacs
>  PASS   Saved search with 0 results
>  PASS   No saved searches displayed (all with 0 results)
>  PASS   Basic notmuch-search view in emacs
>  PASS   Functions in search-result-format
>  PASS   Incremental parsing of search results
>  PASS   Navigation of notmuch-hello to search results
>  PASS   Basic notmuch-show view in emacs
>  PASS   Basic notmuch-show view in emacs default indentation
>  PASS   Basic notmuch-show view in emacs without indentation
>  PASS   Basic notmuch-show view in emacs with fourfold indentation
>  PASS   notmuch-show for message with invalid From
>  PASS   Navigation of notmuch-search to thread view
>  PASS   Add tag from search view
>  PASS   Remove tag from search view
>  PASS   Add tag (large query)
>  PASS   notmuch-show: add single tag to single message
>  PASS   notmuch-show: remove single tag from single message
>  PASS   notmuch-show: add multiple tags to single message
>  PASS   notmuch-show: remove multiple tags from single message
>  PASS   notmuch-show: before-tag-hook is run, variables are defined
>  PASS   notmuch-show: after-tag-hook is run, variables are defined
>  PASS   Message with .. in Message-Id:
>  PASS   Message with quote in Message-Id:
>  PASS   Sending a message via (fake) SMTP
>  PASS   Folding a long header when sending via (fake) SMTP
>  PASS   Verify that sent messages are saved/searchable (via FCC)
>  PASS   notmuch-fcc-dirs set to nil
>  PASS   notmuch-fcc-dirs set to a string
>  PASS   notmuch-fcc-dirs set to a list (with match)
>  PASS   notmuch-fcc-dirs set to a list (catch-all)
>  PASS   notmuch-fcc-dirs set to a list (no match)
>  PASS   Reply within emacs
>  PASS   Reply within emacs to a message with TAB in subject
>  PASS   Reply from alternate address within emacs
>  PASS   Reply with show.extra_headers set
>  PASS   Reply from address in named group list within emacs
>  PASS   Reply within emacs to a multipart/mixed message
>  PASS   Reply within emacs to a multipart/alternative message
>  PASS   Reply within emacs to an html-only message
>  PASS   Reply within emacs to message from self
>  PASS   Quote MML tags in reply
>  PASS   Save attachment from within emacs using notmuch-show-save-attachments
>  PASS   Save attachment from within emacs using notmuch-show-save-part
>  PASS   Save 8bit attachment from within emacs using 
> notmuch-show-save-attachments
>  PASS   View raw message within emacs
>  PASS   Hiding/showing signature in notmuch-show view
>  PASS   Detection and hiding of top-post quoting of message
>  PASS   Hiding message in notmuch-show view
>  PASS   Hiding message with visible citation in notmuch-show view
>  PASS   notmuch-show: show message headers
>  PASS   notmuch-show: hide message headers
>  PASS   notmuch-show: hide message headers (w/ 
> notmuch-show-toggle-visibility-headers)
>  PASS   notmuch-show: collapse all messages in thread
>  PASS   notmuch-show: uncollapse all messages in thread
>  PASS   Stashing in notmuch-show
>  PASS   Stashing in notmuch-search
>  PASS   notmuch-show-advance-and-archive with invisible signature
>  PASS   Refresh show buffer
>  PASS   Refresh modified show buffer
>  PASS   Do not call notmuch for non-inlinable application/mpeg parts
>  PASS   Do not call notmuch for non-inlinable audio/mpeg parts
>  PASS   notmuch-hello-mode hook is called
>  PASS   notmuch-hello-mode hook is not called on updates
>  PASS   notmuch-hello-refresh hook is called
>  PASS   notmuch-hello-refresh hook is called on updates
>  PASS   Rendering HTML mail with images
>  PASS   Search handles subprocess error exit codes
>  PASS   Search handles subprocess warnings
>  PASS   Search thread tag operations are race-free
>  PASS   Search global tag operations are race-free
>  PASS   Term escaping
>  PASS   Sending a message calls the send message hooks
>  PASS   notmuch-search with nonexistent CWD
> 
> T320-emacs-large-search-buffer: Testing Emacs with large search results buffer
>  PASS   Ensure that emacs doesn't drop results
> 
> T330-emacs-subject-to-filename: Testing emacs: mail subject to filename
>  PASS   no patch sequence number
>  PASS   patch sequence number #1
>  PASS   patch sequence number #2
>  PASS   patch sequence number #3
>  PASS   patch sequence number #4
>  PASS   patch sequence number #5
>  PASS   patch sequence number #6
>  PASS   patch sequence number #7
>  PASS   filename #1
>  PASS   filename #2
>  PASS   filename #3
>  PASS   filename #4
>  PASS   filename #5
>  PASS   filename #6
>  PASS   filename #7
>  PASS   filename #8
>  PASS   filename #9
>  PASS   patch filename #1
>  PASS   patch filename #2
>  PASS   patch filename #3
>  PASS   patch filename #4
> 
> T340-maildir-sync: Testing maildir synchronization
>  PASS   Adding 'S' flag to existing filename removes 'unread' tag
>  PASS   Adding message with 'S' flag prevents 'unread' tag
>  PASS   Adding message with 'S' w/o 'unread' in new.tags prevents 'unread' tag
>  PASS   Adding 'replied' tag adds 'R' flag to filename
>  PASS   notmuch show works with renamed file (without notmuch new)
>  PASS   notmuch reply works with renamed file (without notmuch new)
>  PASS   notmuch new detects no file rename after tag->flag synchronization
>  PASS   When read, message moved from new to cur
>  PASS   No rename should be detected by notmuch new
>  PASS   Adding non-maildir tags does not move message from new to cur
>  PASS   Message in cur lacking maildir info gets one on any tag change
>  PASS   Message in new with maildir info is moved to cur on any tag change
>  PASS   Removing 'S' flag from existing filename adds 'unread' tag
>  PASS   Removing info from filename leaves tags unchanged
>  PASS   Can remove unread tag from message in non-maildir directory
>  PASS   Message in non-maildir directory does not get renamed
>  PASS   notmuch dump/restore re-synchronizes maildir tags with flags
>  PASS   Adding flags to duplicate message tags the mail
>  PASS   Adding duplicate message without flags does not remove tags
>  PASS   Tag changes modify flags of multiple files
>  PASS   Synchronizing tag changes preserves unsupported maildir flags
>  PASS   A file with non-compliant maildir info will not be renamed
>  PASS   Files in new/ get default synchronized tags
>  PASS   draft is valid in new.tags
>  PASS   flagged is valid in new.tags
>  PASS   passed is valid in new.tags
>  PASS   replied is valid in new.tags
> 
> T350-crypto: Testing PGP/MIME signature verification and decryption
>  PASS   emacs delivery of signed message via fcc
>  PASS   emacs delivery of signed message via fcc and smtp
>  PASS   signed part content-type indexing
>  PASS   signature verification
>  PASS   detection of modified signed contents
>  PASS   corrupted pgp/mime signature
>  PASS   signature verification without full user ID validity
>  PASS   signature verification with signer key unavailable
>  PASS   emacs delivery of encrypted message with attachment
>  PASS   encrypted part content-type indexing
>  PASS   decryption, --format=text
>  PASS   decryption, --format=json
>  PASS   decryption, --format=json, --part=4
>  PASS   decrypt attachment (--part=5 --format=raw)
>  PASS   decryption failure with missing key
>  PASS   emacs delivery of encrypted + signed message
>  PASS   decryption + signature verification
>  PASS   reply to encrypted message
>  PASS   Reply within emacs to an encrypted message
>  PASS   signature verification with revoked key
> 
> T351-pgpmime-mangling: Testing PGP/MIME message mangling
>  PASS   show 'Mixed-Up' mangled PGP/MIME message correctly
>  PASS   reply to 'Mixed-Up' mangled PGP/MIME message correctly
>  PASS   repaired 'Mixed-up' messages can be found with index.repaired=mixedup
>  PASS   index cleartext of 'Mixed-Up' mangled PGP/MIME message
>  PASS   search cleartext of 'Mixed-Up' mangled PGP/MIME message
> 
> T355-smime: Testing S/MIME signature verification and decryption
>  PASS   emacs delivery of S/MIME signed message
>  PASS   emacs delivery of S/MIME encrypted + signed message
>  PASS   Signature verification (openssl)
>  FAIL   signature verification (notmuch CLI)
>       --- T355-smime.4.expected       2022-03-26 19:30:20.394780996 +0000
>       +++ T355-smime.4.output 2022-03-26 19:30:20.394780996 +0000
>       @@ -24,7 +24,7 @@
>                                "sigstatus": [
>                                    {
>                                        "created": 946728000,
>       -                                "email": 
> "<test_su...@notmuchmail.org>",
>       +                                "email": "test_su...@notmuchmail.org",
>                                        "expires": 424242424,
>                                        "fingerprint": 
> "616F46CD73834C63847756AF0DFB64A6E0972A47",
>                                        "status": "good",
>       @@ -38,7 +38,7 @@
>                                "status": [
>                                    {
>                                        "created": 946728000,
>       -                                "email": 
> "<test_su...@notmuchmail.org>",
>       +                                "email": "test_su...@notmuchmail.org",
>                                        "expires": 424242424,
>                                        "fingerprint": 
> "616F46CD73834C63847756AF0DFB64A6E0972A47",
>                                        "status": "good",
>  PASS   Decryption and signature verification (openssl)
>  PASS   Decryption (notmuch CLI)
>  PASS   Cryptographic message status (encrypted+signed)
>  PASS   encrypted+signed message is known to be encrypted, but signature is 
> unknown
>  PASS   Encrypted body is not indexed
>  PASS   Reindex cleartext
>  PASS   signature is now known
>  PASS   Encrypted body is indexed
>  PASS   index PKCS#7 SignedData message
>  PASS   do not index embedded certificates from PKCS#7 SignedData
>  PASS   know the MIME type of the embedded part in PKCS#7 SignedData
>  PASS   PKCS#7 SignedData message is tagged 'signed'
>  PASS   show contents of PKCS#7 SignedData message
>  PASS   reply to PKCS#7 SignedData message with proper quoting and attribution
>  PASS   show PKCS#7 SignedData outputs valid JSON
>  PASS   Verify signature on PKCS#7 SignedData message
>  PASS   Verify signature on PKCS#7 SignedData message signer User ID
> 
> T356-protected-headers: Testing Message decryption with protected headers
>  PASS   verify protected header is not visible without decryption
>  PASS   verify protected header is visible with decryption
>  PASS   when no external header is present, show masked subject as null
>  PASS   misplaced protected headers should not be made visible during 
> decryption
>  PASS   verify double-wrapped phony protected header is not visible when 
> inner decryption fails
>  PASS   cleartext phony protected headers should not be made visible when 
> decryption fails
>  PASS   wrapped protected headers should not be made visible during decryption
>  PASS   internal headers without protected-header attribute should be skipped
>  PASS   verify nested message/rfc822 protected header is visible
>  PASS   show cryptographic envelope on signed mail
>  PASS   verify signed protected header
>  PASS   protected subject does not leak by default in replies
>  PASS   protected subject is not indexed by default
>  PASS   reindex message with protected header
>  PASS   protected subject is indexed when cleartext is indexed
>  PASS   indexed protected subject is visible in search
>  PASS   indexed protected subject is not visible in reply header
>  PASS   verify correct protected header when submessage exists
>  PASS   verify protected header is both signed and encrypted
>  PASS   verify protected header is signed even when not masked
>  PASS   reindex everything, ensure headers are as expected
>  PASS   when rendering protected headers, avoid rendering legacy-display part
>  PASS   when replying, avoid rendering legacy-display part
>  PASS   do not treat legacy-display part as body when indexing
>  PASS   identify message that had a legacy display part skipped during 
> indexing
>  PASS   verify signed PKCS#7 subject (multipart-signed)
>  PASS   verify signed PKCS#7 subject (multipart-signed) signer User ID
>  PASS   verify signed PKCS#7 subject (onepart-signed)
>  PASS   verify signed PKCS#7 subject (onepart-signed) signer User ID
>  PASS   confirm signed and encrypted PKCS#7 subject (sign+enc)
>  PASS   confirm signed and encrypted PKCS#7 subject (sign+enc) signer User ID
>  PASS   confirm signed and encrypted PKCS#7 subject (sign+enc+legacy-disp)
>  PASS   confirm signed and encrypted PKCS#7 subject (sign+enc+legacy-disp) 
> signer User ID
>  PASS   confirm encryption-protected PKCS#7 subject (enc+legacy-disp)
> 
> T357-index-decryption: Testing indexing decrypted mail
>  PASS   emacs delivery of encrypted message
>  PASS   search for unindexed cleartext
>  PASS   emacs delivery of encrypted message
>  PASS   emacs delivery of encrypted message, indexed cleartext
>  PASS   emacs search by property for one message
>  PASS   show the message body of the encrypted message
>  PASS   message should go away after deletion
>  PASS   message cleartext not present after insert
>  PASS   stash decryption during show
>  PASS   search should now find the contents
>  PASS   message cleartext is present after reinserting with --decrypt=true
>  PASS   delete all copies of the message
>  PASS   message cleartext is present with insert --decrypt=true
>  PASS   tagging all messages
>  PASS   verify that tags have not changed
>  PASS   reindex old messages
>  PASS   reindexed encrypted message, including cleartext
>  PASS   emacs search by property for both messages
>  PASS   reindex in auto mode
>  PASS   reindexed encrypted messages, should not have changed
>  PASS   reindex without cleartext
>  PASS   reindexed encrypted messages, without cleartext
>  PASS   reindex using only session keys
>  PASS   reindexed encrypted messages, decrypting only with session keys
>  PASS   emacs search by property with both messages unindexed
>  PASS   verify that tags remain without cleartext
>  PASS   index cleartext without keeping session keys
>  PASS   Ensure that the indexed terms are present
>  PASS   show one of the messages with --decrypt=true
>  PASS   Ensure that we cannot show the message with --decrypt=auto
>  PASS   indexing message fails when secret key not available
>  PASS   cannot find cleartext index
>  PASS   cleartext index recovery on reindexing with stashed session keys
>  PASS   notmuch reply should show cleartext if session key is present
>  PASS   notmuch show should show cleartext if session key is present
>  PASS   notmuch show should show nothing if decryption is explicitly 
> disallowed
>  PASS   purging stashed session keys should lose access to the cleartext
>  PASS   and cleartext should be unrecoverable now that there are no stashed 
> session keys
>  PASS   verify signature without a session key stashed when --decrypt=true
>  PASS   do not verify sig without a session key stashed if --decrypt=auto
>  PASS   verify signature when --decrypt=stash
>  PASS   verify signature with stashed session key
> 
> T358-emacs-protected-headers: Testing protected headers in emacs interface
>  PASS   notmuch-search should show not unindexed protected subject header in 
> emacs
>  PASS   notmuch-show should not show unindexed protected subject header in 
> emacs when nm-c-process-mime is nil
>  PASS   notmuch-show should show protected subject header in emacs
>  PASS   Reply within emacs to a message with protected headers, not leaking 
> subject
>  PASS   defaulting to indexing cleartext
>  PASS   try reindexing protected header message
>  PASS   notmuch-search should show indexed protected subject header in emacs
>  PASS   don't leak protected subject during reply, even if indexed
> 
> T360-symbol-hiding: Testing exception symbol hiding
>  PASS   running test
>  PASS   checking output
>  PASS   comparing existing to exported symbols
> 
> T370-search-folder-coherence: Testing folder tags removed and added through 
> file renames remain consistent
>  PASS   No new messages
>  PASS   Single new message
>  PASS   Add second folder for same message
>  PASS   Multiple files for same message
>  PASS   Test matches folder:spam
>  PASS   Remove folder:spam copy of email
>  PASS   No mails match the folder:spam search
> 
> T380-atomicity: Testing atomicity
>  PASS   "notmuch new" is idempotent under arbitrary aborts
>  PASS   detected 20>10 abort points
> 
> T385-transactions: Testing transactions
>  PASS   initial new
>  PASS   Some changes saved with open transaction
> 
> T390-python: Testing python bindings
>  PASS   compare thread ids
>  PASS   compare message ids
>  PASS   get non-existent file
>  PASS   get revision
>  PASS   output of count matches test code
>  PASS   Add ISO-8859-2 encoded message, call get_message_parts
>  PASS   set and get config values
>  PASS   get_configs with no match returns empty generator
>  PASS   get_configs with no arguments returns all pairs
>  PASS   get_configs prefix is used to match keys
>  PASS   set_config with no value will unset config entries
>  PASS   index message with decryption
> 
> T391-python-cffi: Testing python bindings (pytest)
>  PASS   python cffi tests (NOTMUCH_CONFIG set)
>  PASS   python cffi tests (NOTMUCH_CONFIG unset)
> 
> T392-python-cffi-notmuch: Testing python bindings (notmuch test suite)
>  PASS   recursive traversal of replies (no crash)
>  PASS   recursive traversal of replies (output)
> 
> T395-ruby: Testing ruby bindings
>  PASS   compare thread ids
>  PASS   compare message ids
>  PASS   get non-existent file
>  PASS   count messages
>  PASS   count threads
>  PASS   get all tags
>  PASS   omit excluded all
>  PASS   check sort argument
>  PASS   check exclude_tags argument
> 
> T400-hooks: Testing hooks
>  PASS   pre-new is run [traditional]
>  PASS   post-new is run [traditional]
>  PASS   post-insert hook is run [traditional]
>  PASS   pre-new is run before post-new [traditional]
>  PASS   pre-new non-zero exit status (hook status) [traditional]
>  PASS   pre-new non-zero exit status (notmuch status) [traditional]
>  PASS   pre-new non-zero exit status aborts new [traditional]
>  PASS   post-new non-zero exit status (hook status) [traditional]
>  PASS   post-new non-zero exit status (notmuch status) [traditional]
>  PASS   post-insert hook does not affect insert status [traditional]
>  PASS   hook without executable permissions [traditional]
>  PASS   hook execution failure [traditional]
>  PASS   post-new with write access [traditional]
>  PASS   pre-new with write access [traditional]
>  PASS   add message in pre-new [traditional]
>  PASS   pre-new is run [profile]
>  PASS   post-new is run [profile]
>  PASS   post-insert hook is run [profile]
>  PASS   pre-new is run before post-new [profile]
>  PASS   pre-new non-zero exit status (hook status) [profile]
>  PASS   pre-new non-zero exit status (notmuch status) [profile]
>  PASS   pre-new non-zero exit status aborts new [profile]
>  PASS   post-new non-zero exit status (hook status) [profile]
>  PASS   post-new non-zero exit status (notmuch status) [profile]
>  PASS   post-insert hook does not affect insert status [profile]
>  PASS   hook without executable permissions [profile]
>  PASS   hook execution failure [profile]
>  PASS   post-new with write access [profile]
>  PASS   pre-new with write access [profile]
>  PASS   add message in pre-new [profile]
>  PASS   pre-new is run [explicit]
>  PASS   post-new is run [explicit]
>  PASS   post-insert hook is run [explicit]
>  PASS   pre-new is run before post-new [explicit]
>  PASS   pre-new non-zero exit status (hook status) [explicit]
>  PASS   pre-new non-zero exit status (notmuch status) [explicit]
>  PASS   pre-new non-zero exit status aborts new [explicit]
>  PASS   post-new non-zero exit status (hook status) [explicit]
>  PASS   post-new non-zero exit status (notmuch status) [explicit]
>  PASS   post-insert hook does not affect insert status [explicit]
>  PASS   hook without executable permissions [explicit]
>  PASS   hook execution failure [explicit]
>  PASS   post-new with write access [explicit]
>  PASS   pre-new with write access [explicit]
>  PASS   add message in pre-new [explicit]
>  PASS   pre-new is run [relative]
>  PASS   post-new is run [relative]
>  PASS   post-insert hook is run [relative]
>  PASS   pre-new is run before post-new [relative]
>  PASS   pre-new non-zero exit status (hook status) [relative]
>  PASS   pre-new non-zero exit status (notmuch status) [relative]
>  PASS   pre-new non-zero exit status aborts new [relative]
>  PASS   post-new non-zero exit status (hook status) [relative]
>  PASS   post-new non-zero exit status (notmuch status) [relative]
>  PASS   post-insert hook does not affect insert status [relative]
>  PASS   hook without executable permissions [relative]
>  PASS   hook execution failure [relative]
>  PASS   post-new with write access [relative]
>  PASS   pre-new with write access [relative]
>  PASS   add message in pre-new [relative]
>  PASS   pre-new is run [XDG]
>  PASS   post-new is run [XDG]
>  PASS   post-insert hook is run [XDG]
>  PASS   pre-new is run before post-new [XDG]
>  PASS   pre-new non-zero exit status (hook status) [XDG]
>  PASS   pre-new non-zero exit status (notmuch status) [XDG]
>  PASS   pre-new non-zero exit status aborts new [XDG]
>  PASS   post-new non-zero exit status (hook status) [XDG]
>  PASS   post-new non-zero exit status (notmuch status) [XDG]
>  PASS   post-insert hook does not affect insert status [XDG]
>  PASS   hook without executable permissions [XDG]
>  PASS   hook execution failure [XDG]
>  PASS   post-new with write access [XDG]
>  PASS   pre-new with write access [XDG]
>  PASS   add message in pre-new [XDG]
>  PASS   pre-new is run [split]
>  PASS   post-new is run [split]
>  PASS   post-insert hook is run [split]
>  PASS   pre-new is run before post-new [split]
>  PASS   pre-new non-zero exit status (hook status) [split]
>  PASS   pre-new non-zero exit status (notmuch status) [split]
>  PASS   pre-new non-zero exit status aborts new [split]
>  PASS   post-new non-zero exit status (hook status) [split]
>  PASS   post-new non-zero exit status (notmuch status) [split]
>  PASS   post-insert hook does not affect insert status [split]
>  PASS   hook without executable permissions [split]
>  PASS   hook execution failure [split]
>  PASS   post-new with write access [split]
>  PASS   pre-new with write access [split]
>  PASS   add message in pre-new [split]
> 
> T410-argument-parsing: Testing argument parsing
>  PASS   sanity check
>  PASS   sanity check zero values
>  PASS   space instead of = between parameter name and value
>  PASS   --boolean=true
>  PASS   --boolean=false
>  PASS   --no-boolean
>  PASS   --no-flag
>  PASS   test keyword arguments without value
>  PASS   test keyword arguments with non-default value separated by a space
>  PASS   test keyword arguments without value at the end
>  PASS   test keyword arguments without value but with = (should be an error)
> 
> T420-emacs-test-functions: Testing emacs test function sanity
>  PASS   emacs test function sanity
> 
> T430-emacs-address-cleaning: Testing emacs address cleaning
>  PASS   notmuch-test-address-clean part 1
>  PASS   notmuch-test-address-clean part 2
>  PASS   notmuch-test-address-clean part 3
> 
> T440-emacs-hello: Testing emacs notmuch-hello view
>  PASS   User-defined section with inbox tag
>  PASS   User-defined section with empty, hidden entry
>  PASS   User-defined section, unread tag filtered out
>  PASS   User-defined section, different query for counts
>  PASS   Empty custom tags section
>  PASS   Empty custom queries section
>  PASS   Column alignment for tag/queries with long names
>  PASS   All tags show up
> 
> T450-emacs-show: Testing emacs notmuch-show view
>  PASS   Hiding Original Message region at beginning of a message
>  PASS   Bare subject #1
>  PASS   Bare subject #2
>  PASS   Bare subject #3
>  PASS   don't process cryptographic MIME parts
>  PASS   process cryptographic MIME parts
>  PASS   process cryptographic MIME parts (w/ 
> notmuch-show-toggle-process-crypto)
>  PASS   notmuch-show: don't elide non-matching messages
>  PASS   notmuch-show: elide non-matching messages
>  PASS   notmuch-show: elide non-matching messages (w/ 
> notmuch-show-toggle-elide-non-matching)
>  PASS   notmuch-show: elide non-matching messages (w/ prefix arg to 
> notmuch-show)
>  PASS   notmuch-show: disable indentation of thread content (w/ 
> notmuch-show-toggle-thread-indentation)
>  PASS   id buttonization
>  PASS   Show handles subprocess errors
>  PASS   text/enriched exploit mitigation
>  PASS   show decrypted message
>  BROKEN show encrypted rfc822 message
>       exit code 0, expected 1 fgrep "!!!" OUTPUT
> !!! Bodypart handler `notmuch-show-insert-part-*/*' threw an error:
> !!! Symbol’s value as variable is void: gnus-newsgroup-charset
>  PASS   show undecryptable message
>  PASS   show encrypted message when not processing crypto
>  PASS   notmuch-show with nonexistent CWD
> 
> T455-emacs-charsets: Testing emacs notmuch-show charset handling
>  PASS   Text parts are decoded when rendering
>  PASS   8bit text parts are decoded when rendering
>  PASS   HTML parts are decoded when rendering
>  PASS   Text parts are not decoded when saving
>  PASS   8bit text parts are not decoded when saving
>  PASS   HTML parts are not decoded when saving
>  PASS   Binary parts are not decoded when saving
>  PASS   Text message are not decoded when viewing
>  PASS   8bit text message are not decoded when viewing
> 
> T460-emacs-tree: Testing emacs tree view interface
>  PASS   Basic notmuch-tree view in emacs
>  PASS   Refreshed notmuch-tree view in emacs
>  PASS   Tag message in notmuch tree view (display)
>  PASS   Tag message in notmuch tree view (database)
>  PASS   Untag message in notmuch tree view
>  PASS   Untag message in notmuch tree view (database)
>  PASS   Tag thread in notmuch tree view
>  PASS   Tag message in notmuch tree view (database)
>  PASS   Untag thread in notmuch tree view
>  PASS   Untag message in notmuch tree view (database)
>  PASS   Navigation of notmuch-hello to search results
>  PASS   Tree view of a single thread (from search)
>  PASS   Tree view of a single thread (from show)
>  PASS   Message window of tree view
>  PASS   Stash id
>  PASS   Move to next matching message
>  PASS   Move to next thread
>  PASS   Move to previous thread
>  PASS   Move to previous previous thread
>  PASS   Functions in tree-result-format
>  PASS   notmuch-tree with nonexistent CWD
> 
> T465-emacs-unthreaded: Testing emacs unthreaded interface
>  PASS   large thread
>  PASS   message from large thread (status)
>  PASS   Functions in unthreaded-result-format
>  PASS   notmuch-unthreaded with nonexistent CWD
> 
> T470-missing-headers: Testing messages with missing headers
>  PASS   Search: text
>  PASS   Search: json
>  PASS   Show: text
>  PASS   Show: json
> 
> T480-hex-escaping: Testing hex encoding and decoding
>  PASS   round trip
>  PASS   punctuation
>  PASS   round trip newlines
>  PASS   round trip 8bit chars
>  PASS   round trip (in-place)
>  PASS   punctuation (in-place)
>  PASS   round trip newlines (in-place)
>  PASS   round trip 8bit chars (in-place)
> 
> T490-parse-time-string: Testing date/time parser module
>  PASS   date(1) default format without TZ code
>  PASS   date(1) --rfc-2822 format
>  PASS   date(1) --rfc=3339=seconds format
>  PASS   Date parser tests
>  PASS   Second rounding tests
> 
> T500-search-date: Testing date:since..until queries
>  PASS   Absolute date range
>  PASS   Absolute date range with 'same' operator
>  PASS   Absolute date field
>  PASS   Absolute time range with TZ
> 
> T510-thread-replies: Testing test of proper handling of in-reply-to and 
> references headers
>  PASS   Use References when In-Reply-To is broken
>  PASS   Prefer References to dodgy In-Reply-To
>  PASS   Use In-Reply-To when no References
>  PASS   Use last Reference when In-Reply-To is dodgy
>  PASS   Ignore garbage at the end of References
>  PASS   reply to ghost
>  PASS   reply to ghost (tree view)
>  PASS   reply to ghost (RT)
>  PASS   reply to ghost (RT/tree view)
>  PASS   trusting reply-to (tree view)
> 
> T520-show: Testing "notmuch show"
>  PASS   exit code for show invalid query
>  PASS   notmuch show --sort=newest-first
>  PASS   notmuch show --sort=oldest-first
>  PASS   notmuch show --sort for single thread
>  PASS   sexpr query: (and "wonderful" "wizard")
>  PASS   sexpr query: (or "php" "wizard")
>  PASS   sexpr query: wizard
>  PASS   sexpr query: Wizard
>  PASS   sexpr query: (attachment notmuch-help.patch)
> 
> T530-upgrade: Testing database upgrades
>  PASS   upgrade is triggered by missing 'multiple paths per message'
>  PASS   backup can be restored ['multiple paths per message']
>  PASS   upgrade is triggered by missing 'relative directory paths'
>  PASS   backup can be restored ['relative directory paths']
>  PASS   upgrade is triggered by missing 'exact folder:/path: search'
>  PASS   backup can be restored ['exact folder:/path: search']
>  PASS   upgrade is triggered by missing 'mail documents for missing messages'
>  PASS   backup can be restored ['mail documents for missing messages']
>  PASS   upgrade is triggered by missing 'modification tracking'
>  PASS   backup can be restored ['modification tracking']
>  PASS   upgrade not triggered by missing 'from/subject/message-ID in database'
>  PASS   upgrade not triggered by missing 'indexed MIME types'
>  PASS   upgrade not triggered by missing 'index body and headers separately'
>  PASS   upgrade with configured backup dir
>  PASS   upgrade with relative configured backup dir
> 
> T550-db-features: Testing database version and feature compatibility
>  PASS   future database versions abort open
>  PASS   unknown 'rw' feature aborts read/write open
>  PASS   unknown 'rw' feature aborts read-only open
>  PASS   unknown 'w' feature aborts read/write open
>  PASS   unknown 'w' feature does not abort read-only open
> 
> T560-lib-error: Testing error reporting for library
>  PASS   building database
>  PASS   Open null pointer
>  PASS   Open relative path
>  PASS   Create database in relative path
>  PASS   Open nonexistent database
>  PASS   create NULL path
>  PASS   Create database in nonexistent directory
>  PASS   Write to read-only database
>  PASS   Add non-existent file
>  PASS   compact, overwriting existing backup
>  PASS   Xapian exception finding message
>  PASS   Xapian exception getting tags
>  PASS   Xapian exception creating directory
>  PASS   Xapian exception searching messages
>  PASS   Xapian exception counting messages
> 
> T562-lib-database: Testing notmuch_database_* API
>  PASS   building database
>  PASS   get status_string with closed db
>  PASS   get path with closed db
>  PASS   get version with closed db
>  PASS   re-close a closed db
>  PASS   destroy a closed db
>  PASS   destroy an open db
>  PASS   check a closed db for upgrade
>  PASS   upgrade a closed db
>  PASS   begin atomic section for a closed db
>  PASS   end atomic section for a closed db
>  PASS   get revision for a closed db
>  PASS   get directory for a closed db
>  PASS   index file with a closed db
>  PASS   index file (relative path)
>  PASS   index file (absolute path outside mail root)
>  PASS   remove message file with a closed db
>  PASS   find message by filename with a closed db
>  PASS   Handle getting tags from closed database
>  PASS   get config from closed database
>  PASS   set config in closed database
>  PASS   get indexopts from closed database
>  PASS   get decryption policy from closed database
>  PASS   set decryption policy with closed database
> 
> T563-lib-directory: Testing notmuch_directory_* API
>  PASS   building database
>  PASS   get child directories for a closed db
>  PASS   get child filenames for a closed db
>  PASS   delete directory document for a closed db
>  PASS   get/set mtime of directory for a closed db
>  PASS   get/set mtime of directory for a closed db
> 
> T564-lib-query: Testing notmuch_query_* API
>  PASS   building database
>  PASS   roundtrip query string with closed db
>  PASS   retrieve closed db from query
>  PASS   set omit_excluded on closed db
>  PASS   roundtrip sort on closed db
>  PASS   add tag_exclude on closed db
>  PASS   search threads on closed db
>  PASS   search messages on closed db
>  PASS   count messages on closed db
>  PASS   count threads on closed db
>  PASS   destroy query with closed db
> 
> T566-lib-message: Testing API tests for notmuch_message_*
>  PASS   building database
>  PASS   Handle getting message-id from closed database
>  PASS   Handle getting thread-id from closed database
>  PASS   Handle getting header from closed database
>  PASS   Handle getting replies from closed database
>  PASS   Handle getting message filename from closed database
>  PASS   Handle getting all message filenames from closed database
>  PASS   iterate over all message filenames from closed database
>  PASS   Handle getting ghost flag from closed database
>  PASS   Handle getting date from closed database
>  PASS   Handle getting tags from closed database
>  PASS   Handle counting files from closed database
>  PASS   Handle adding tag with closed database
>  PASS   Handle removing tag with closed database
>  PASS   Handle read maildir flag with closed database
>  PASS   Handle checking maildir flag with closed db (new API)
>  PASS   Handle converting maildir flags to tags with closed db
>  PASS   Handle removing all tags with closed db
>  PASS   Handle freezing message with closed db
>  PASS   Handle thawing message with closed db
>  PASS   Handle destroying message with closed db
>  PASS   Handle retrieving closed db from message
>  PASS   Handle reindexing message with closed db
> 
> T568-lib-thread: Testing API tests for notmuch_thread_*
>  PASS   building database
>  PASS   finding thread
>  PASS   get thread-id from closed database
>  PASS   get total messages with closed database
>  PASS   get total files with closed database
>  PASS   get top level messages with closed database
>  PASS   iterate over level messages with closed database
>  PASS   iterate over level messages with closed database
>  PASS   iterate over replies with closed database
>  PASS   iterate over all messages with closed database
>  PASS   get authors from closed database
>  PASS   get subject from closed database
>  PASS   oldest date from closed database
>  PASS   newest date from closed database
>  PASS   iterate tags from closed database
>  PASS   collect tags with closed database
>  PASS   destroy thread with closed database
> 
> T570-revision-tracking: Testing database revision tracking
>  PASS   notmuch_database_get_revision
>  PASS   output of count matches test code
>  PASS   modification count increases
>  PASS   search succeeds with correct uuid
>  PASS   uuid works as global option
>  PASS   uuid works as global option II
>  PASS   search fails with incorrect uuid
>  PASS   show succeeds with correct uuid
>  PASS   show fails with incorrect uuid
>  PASS   tag succeeds with correct uuid
>  PASS   tag fails with incorrect uuid
>  PASS   lastmod:0.. matches everything
>  PASS   lastmod:1000000.. matches nothing
>  PASS   exclude one message using lastmod
> 
> T580-thread-search: Testing test of searching by thread-id
>  PASS   Every message is found in exactly one thread
>  PASS   roundtripping message-ids via thread-ids
> 
> T585-thread-subquery: Testing test of searching by using thread subqueries
>  PASS   Basic query that matches no messages
>  PASS   Same query against threads
>  PASS   Mix thread and non-threads query
>  PASS   Compound subquery
>  PASS   Syntax/quoting error in subquery
> 
> T590-libconfig: Testing library config API
>  PASS   notmuch_database_{set,get}_config
>  PASS   notmuch_database_get_config_list: empty list
>  PASS   notmuch_database_get_config_list: closed db
>  PASS   notmuch_database_get_config_list: all pairs
>  PASS   notmuch_database_get_config_list: all pairs (closed db)
>  PASS   notmuch_database_get_config_list: one prefix
>  PASS   dump config
>  PASS   restore config
>  PASS   override config from file
>  PASS   NOTMUCH_CONFIG_HOOK_DIR: traditional
>  PASS   NOTMUCH_CONFIG_HOOK_DIR: xdg
>  PASS   notmuch_config_get_values
>  PASS   notmuch_config_get_values (ignore leading/trailing whitespace)
>  PASS   notmuch_config_get_values_string
>  PASS   notmuch_config_get_values (restart)
>  PASS   notmuch_config_get_values, trailing ;
>  PASS   get config by key
>  PASS   set config by key
>  PASS   load default values
>  PASS   override config from ${NOTMUCH_CONFIG}
>  PASS   override config from ${HOME}/.notmuch-config
>  PASS   override config from ${XDG_CONFIG_HOME}/notmuch
>  PASS   override config from ${XDG_CONFIG_HOME}/notmuch with profile
>  PASS   override config from ${HOME}/.notmuch-config.work (via args)
>  PASS   no config, fail to open database
>  PASS   open database from NOTMUCH_DATABASE
>  PASS   NOTMUCH_DATABASE overrides config
>  PASS   notmuch_database_get_config (ndlc)
>  PASS   notmuch_database_get_config_list: all pairs (ndlc)
>  PASS   notmuch_database_get_config_list: one prefix (ndlc)
>  PASS   list by keys (ndlc)
>  PASS   load default values (ndlc, nonexistent config)
>  PASS   override config from ${HOME}/.notmuch-config (ndlc)
>  PASS   notmuch_config_get_pairs: prefix (ndlc)
>  PASS   notmuch_config_get_pairs: all pairs (ndlc)
>  PASS   open: database set to null on missing config
>  PASS   open: database set to null on missing config (env)
>  PASS   create: database set to null on missing config
>  PASS   create: database set to null on missing config (env)
>  PASS   load_config: database set non-null on missing config
>  PASS   load_config: database non-null on missing config (env)
>  PASS   load_config: database set to NULL on fatal error
>  PASS   open: database parameter overrides implicit config
>  PASS   open/error: config=empty with no mail root in db 
>  PASS   open/error: config=empty with no mail root in db (xdg)
> 
> T592-thread-breakage: Testing thread breakage during reindexing
>  PASS   There should be no threads initially
>  PASS   There should be no ghosts initially
>  PASS   One message in: one thread
>  PASS   looking for 1 instance of 'apple'
>  PASS   looking for 0 instance of 'banana'
>  PASS   Expecting 0 ghosts(s)
>  PASS   Second message in the same thread: one thread
>  PASS   looking for 1 instance of 'apple'
>  PASS   looking for 1 instance of 'banana'
>  PASS   Expecting 0 ghosts(s)
>  PASS   First message removed: still only one thread
>  PASS   looking for 0 instance of 'apple'
>  PASS   looking for 1 instance of 'banana'
>  PASS   should be one ghost after first message removed
>  PASS   First message reappears: should return to the same thread
>  PASS   looking for 1 instance of 'apple'
>  PASS   looking for 1 instance of 'banana'
>  PASS   Expecting 0 ghosts(s)
>  PASS   Removing second message: still only one thread
>  PASS   looking for 1 instance of 'apple'
>  PASS   looking for 0 instance of 'banana'
>  BROKEN No ghosts should remain after deletion of second message
>       --- T592-thread-breakage.22.expected    2022-03-26 19:31:15.290835302 
> +0000
>       +++ T592-thread-breakage.22.output      2022-03-26 19:31:15.290835302 
> +0000
>       @@ -1 +1 @@
>       -0
>       +1
>  PASS   All messages gone: no threads
>  PASS   looking for 0 instance of 'apple'
>  PASS   looking for 0 instance of 'banana'
>  PASS   No ghosts should remain after full thread deletion
> 
> T595-reopen: Testing library reopen API
>  PASS   notmuch_database_reopen (read=>write)
>  PASS   notmuch_database_reopen (read=>read)
>  PASS   notmuch_database_reopen (write=>read)
>  PASS   notmuch_database_reopen (write=>write)
> 
> T600-named-queries: Testing named queries
>  PASS   error adding named query to DB before initialization
>  PASS   adding named query (database)
>  PASS   adding nested named query
>  PASS   retrieve named query
>  PASS   List all queries
>  PASS   dump named queries
>  PASS   dumping large queries
>  PASS   delete named queries
>  PASS   restore named queries
>  PASS   search named query
>  PASS   search named query with other terms
>  PASS   search nested named query
> 
> T610-message-property: Testing message property API
>  PASS   notmuch_message_{add,get,remove}_property
>  PASS   notmuch_message_remove_all_properties
>  PASS   testing string map binary search (via message properties)
>  PASS   notmuch_message_get_properties: empty list
>  PASS   notmuch_message_properties: one value
>  PASS   notmuch_message_properties: multiple values
>  PASS   notmuch_message_properties: prefix
>  PASS   notmuch_message_properties: modify during iteration
>  PASS   dump message properties
>  PASS   dump _only_ message properties
>  PASS   restore missing message property (single line)
>  PASS   restore missing message property (full dump)
>  PASS   restore clear extra message property
>  PASS   test 'property:' queries: empty
>  PASS   test 'property:' queries: single message
>  PASS   msg.get_property (python)
>  PASS   msg.get_properties (python)
>  PASS   msg.get_properties (python, prefix)
>  PASS   msg.get_properties (python, exact)
> 
> T620-lock: Testing locking
>  PASS   blocking open
> 
> T630-emacs-draft: Testing Emacs Draft Handling
>  PASS   Saving a draft indexes it
>  PASS   Saving a draft tags previous draft as deleted
>  PASS   Saving a signed draft adds header
>  PASS   Refusing to save an encrypted draft
>  PASS   Resuming a signed draft
> 
> T640-database-modified: Testing DatabaseModifiedError handling
>  PASS   catching DatabaseModifiedError in _notmuch_message_ensure_metadata
> 
> T650-regexp-query: Testing regular expression searches
>  PASS   empty path:// search
>  PASS   empty folder:// search
>  PASS   unanchored folder:// specification
>  PASS   anchored folder:// search
>  PASS   unanchored path:// specification
>  PASS   anchored path:// search
>  PASS   null from: search
>  PASS   null subject: search
>  PASS   xapian wildcard search for from:
>  PASS   xapian wildcard search for subject:
>  PASS   quoted xapian keyword search for from:
>  PASS   quoted xapian keyword search for subject:
>  PASS   regexp from search, case sensitive
>  PASS   empty regexp or query
>  PASS   non-empty regexp and query
>  PASS   regexp from search, duplicate term search
>  PASS   long enough regexp matches only desired senders
>  PASS   shorter regexp matches one more sender
>  PASS   regexp subject search, non-ASCII
>  PASS   regexp subject search, punctuation
>  PASS   regexp subject search, no punctuation
>  PASS   combine regexp from and subject
>  PASS   regexp error reporting
>  PASS   empty mid search
>  PASS   non-empty mid regex search
>  PASS   combine regexp mid and subject
>  PASS   unanchored tag search
>  PASS   anchored tag search
> 
> T660-bad-date: Testing parsing of bad dates
>  PASS   Bad dates translate to a date after the Unix epoch
> 
> T670-duplicate-mid: Testing duplicate message ids
>  PASS   at most 1 thread-id per xapian document
>  PASS   search: first indexed subject preserved
>  BROKEN First subject preserved in notmuch-show (json)
>       --- T670-duplicate-mid.3.expected       2022-03-26 19:31:23.778843698 
> +0000
>       +++ T670-duplicate-mid.3.output 2022-03-26 19:31:23.778843698 +0000
>       @@ -2,6 +2,7 @@
>            [
>                [
>                    {
>       +                "crypto": {},
>                        "date_relative": "2001-01-05",
>                        "excluded": false,
>                        "filename": [
>       @@ -12,7 +13,7 @@
>                        "headers": {
>                            "Date": "GENERATED_DATE",
>                            "From": "Notmuch Test Suite 
> <test_su...@notmuchmail.org>",
>       -                    "Subject": "message 1",
>       +                    "Subject": "message 0",
>                            "To": "Notmuch Test Suite 
> <test_su...@notmuchmail.org>"
>                        },
>                        "id": "XXXXX",
>  PASS   Search for second subject
>  BROKEN Regexp search for second subject
>       --- T670-duplicate-mid.5.EXPECTED       2022-03-26 19:31:23.802843722 
> +0000
>       +++ T670-duplicate-mid.5.OUTPUT 2022-03-26 19:31:23.806843726 +0000
>       @@ -1,3 +0,0 @@
>       -MAIL_DIR/copy0
>       -MAIL_DIR/copy1
>       -MAIL_DIR/copy2
>  PASS   search for body in duplicate file
>  PASS   reindex drops terms in duplicate file
>  PASS   reindex choses subject from first filename
>  PASS   Deleted first duplicate file does not stop notmuch show from working
> 
> T680-html-indexing: Testing indexing of html parts
>  PASS   embedded images should not be indexed
>  PASS   ignore > in attribute text
>  PASS   non tag text should be indexed
> 
> T690-command-line-args: Testing command line arguments
>  PASS   bad option to show
>  PASS   string option with space
>  PASS   string option with =
>  PASS   string option with :
>  PASS   single keyword option with space
>  PASS   single keyword option with =
>  PASS   single keyword option with :
>  PASS   multiple keyword options with space
>  PASS   multiple keyword options with =
>  PASS   mixed space and = delimiters
>  PASS   mixed space and : delimiters
>  PASS   show --entire-thread
>  PASS   show --exclude
> 
> T700-reindex: Testing reindexing messages
>  PASS   reindex all messages: ()
>  PASS   reindex all messages: (not)
>  PASS   reindex all messages: (and)
>  PASS   reindex all messages: (or ())
>  PASS   reindex all messages: (or (not))
>  PASS   reindex all messages: (or (and))
>  PASS   reindex all messages: (or (and) (or) (not (and)))
>  PASS   reindex preserves threads
>  PASS   reindex after removing duplicate file preserves threads
>  PASS   reindex preserves message-ids
>  PASS   reindex preserves tags
>  PASS   reindex preserves tags with special prefixes
>  PASS   reindex moves a message between threads
>  PASS   reindex detects removal of all files
>  PASS   reindex detects removal of all files
>  PASS   reindex preserves properties
>  PASS   reindex of lkml corpus preserves threads
>  PASS   reindex after removing corpus
> 
> T710-message-id: Testing message id parsing
>  PASS   good message ids
>  PASS   leading and trailing space is OK
>  PASS   <> delimiters are required
>  PASS   embedded whitespace is forbidden
>  PASS   folded real life bad In-Reply-To values
> 
> T720-emacs-attachment-warnings: Testing emacs attachment warnings
>  PASS   notmuch-test-attachment-warning part 1
> 
> T720-lib-lifetime: Testing Lifetime constraints for library
>  PASS   building database
>  PASS   Message outlives parent Messages from replies
> 
> T730-emacs-forwarding: Testing emacs forwarding
>  PASS   Forward setting the correct references header
>  PASS   Forwarding adding the forwarded tag
> 
> T740-body: Testing search body
>  PASS   search with body: prefix
>  PASS   search without body: prefix
>  PASS   negated body: prefix
>  PASS   search unprefixed for prefixed term
>  PASS   search with body: prefix for term only in subject
> 
> T750-gzip: Testing support for gzipped messages
>  PASS   Single new gzipped message
>  PASS   Single new gzipped message (full-scan)
>  PASS   Multiple new messages, one gzipped
>  PASS   Multiple new messages, one gzipped (full-scan)
>  PASS   Renamed (gzipped) message
>  PASS   notmuch search with partially gzipped mail store
>  PASS   notmuch search --output=files with partially gzipped mail store
>  PASS   show un-gzipped message
>  PASS   show un-gzipped message (format mbox)
>  PASS   show un-gzipped message (format raw)
>  PASS   show gzipped message
>  PASS   show gzipped message (mbox)
>  PASS   show gzipped message (raw)
>  PASS   new doesn't run out of file descriptors with many gzipped files
> 
> T750-user-header: Testing indexing user specified headers
>  PASS   adding illegal prefix name, bad utf8
>  PASS   adding illegal prefix name, reserved for notmuch
>  PASS   adding illegal prefix name, non-word character.
>  PASS   adding empty prefix name.
>  PASS   adding user header
>  PASS   adding existing user header
>  PASS   retrieve user header
>  PASS   reindex after adding header preserves threads
>  PASS   List all user headers
>  PASS   parse user prefix
>  PASS   parse user prefix, stemmed
>  PASS   parse user prefix, phrase
>  PASS   index user header
>  PASS   index user header, config from file
> 
> T800-asan: Testing run code with ASAN enabled against the library
>  PASS   open and destroy
> 
> Notmuch test suite complete.
> 1835/1844 tests passed.
> 8 broken tests failed as expected.
> 1 test failed.
> ERROR: some tests failed; first failed returned error code 1
> make[2]: *** [test/Makefile.local:75: test] Error 1
> make[2]: Leaving directory '/<<PKGBUILDDIR>>'
> dh_auto_test: error: make -j8 test VERBOSE=1 V=1 returned exit code 2


The full build log is available from:
http://qa-logs.debian.net/2022/03/26/notmuch_0.35-1_unstable.log

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please marking it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

Reply via email to