Hello, I got a bug report against the public-inbox 1.6.1 package about a failing test, see below for the whole output. I didn't have time yet to look into it, so this is just a heads up to make you aware. If someone has a hint what to do, this would be greatly appreciated. Maybe just updating to 1.7 will help? Best regards Uwe On 12/21/21 17:34, Lucas Nussbaum wrote: > Source: public-inbox > Version: 1.6.1-1 > Severity: serious > Justification: FTBFS > Tags: bookworm sid ftbfs > User: lucas@debian.org > Usertags: ftbfs-20211220 ftbfs-bookworm > > Hi, > > During a rebuild of all packages in sid, your package failed to build > on amd64. > > > Relevant part (hopefully): >> make[1]: Entering directory '/<>' >> fatal: not a git repository (or any of the parent directories): .git >> PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/*.t >> t/address.t .................. >> ok 1 - use PublicInbox::Address; >> ok 2 - address extraction works as expected >> ok 3 - comment after domain accepted before > >> ok 4 - name extraction works as expected >> ok 5 - address-as-name extraction works as expected >> ok 6 - backwards name OK >> ok 7 - backwards emails OK >> ok 8 - extra quotes dropped >> ok 9 - no address for local address >> ok 10 - no address, no name >> ok 11 - use PublicInbox::AddressPP; >> ok 12 - address extraction works as expected >> ok 13 - comment after domain accepted before > >> ok 14 - name extraction works as expected >> ok 15 - address-as-name extraction works as expected >> ok 16 - backwards name OK >> ok 17 - backwards emails OK >> ok 18 - extra quotes dropped >> ok 19 - no address for local address >> ok 20 - no address, no name >> 1..20 >> ok >> t/admin.t .................... >> ok 1 - use PublicInbox::Admin; >> ok 2 - top-level GIT_DIR resolved >> ok 3 - GIT_DIR/objects resolved >> ok 4 - chdir GIT_DIR works >> ok 5 - resolve_repo_dir works in GIT_DIR >> ok 6 - chdir GIT_DIR/objects works >> ok 7 - resolve_repo_dir works in GIT_DIR >> ok 8 - version 1 detected >> ok 9 - detects directory along with version >> ok 10 - chdir to a non-inbox >> ok 11 - fails inside non-version-controlled dir >> ok 12 - back to test-specific $tmpdir >> ok 13 - fails on non-version-controlled dir >> ok 14 - $@ set on failure >> ok 15 - use PublicInbox::V2Writable; >> ok 16 - use PublicInbox::Inbox; >> ok 17 - exists >> ok 18 - resolve_repo_dir works on v2_dir >> ok 19 - chdir v2_dir OK >> ok 20 - resolve_repo_dir works inside v2_dir >> ok 21 - version 2 detected >> ok 22 - detects directory along with version >> ok 23 - parse_unsigned 1g >> ok 24 - got 1g => (1073741824 == 1073741824) >> ok 25 - parse_unsigned 666 >> ok 26 - got 666 => (666 == 666) >> ok 27 - parse_unsigned 1500K >> ok 28 - got 1500K => (1536000 == 1536000) >> ok 29 - parse_unsigned 15m >> ok 30 - got 15m => (15728640 == 15728640) >> ok 31 - parse_unsigned rejects >> ok 32 - parse_unsigned rejects bogus >> ok 33 - parse_unsigned rejects 1p >> ok 34 - parse_unsigned rejects 1gig >> 1..34 >> ok >> t/altid.t .................... >> ok 1 - use PublicInbox::Msgmap; >> ok 2 - use PublicInbox::SearchIdx; >> ok 3 - use PublicInbox::Import; >> ok 4 - use PublicInbox::Inbox; >> ok 5 - mid_set once OK >> ok 6 - mid_set not idempotent >> ok 7 - mid_set fails with dup MID >> ok 8 - got one match >> ok 9 - body did NOT match >> ok 10 - auto-increment goes beyond mid_set >> 1..10 >> ok >> t/altid_v2.t ................. >> ok 1 - use PublicInbox::V2Writable; >> ok 2 - use PublicInbox::Inbox; >> ok 3 - created repo for msgmap >> ok 4 - mid_set once OK >> ok 5 - mid_set not idempotent >> ok 6 - mid_set fails with dup MID >> ok 7 - got one match >> ok 8 - body did NOT match >> 1..8 >> ok >> t/cgi.t ...................... >> ok 1 - setup ~/ for testing >> ok 2 - setup ~/.public-inbox >> ok 3 - use PublicInbox::Inbox; >> ok 4 - use PublicInbox::InboxWritable; >> ok 5 - use PublicInbox::Config; >> ok 6 - added initial message >> ok 7 - added big message >> ok 8 - added reply >> ok 9 - added slash >> ok 10 - slashy mid raw hit >> ok 11 - search not-yet-enabled >> ok 12 - search returned mbox >> ok 13 - From lines in mbox >> ok 14 - did not index or return >max-size message >> ok 15 - warned about skipping large OID >> ok 16 # skip DBD::SQLite or XML::TreePP missing >> ok 17 # skip DBD::SQLite or XML::TreePP missing >> 1..17 >> ok >> t/config.t ................... >> ok 1 - set config >> ok 2 - config read correctly >> ok 3 - init used --bare repo >> ok 4 - reject invalid inboxdir >> ok 5 - warned about newline >> ok 6 - examples/public-inbox-config is readable >> ok 7 - lookup matches expected output >> ok 8 - non-existent lookup returns undef >> ok 9 - lookup matches expected output for test >> ok 10 >> ok 11 - mainrepo still works >> ok 12 - inboxdir takes precedence >> ok 13 - global NNTP server >> ok 14 - per-inbox NNTP server >> ok 15 - public-inbox.org address not to be obfuscated >> ok 16 - example.com address not to be obfuscated >> ok 17 - example.comM address does not match >> ok 18 - known addresses populated >> ok 19 - `' name rejected >> ok 20 - `..' name rejected >> ok 21 - `.' name rejected >> ok 22 - `stash@{9}' name rejected >> ok 23 - `inbox.' name rejected >> ok 24 - `^caret' name rejected >> ok 25 - `~tilde' name rejected >> ok 26 - `*asterisk' name rejected >> ok 27 - `s p a c e s' name rejected >> ok 28 - ` leading-space' name rejected >> ok 29 - `trailing-space ' name rejected >> ok 30 - `question?' name rejected >> ok 31 - `colon:' name rejected >> ok 32 - `[square-brace]' name rejected >> ok 33 - `\fformfeed' name rejected >> ok 34 - `\0zero' name rejected >> ok 35 - `\bbackspace' name rejected >> ok 36 - `a' name accepted >> ok 37 - `a@example' name accepted >> ok 38 - `a@example.com' name accepted >> ok 39 - `bang!' name accepted >> ok 40 - `ca$h' name accepted >> ok 41 - `less<' name accepted >> ok 42 - `more>' name accepted >> ok 43 - `1%' name accepted >> ok 44 - `(parens)' name accepted >> ok 45 - `&more' name accepted >> ok 46 - `eql=' name accepted >> ok 47 - `+plus' name accepted >> ok 48 - `\#hash' name accepted >> ok 49 >> ok 50 - inboxes share ::Git object >> ok 51 - TRUE is true >> ok 52 - TRUE matches git-config behavior >> ok 53 - true is true >> ok 54 - true matches git-config behavior >> ok 55 - yes is true >> ok 56 - yes matches git-config behavior >> ok 57 - on is true >> ok 58 - on matches git-config behavior >> ok 59 - 1 is true >> ok 60 - 1 matches git-config behavior >> ok 61 - +1 is true >> ok 62 - +1 matches git-config behavior >> ok 63 - -1 is true >> ok 64 - -1 matches git-config behavior >> ok 65 - 13 is true >> ok 66 - 13 matches git-config behavior >> ok 67 - 0x1 is true >> ok 68 - 0x1 matches git-config behavior >> ok 69 - 0x12 is true >> ok 70 - 0x12 matches git-config behavior >> ok 71 - 0X5 is true >> ok 72 - 0X5 matches git-config behavior >> ok 73 - FALSE is false >> ok 74 - FALSE matches git-config behavior >> ok 75 - false is false >> ok 76 - false matches git-config behavior >> ok 77 - no is false >> ok 78 - no matches git-config behavior >> ok 79 - off is false >> ok 80 - off matches git-config behavior >> ok 81 - 0 is false >> ok 82 - 0 matches git-config behavior >> ok 83 - +0 is false >> ok 84 - +0 matches git-config behavior >> ok 85 - +000 is false >> ok 86 - +000 matches git-config behavior >> ok 87 - 00 is false >> ok 88 - 00 matches git-config behavior >> ok 89 - 0x00 is false >> ok 90 - 0x00 matches git-config behavior >> ok 91 - 0X0 is false >> ok 92 - 0X0 matches git-config behavior >> ok 93 - bogus is undef >> ok 94 - urlmatch hit >> ok 95 - urlmatch miss >> 1..95 >> ok >> t/config_limiter.t ........... >> ok 1 - Limiter exists >> ok 2 - limiter has expected slots >> ok 3 - got new Git object >> ok 4 - same limiter >> ok 5 - got git object >> ok 6 - Limiter exists >> ok 7 - limiter has expected slots >> ok 8 - got new Git object >> ok 9 - same limiter >> ok 10 - limiter has expected slots >> 1..10 >> ok >> t/content_hash.t ............. >> ok 1 - content_hash matches after serialization >> ok 2 - content_hash does not mutate From: >> ok 3 - quotes ignored in From: >> ok 4 - content_hash does not mutate To: >> ok 5 - quotes ignored in To: >> ok 6 - content_hash does not mutate Cc: >> ok 7 - quotes ignored in Cc: >> 1..7 >> ok >> t/convert-compact.t .......... >> ok 1 - use PublicInbox::V2Writable; >> ok 2 - set restrictive umask >> ok 3 - set sharedRepository >> ok 4 - added one message >> ok 5 - remove message >> ok 6 - added message again >> ok 7 - no errors syncing >> ok 8 - no errors syncing >> ok 9 - sharedRepository respected for v1 >> ok 10 - sharedRepository respected for v1 msgmap >> ok 11 - sharedRepository respected on file after convert >> ok 12 - sharedRepository respected on file after convert >> ok 13 - sharedRepository respected on file after convert >> ok 14 - sharedRepository respected on file after convert >> ok 15 - sharedRepository respected on file after convert >> ok 16 - sharedRepository respected on file after convert >> ok 17 - sharedRepository respected on file after convert >> ok 18 - sharedRepository respected on file after convert >> ok 19 - v1 compact works >> ok 20 - got one xapian directory after compact >> ok 21 - sharedRepository respected on v1 compact >> ok 22 - highwater mark set \#2 >> ok 23 - convert --no-index works >> ok 24 - convert works >> ok 25 - sharedRepository respected after convert >> ok 26 - sharedRepository respected after convert >> ok 27 - sharedRepository respected after convert >> ok 28 - sharedRepository respected after convert >> ok 29 - sharedRepository respected after convert >> ok 30 - v2 compact works >> ok 31 - highwater mark unchanged in v2 inbox >> ok 32 - sharedRepository respected after v2 compact >> ok 33 - sharedRepository respected after v2 compact >> ok 34 - sharedRepository respected after v2 compact >> ok 35 - sharedRepository respected after v2 compact >> ok 36 - sharedRepository respected after v2 compact >> ok 37 - sharedRepository respected for v2 msgmap >> ok 38 - sharedRepository respected after v2 compact >> ok 39 - sharedRepository respected after v2 compact >> ok 40 - sharedRepository respected after v2 compact >> ok 41 - sharedRepository respected after v2 compact >> ok 42 - sharedRepository respected after v2 compact >> ok 43 - sharedRepository respected after v2 compact >> ok 44 - message exists in history >> ok 45 - only one message in history >> ok 46 - --reindex -c >> ok 47 - xapian-compact ran (-c) >> ok 48 - --reindex -c -c >> ok 49 - xapian-compact ran (-c -c) >> ok 50 - -compacted twice >> 1..50 >> ok >> t/dir_idle.t ................. >> ok 1 - use PublicInbox::DirIdle; >> 1..1 >> ok >> t/ds-kqxs.t .................. skipped: DSKQXS is only for *BSD systems >> t/ds-leak.t .................. >> ok 1 - use PublicInbox::DS; >> ok 2 - subprocess spawned >> ok 3 - cloexec works and sleep(1) is running >> ok 4 # skip lsof missing >> ok 5 # skip BSD::Resource missing for t/ds-leak.t >> 1..5 >> ok >> t/ds-poll.t .................. >> ok 1 - use PublicInbox::DSPoll; >> ok 2 - add EPOLLIN >> ok 3 - no events set >> ok 4 - nothing ready, yet >> ok 5 - add EPOLLOUT|EPOLLONESHOT >> ok 6 - got POLLOUT event >> ok 7 - $w ready >> ok 8 - nothing ready after oneshot >> ok 9 - no events set after oneshot >> ok 10 - level-trigger POLLIN ready \#0 >> ok 11 - only event ready \#0 >> ok 12 - level-trigger POLLIN ready \#1 >> ok 13 - only event ready \#1 >> ok 14 - EPOLLIN|EPOLLONESHOT add >> ok 15 - epoll_wait has 2 ready >> ok 16 - got both ready FDs >> ok 17 - EPOLL_CTL_DEL OK >> ok 18 - nothing ready after EPOLL_CTL_DEL >> 1..18 >> ok >> t/edit.t ..................... >> ok 1 - add message to be edited >> ok 2 - -F FILE edit OK >> ok 3 - -F FILE message edited >> ok 4 - -F FILE shows commit on success >> ok 5 - -m MESSAGE_ID edit OK >> ok 6 - -m MESSAGE_ID message edited >> ok 7 - -m MESSAGE_ID shows commit on success >> ok 8 - no-op -m MESSAGE_ID succeeds >> ok 9 - no-op -m MESSAGE_ID makes no change >> ok 10 - no-op -m MESSAGE_ID does not change message >> ok 11 - noop shows NONE >> ok 12 - git head unchanged >> ok 13 - no-op -m MESSAGE_ID w/Status: header succeeds >> ok 14 - no-op -m MESSAGE_ID w/Status: header makes no change >> ok 15 - no-op -m MESSAGE_ID w/Status: header does not change message >> ok 16 - Status header not added >> ok 17 - noop shows NONE >> ok 18 - git head unchanged >> ok 19 - -m MESSAGE_ID can change Received: headers succeeds >> ok 20 - -m MESSAGE_ID can change Received: headers does not change Subject >> ok 21 - added Received header >> ok 22 - -m miss fails on invalid MID >> ok 23 - -m miss shows error >> ok 24 - non-interactive editor failure detected >> ok 25 - non-interactive editor failure shows error >> ok 26 - set publicinbox.mailEditor >> ok 27 - mailEditor set in config edited message >> ok 28 - mailEditor set in config message edited >> ok 29 - did not run GIT_EDITOR >> ok 30 - --raw and mbox escaping succeeds >> ok 31 - put "From " line into body >> ok 32 - --raw and mbox escaping succeeds with mbox escaping >> ok 33 - changed "From " line unescaped >> ok 34 - --raw and mbox escaping succeeds again >> ok 35 - --raw and mbox escaping restored body >> ok 36 - reuse Message-ID and re-add >> ok 37 - reuse Message-ID got warning >> ok 38 - edit ambiguous Message-ID with -m fails w/o --force >> ok 39 - edit ambiguous Message-ID with -m shows matches >> ok 40 - edit ambiguous Message-ID with -m shows git commands >> ok 41 - edit ambiguous Message-ID with -m and --force succeeds >> ok 42 - edit ambiguous Message-ID with -m and --force notes all will be edited >> ok 43 - edit ambiguous Message-ID with -m and --force edited both messages >> 1..43 >> ok >> t/emergency.t ................ >> ok 1 - use PublicInbox::Emergency; >> ok 2 - Maildir a auto-created >> ok 3 - no temporary files exist, yet >> ok 4 - globbed one temporary file >> ok 5 - wrote contents to temporary location >> ok 6 - no new files exist, yet >> ok 7 - temporary file no longer exists >> ok 8 - globbed one new file >> ok 9 - wrote contents to new location >> ok 10 - Maildir b auto-created >> ok 11 - no temporary files exist, yet >> ok 12 - globbed one temporary file >> ok 13 - wrote contents to temporary location >> ok 14 - no new files exist, yet >> ok 15 - read file handle exposed >> ok 16 - got expected data >> ok 17 - temporary file no longer exists >> ok 18 - new file no longer exists >> 1..18 >> ok >> >> # Failed test 'filename decoded' >> # at t/eml.t line 407. >> # got: '=?utf-8?q?vtpm-makefile.patch?=' >> # expected: 'vtpm-makefile.patch' >> # Looks like you failed 1 test of 146. >> t/eml.t ...................... >> ok 1 - use PublicInbox::Eml; >> ok 2 - use PublicInbox::MIME; >> ok 3 - ->new modified body like Email::Simple >> ok 4 - ->body works >> ok 5 - ->as_string >> ok 6 - ->as_string works >> ok 7 - header ->as_string works >> ok 8 - header_raw scalar context >> ok 9 - multi-value >> ok 10 - multi-value header >> ok 11 - multi-line, multi-value header >> ok 12 - header_set clears >> ok 13 - header_set clears idempotent >> ok 14 - header_set >> ok 15 - header_set ary >> ok 16 - header_set `rr' did not clobber `r' >> ok 17 - got set scalar >> ok 18 - got long set scalar >> ok 19 - single token not wrapped >> ok 20 - wrapped after long token >> ok 21 - preformatted preserved >> ok 22 - ->as_string works >> ok 23 - header ->as_string works >> ok 24 - header_raw scalar context >> ok 25 - multi-value >> ok 26 - multi-value header >> ok 27 - multi-line, multi-value header >> ok 28 - header_set clears >> ok 29 - header_set clears idempotent >> ok 30 - header_set >> ok 31 - header_set ary >> ok 32 - header_set `rr' did not clobber `r' >> ok 33 - got set scalar >> ok 34 - got long set scalar >> ok 35 - preformatted preserved >> ok 36 - name not unnecessarily quoted PublicInbox::Eml >> ok 37 - name not unnecessarily quoted PublicInbox::MIME >> ok 38 - MIME-B encoded UTF-8 Subject >> ok 39 - got wide character back >> ok 40 - MIME-B encoded UTF-8 Subject >> ok 41 - got wide character back >> ok 42 - continued long line w/o leading spaces PublicInbox::Eml >> ok 43 - subsequent line not corrupted >> ok 44 - preceding line readable >> ok 45 - continued long line w/o leading spaces PublicInbox::MIME >> ok 46 - subsequent line not corrupted >> ok 47 - preceding line readable >> ok 48 - order is fine >> ok 49 - unchanged by ->each_part >> ok 50 - each_part can clobber body >> ok 51 - got all parts >> ok 52 - first part found >> ok 53 - got expected depth and level for part \#0 >> ok 54 - attachment filename found >> ok 55 - got expected depth and level for part \#1 >> ok 56 - got expected depth and level for part \#2 >> ok 57 - got expected depth and level for part \#3 >> ok 58 - got expected depth and level for part \#4 >> ok 59 - another attachment filename found >> ok 60 - got expected depth and level for part \#5 >> ok 61 - called on bodyless multipart >> ok 62 - got one part even w/o boundary >> ok 63 - body preserved >> ok 64 - $depth is zero >> ok 65 - @idx is one >> ok 66 - called on bodyless multipart >> ok 67 - got one part even w/o boundary >> ok 68 - body preserved >> ok 69 - $depth is zero >> ok 70 - @idx is one >> ok 71 - body-only subpart in PublicInbox::Eml >> ok 72 >> ok 73 - two parts >> ok 74 >> ok 75 - two parts >> ok 76 - no header >> ok 77 - got CRLF as "\n" >> ok 78 >> ok 79 - only one part >> ok 80 - nothing w/o body PublicInbox::Eml >> ok 81 - only one part >> ok 82 - nothing w/o body PublicInbox::MIME >> ok 83 - only got one header >> ok 84 - got expected body >> ok 85 - only one part >> ok 86 - only got one header >> ok 87 - got expected body >> ok 88 - only one part >> ok 89 - got wide character by assuming utf-8 (PublicInbox::Eml) >> ok 90 # skip newer Email::MIME behavior inconsistent >> ok 91 - final "\n" preserved on missing epilogue >> ok 92 - no overrun header >> ok 93 - body not damaged >> ok 94 - header truncated >> ok 95 - truncation warned >> ok 96 - no overrun header w/o body >> ok 97 - no overrun header on CRLF >> ok 98 - body not damaged >> ok 99 - ignored header warned >> ok 100 - part \#1 matches >> ok 101 - part \#2 matches >> ok 102 - part \#3 matches >> ok 103 - part \#4 matches >> ok 104 - maxparts honored >> ok 105 - part[0] matches >> ok 106 - part[1] matches >> ok 107 - part[2] matches >> ok 108 - maxparts honored >> ok 109 - decoded -8 Subject matches Email::MIME >> ok 110 - Subject is UTF-8 >> ok 111 - UTF-8 valid Subject >> ok 112 - decoded -8 From matches Email::MIME >> ok 113 - From is UTF-8 >> ok 114 - UTF-8 valid From >> ok 115 - decoded -8 To matches Email::MIME >> ok 116 - To is UTF-8 >> ok 117 - UTF-8 valid To >> ok 118 - body_str is UTF-8 >> ok 119 - UTF-8 valid body_str >> ok 120 - raw octets after body_str_set >> ok 121 - body_str is UTF-8 after set >> ok 122 - UTF-8 valid body_str after set >> ok 123 - body_set worked on scalar ref >> ok 124 - body_set worked on scalar >> ok 125 - raw octets after body_str_set >> ok 126 - body_str is UTF-8 after set >> ok 127 - UTF-8 valid body_str after set >> ok 128 - body_set worked on scalar ref >> ok 129 - body_set worked on scalar >> ok 130 - ISO-2202-JP body_str >> ok 131 - ISO-2202-JP => UTF-8 body_str >> ok 132 - UTF-8 valid body_str >> ok 133 - raw ->subparts match deeply >> ok 134 - ->subparts match deeply >> ok 135 - parts_set can clear >> ok 136 - only last remains >> ok 137 - parts_set can clear >> ok 138 - only last remains >> ok 139 - as_string matches after parts_set >> ok 140 - filename decoded >> ok 141 - filename fallback (PublicInbox::Eml) >> ok 142 - matches Email::MIME output, "correct" or not >> ok 143 - got filename for both attachments (PublicInbox::Eml) >> not ok 144 - filename decoded >> ok 145 - matches Email::MIME output, "correct" or not >> ok 146 # skip newer Email::MIME is inconsistent here >> 1..146 >> Dubious, test returned 1 (wstat 256, 0x100) >> Failed 1/146 subtests >> (less 2 skipped subtests: 143 okay) >> t/eml_content_disposition.t .. >> ok 1 - Can parse C-D <> >> ok 2 - Can parse C-D >> ok 3 - Can parse C-D >> ok 4 - Can parse C-D >> ok 5 - Can parse C-D >> ok 6 - Can parse C-D >> ok 7 - Can parse C-D >> ok 8 - Can parse C-D >> ok 9 - Can parse C-D >> ok 10 - Can parse non-strict C-D <> >> ok 11 - Can parse non-strict C-D >> ok 12 - Can parse non-strict C-D >> ok 13 - Can parse non-strict C-D >> ok 14 - Can parse non-strict C-D >> ok 15 - Can parse non-strict C-D >> ok 16 - Can parse non-strict C-D >> ok 17 - Can parse non-strict C-D >> ok 18 - Can parse non-strict C-D >> ok 19 - Can parse non-strict C-D >> 1..19 >> ok >> t/eml_content_type.t ......... >> ok 1 - Can parse C-T <> >> ok 2 - Can parse C-T <(c \( \\) (c) text/plain (c) (c) ; (c) (c) charset=utf-8 (c)> >> ok 3 - Can parse C-T <(c) text/plain (c); (c) charset=ISO-8859-1 (c)> >> ok 4 - Can parse C-T >> ok 5 - Can parse C-T >> ok 6 - Can parse C-T >> ok 7 - Can parse C-T >> ok 8 - Can parse C-T >> ok 9 - Can parse C-T >> ok 10 - Can parse C-T >> ok 11 - Can parse C-T >> ok 12 - Can parse C-T >> ok 13 - Can parse C-T >> ok 14 - Can parse C-T >> ok 15 - Can parse C-T >> ok 16 - Can parse C-T >> ok 17 - Can parse C-T >> ok 18 - Can parse C-T >> ok 19 - Can parse C-T >> ok 20 - Can parse C-T >> ok 21 - Can parse C-T >> ok 22 - Can parse C-T >> ok 23 - Can parse C-T >> ok 24 - Can parse C-T \<\)\@\,\;\:\/\]\[\?\=v v"; charset=us-ascii> >> ok 25 - Can parse C-T >> ok 26 - Can parse C-T >> ok 27 - Can parse C-T >> ok 28 - Can parse C-T >> ok 29 - Can parse C-T >> ok 30 - Can parse C-T >> ok 31 - Can parse non-strict C-T <> >> ok 32 - Can parse non-strict C-T <(c \( \\) (c) text/plain (c) (c) ; (c) (c) charset=utf-8 (c)> >> ok 33 - Can parse non-strict C-T <(c) text/plain (c); (c) charset=ISO-8859-1 (c)> >> ok 34 - Can parse non-strict C-T >> ok 35 - Can parse non-strict C-T >> ok 36 - Can parse non-strict C-T >> ok 37 - Can parse non-strict C-T >> ok 38 - Can parse non-strict C-T >> ok 39 - Can parse non-strict C-T >> ok 40 - Can parse non-strict C-T >> ok 41 - Can parse non-strict C-T >> ok 42 - Can parse non-strict C-T >> ok 43 - Can parse non-strict C-T >> ok 44 - Can parse non-strict C-T >> ok 45 - Can parse non-strict C-T >> ok 46 - Can parse non-strict C-T >> ok 47 - Can parse non-strict C-T >> ok 48 - Can parse non-strict C-T >> ok 49 - Can parse non-strict C-T >> ok 50 - Can parse non-strict C-T >> ok 51 - Can parse non-strict C-T >> ok 52 - Can parse non-strict C-T >> ok 53 - Can parse non-strict C-T >> ok 54 - Can parse non-strict C-T \<\)\@\,\;\:\/\]\[\?\=v v"; charset=us-ascii> >> ok 55 - Can parse non-strict C-T >> ok 56 - Can parse non-strict C-T >> ok 57 - Can parse non-strict C-T >> ok 58 - Can parse non-strict C-T >> ok 59 - Can parse non-strict C-T >> ok 60 - Can parse non-strict C-T >> ok 61 - Can parse non-strict C-T >> ok 62 - Can parse non-strict C-T >> ok 63 - Can parse non-strict C-T >> ok 64 - Can parse non-strict C-T >> ok 65 - Can parse non-strict C-T >> ok 66 - Can parse non-strict C-T >> 1..66 >> ok >> t/epoll.t .................... >> ok 1 - epoll_create >> ok 2 - epoll_ctl socket EPOLLOUT >> ok 3 - epoll_wait returns >> ok 4 - got one event >> ok 5 - got expected FD >> ok 6 - got expected event >> ok 7 - epoll_wait timeout >> 1..7 >> ok >> t/fake_inotify.t ............. >> ok 1 - use PublicInbox::FakeInotify; >> ok 2 - rename(2) detected >> ok 3 - link(2) detected >> ok 4 - link(2) not detected after cancel >> 1..4 >> ok >> t/feed.t ..................... >> ok 1 - added >> ok 2 - added >> ok 3 - added >> ok 4 - added >> ok 5 - added >> ok 6 - added >> ok 7 # skip XML::TreePP missing >> ok 8 # skip XML::TreePP missing >> ok 9 # skip XML::TreePP missing >> ok 10 - long quoted text kept >> ok 11 - short quoted text kept >> ok 12 - unquoted text saved >> ok 13 # skip XML::TreePP missing >> ok 14 # skip XML::TreePP missing >> ok 15 - spam showed up :< >> ok 16 # skip XML::TreePP missing >> ok 17 # skip XML::TreePP missing >> ok 18 - spam gone :> >> 1..18 >> ok >> t/filter_base.t .............. >> ok 1 - use PublicInbox::Filter::Base; >> ok 2 - created stock object >> ok 3 - rejected suffix redefined >> ok 4 - reject_suffix should be a RE >> ok 5 - created base object q/o reject_suffix >> ok 6 - reject_suffix not defined >> ok 7 - xhtml rejected >> ok 8 - proprietary format rejected on glob >> 1..8 >> ok >> t/filter_mirror.t ............ >> ok 1 - use PublicInbox::Filter::Mirror; >> ok 2 - created PublicInbox::Filter::Mirror object >> ok 3 - accept any trash that comes >> 1..3 >> ok >> t/filter_rubylang.t .......... >> ok 1 - use PublicInbox::Filter::RubyLang; >> ok 2 - created PublicInbox::Filter::RubyLang object >> ok 3 - delivery successful >> ok 4 - normal message filtered OK >> ok 5 - use PublicInbox::Inbox; >> ok 6 - created public-inbox dir >> ok 7 - delivery successful >> ok 8 - MM entry created based on X-ML-Count >> ok 9 - delivery rejected without X-Mail-Count >> 1..9 >> ok >> t/filter_subjecttag.t ........ >> ok 1 - use PublicInbox::Filter::SubjectTag; >> ok 2 - error without args >> ok 3 - new object created >> ok 4 - filtered with Re: >> ok 5 - filtered non-reply >> ok 6 - subject filtered correctly >> 1..6 >> ok >> t/filter_vger.t .............. >> ok 1 - use PublicInbox::Filter::Vger; >> ok 2 - created PublicInbox::Filter::Vger object >> ok 3 - normal message filtered OK >> ok 4 - missing trailing LF in original OK >> 1..4 >> ok >> t/git.t ...................... >> ok 1 - use PublicInbox::Git; >> ok 2 - fast-import succeeded >> ok 3 - modified time detected from commit >> ok 4 - returned 3 element array for existing file >> ok 5 - returns obj ID in 1st element >> ok 6 - returns obj type in 2nd element >> ok 7 - returns obj size in 3rd element >> ok 8 - length matches >> ok 9 - not broken after failures >> ok 10 - not broken after partial read >> ok 11 - got expected header >> ok 12 - arg passed to cat_async >> ok 13 - blob result matches >> ok 14 - non-existent blob gives expected result >> ok 15 - COPYING readable >> ok 16 - file is big enough >> ok 17 - hashed object successfully >> ok 18 - got correct size ref on big file >> ok 19 - read correct number of bytes >> ok 20 - qx returned array length of 661 >> ok 21 - packed size is positive >> ok 22 - remote file not found >> ok 23 - alternates reloaded >> ok 24 - got expected results >> ok 25 - cleanup can expire >> ok 26 - cleanup idempotent >> ok 27 - repo not modified in the future >> ok 28 - repo not modified in 1970 >> ok 29 - use PublicInbox::Git; >> ok 30 - unquoted newline >> ok 31 - unquoted octal >> ok 32 - unquoted dq >> ok 33 - unquoted backslash >> ok 34 - quoted octal >> ok 35 - quoted dq >> ok 36 - quoted backslash >> ok 37 - quoted LF >> 1..37 >> ok >> t/gzip_filter.t .............. >> ok 1 - require PublicInbox::GzipFilter; >> ok 2 - wrote something >> ok 3 - wrote more >> ok 4 - buffer matches >> ok 5 - got SIGPIPE >> 1..5 >> ok >> t/hl_mod.t ................... skipped: failed to load highlight.pm for t/hl_mod.t >> t/html_index.t ............... >> ok 1 - inserted message >> ok 2 - inserted message >> ok 3 - inserted message >> ok 4 - inserted message >> ok 5 - inserted message >> ok 6 - inserted message >> 1..6 >> ok >> t/httpd-corner.t ............. >> ok 1 - created FIFO >> ok 2 - UNIX socket created >> ok 3 - connected for killed worker >> ok 4 - /pid response >> ok 5 - killed worker >> ok 6 - worker died and EOF-ed client >> ok 7 - connected for respawned worker >> ok 8 - read response >> ok 9 - /pid response >> ok 10 - respawned worker >> ok 11 - connected for streaming callback >> ok 12 - read response >> ok 13 - callback body matches expected >> ok 14 - connected for getline-die >> ok 15 - read some response >> ok 16 - got some sort of header >> ok 17 - read EOF >> ok 18 - failure logged >> ok 19 - body->close not called >> ok 20 - connected for close-die >> ok 21 - read some response >> ok 22 - got some sort of header >> ok 23 - read EOF >> ok 24 - getline not failed >> ok 25 - body->close not called >> ok 26 - connected for excessive header >> ok 27 - broken request >> ok 28 - got 400 response >> ok 29 - connected for excessive body Content-Length >> ok 30 - read response >> ok 31 - got 413 response >> ok 32 - connected for excessive body chunked >> ok 33 - read response >> ok 34 - got 413 response >> ok 35 - connected for 1.1 Transfer-Encoding bogus >> ok 36 - got 400 response on bogus TE >> ok 37 - connected for 1.1 Content-Length bogus >> ok 38 - got 400 response on bad length >> ok 39 - connected for 1.1 Content-Length dupe >> ok 40 - got 400 response on dupe length >> ok 41 - connected for chunk with pipeline >> ok 42 - chunk parser can handled pipelined requests >> ok 43 - unix socket connected >> ok 44 - set REMOTE_ADDR and REMOTE_PORT for Unix socket >> ok 45 - connected for host-port >> ok 46 - host matches addr >> ok 47 - port matches >> ok 48 - connected for graceful termination via slow header >> ok 49 - wrote something to fifo >> ok 50 - started graceful shutdown >> ok 51 - wrote else to fifo >> ok 52 - got 200 for slow-header >> ok 53 - read expected body >> ok 54 - no error >> ok 55 - connected for graceful termination via slow-body >> ok 56 - got 200 for slow-body >> ok 57 - finished HTTP response header >> ok 58 - wrote line to fifo >> ok 59 - got trickle for reading >> ok 60 - wrote line to fifo >> ok 61 - got trickle for reading >> ok 62 - wrote line to fifo >> ok 63 - got trickle for reading >> ok 64 - started graceful shutdown >> ok 65 - wrote else to fifo >> ok 66 - read expected body >> ok 67 - got EOF from server >> ok 68 - no error >> ok 69 - got the alphabet >> ok 70 # skip curl(1) missing >> ok 71 # skip curl(1) missing >> ok 72 # skip curl(1) missing >> ok 73 # skip curl(1) missing >> ok 74 - connected for psgi_return ENOENT >> ok 75 - got 500 error on ENOENT >> ok 76 - connected for 1.1 pipeline together >> ok 77 - got 2 responses >> ok 78 - read expected body 3 >> ok 79 - read expected body 4 >> ok 80 - connected for no TCP_CORK on empty body >> ok 81 - no 200ms TCP cork delay on empty body >> ok 82 - connected for graceful termination during slow request >> ok 83 - start graceful shutdown >> ok 84 - graceful shutdown did not kill httpd >> ok 85 - wrote alphabet >> ok 86 - got expected length >> ok 87 - read expected body >> ok 88 - no error >> ok 89 - connected for 1.1 chunk header excessive >> ok 90 - got error set in $! >> ok 91 - write error happened >> ok 92 - was able to write >> ok 93 - got 400 response >> ok 94 - connected for 1.1 chunk trailer excessive >> ok 95 - wrote first header + chunk >> ok 96 - got error set in $! >> ok 97 - wrote part of chunk end (\r) >> ok 98 - got 400 response >> ok 99 - connected for 1.1 chunked close trickle >> ok 100 - got expected length >> ok 101 - read expected body >> ok 102 - connected for 1.1 chunked close >> ok 103 - got expected length >> ok 104 - read expected body >> ok 105 - connected for chunked body + pipeline >> ok 106 - got expected length >> ok 107 - read expected body >> ok 108 - got expected length >> ok 109 - read expected body >> ok 110 - connected for trickle header, one-shot body + pipeline >> ok 111 - got expected length >> ok 112 - read expected body >> ok 113 - got expected length >> ok 114 - read expected body >> ok 115 - connected for trickle body >> ok 116 - substr setup correct >> ok 117 - got expected length >> ok 118 - read expected body >> ok 119 - connected for one-shot write >> ok 120 - got expected length >> ok 121 - read expected body >> ok 122 - connected for trickle header, one-shot body >> ok 123 - got expected length >> ok 124 - read expected body >> ok 125 - connected for 1.1 Connection: close >> ok 126 - got expected length >> ok 127 - read expected body >> ok 128 - connected for 1.1 pipeline start >> ok 129 - got expected length >> ok 130 - read expected body >> ok 131 - got expected length >> ok 132 - read expected body \#2 >> ok 133 - TCP_DEFER_ACCEPT unchanged if previously set >> ok 134 # skip SO_ACCEPTFILTER is FreeBSD-only >> ok 135 # skip no lsof in PATH >> ok 136 - use HTTP::Request::Common; >> ok 137 - use Plack::Test; >> ok 138 - got expected output >> ok 139 - got error on ENOENT >> ok 140 - error logged about missing command >> 1..140 >> ok >> t/httpd-https.t .............. skipped: certs/ missing for t/httpd-https.t, run /usr/bin/perl ./create-certs.perl in certs/ >> t/httpd-unix.t ............... >> ok 1 - sockname works for UNIX >> ok 2 - UNIX socket does not exist, yet >> ok 3 - UNIX socket was bound by -httpd >> ok 4 - client UNIX socket connected >> ok 5 - wrote req to server >> ok 6 - read response >> ok 7 - set REMOTE_ADDR and REMOTE_PORT for Unix socket >> ok 8 - httpd failure set $? >> ok 9 - httpd failed with EADDRINUSE >> ok 10 - got error message >> ok 11 - stdout was empty >> ok 12 - terminate existing process >> ok 13 - existing httpd exited successfully >> ok 14 - unix socket still exists >> ok 15 - daemonized -W0 process >> ok 16 - client UNIX socket connected >> ok 17 - wrote req to server >> ok 18 - read response >> ok 19 - set REMOTE_ADDR and REMOTE_PORT for Unix socket >> ok 20 - -W0 pid file written >> ok 21 - signaled daemonized -W0 process >> ok 22 - daemonized -W0 process exited >> ok 23 - -W0 pid file unlinked at exit >> ok 24 - daemonized -W1 process >> ok 25 - client UNIX socket connected >> ok 26 - wrote req to server >> ok 27 - read response >> ok 28 - set REMOTE_ADDR and REMOTE_PORT for Unix socket >> ok 29 - -W1 pid file written >> ok 30 - signaled daemonized -W1 process >> ok 31 - daemonized -W1 process exited >> ok 32 - -W1 pid file unlinked at exit >> ok 33 - daemonized process again >> ok 34 - client UNIX socket connected >> ok 35 - wrote req to server >> ok 36 - read response >> ok 37 - set REMOTE_ADDR and REMOTE_PORT for Unix socket >> ok 38 - pid file written >> ok 39 - new child started >> ok 40 - $new_pid valid >> ok 41 - .oldbin pid file written >> ok 42 - $old_pid valid >> ok 43 - client UNIX socket connected >> ok 44 - wrote req to server >> ok 45 - read response >> ok 46 - set REMOTE_ADDR and REMOTE_PORT for Unix socket >> ok 47 - old PID file restored >> ok 48 - .oldbin PID file gone >> ok 49 - new child started again >> ok 50 - .oldbin pid file written >> ok 51 - .oldbin PID file gone >> ok 52 - client UNIX socket connected >> ok 53 - wrote req to server >> ok 54 - read response >> ok 55 - set REMOTE_ADDR and REMOTE_PORT for Unix socket >> ok 56 - PID file is gone >> ok 57 - daemonized w/o workers >> ok 58 - client UNIX socket connected >> ok 59 - wrote req to server >> ok 60 - read response >> ok 61 - set REMOTE_ADDR and REMOTE_PORT for Unix socket >> ok 62 - client UNIX socket connected >> ok 63 - wrote req to server >> ok 64 - read response >> ok 65 - set REMOTE_ADDR and REMOTE_PORT for Unix socket >> ok 66 - PID file is gone >> 1..66 >> ok >> t/httpd.t .................... >> ok 1 - use PublicInbox::Git; >> ok 2 - use PublicInbox::Import; >> ok 3 - init ran properly >> ok 4 - sock created >> ok 5 - got 405 on bad req >> ok 6 - connected >> ok 7 - wrote data to socket >> ok 8 - read some bytes >> ok 9 - got 404 response >> ok 10 - EOF >> ok 11 - smart clone successful >> ok 12 - disable http.uploadpack >> ok 13 - clone successful >> ok 14 - killed httpd >> ok 15 - fsck on cloned directory successful >> ok 16 - TCP_DEFER_ACCEPT set >> ok 17 # skip SO_ACCEPTFILTER is FreeBSD-only >> 1..17 >> ok >> t/hval.t ..................... >> ok 1 - use PublicInbox::Hval; >> ok 2 - only obfuscated relevant addresses >> ok 3 - to_filename has no trailing - >> ok 4 - to_filename has no repeated -, and nothing past LF >> ok 5 - to_filename squeezes - >> ok 6 - empty string returns undef >> ok 7 - src_escape works as intended >> ok 8 - Hello/World.pm => Hello:World.pm => Hello/World.pm round trips >> ok 9 - Zcat => Z5acat => Zcat round trips >> ok 10 - hello world.c => hello::20world.c => hello world.c round trips >> ok 11 - Eléanor => El::c3::83::c2::a9anor => Eléanor round trips >> ok 12 - $at => Z24at => $at round trips >> ok 13 - double-slash rejected >> 1..13 >> ok >> t/idx_stack.t ................ >> ok 1 - use PublicInbox::IdxStack; >> ok 2 - nothing >> ok 3 - no records >> ok 4 - undef on empty >> ok 5 - read_prepare >> ok 6 - num_records >> ok 7 - pop once >> ok 8 - undef on empty >> ok 9 - read_prepare >> ok 10 - num_records >> ok 11 - pop >> ok 12 - pop-pop >> ok 13 - empty >> ok 14 # skip TEST_GIT_LOG unset >> ok 15 # skip TEST_GIT_LOG unset >> ok 16 # skip TEST_GIT_LOG unset >> 1..16 >> ok >> t/imap.t ..................... skipped: Parse::RecDescent missing for t/imap.t >> t/imap_searchqp.t ............ skipped: Parse::RecDescent missing for t/imap_searchqp.t >> t/imap_tracker.t ............. >> ok 1 - use PublicInbox::IMAPTracker; >> ok 2 - ->new creates file >> ok 3 - file persists after DESTROY >> ok 4 - ->new does not create new file if old is present >> ok 5 # skip TEST_STRESS_NPROC= not set >> 1..5 >> ok >> t/imapd-tls.t ................ skipped: Mail::IMAPClient, Parse::RecDescent missing for t/imapd-tls.t >> t/imapd.t .................... skipped: Mail::IMAPClient, Mail::IMAPClient::BodyStructure, Parse::RecDescent missing for t/imapd.t >> t/import.t ................... >> ok 1 - added one message >> ok 2 - got last object_id >> ok 3 - string matches >> ok 4 - length matches >> ok 5 - waitpid succeeds on hash-object >> ok 6 - hash-object >> ok 7 - blob object_id matches exp >> ok 8 - one revision created >> ok 9 - added 2nd message >> ok 10 - 2 revisions exist >> ok 11 - message only inserted once >> ok 12 - 2 revisions exist >> ok 13 - added c message >> ok 14 - added d message >> ok 15 - added e message >> ok 16 - added f message >> ok 17 - added g message >> ok 18 - added h message >> ok 19 - added i message >> ok 20 - added j message >> ok 21 - added k message >> ok 22 - added l message >> ok 23 - added m message >> ok 24 - added n message >> ok 25 - added o message >> ok 26 - added p message >> ok 27 - added q message >> ok 28 - added r message >> ok 29 - added s message >> ok 30 - added t message >> ok 31 - added u message >> ok 32 - added v message >> ok 33 - added w message >> ok 34 - added x message >> ok 35 - added y message >> ok 36 - added z message >> ok 37 - 26 revisions exist after mass import >> ok 38 - got mark >> ok 39 - got old message deleted >> ok 40 - remove is idempotent >> ok 41 - mark == MISMATCH on mismatch >> ok 42 - Message-ID matches >> ok 43 - subject mismatch >> ok 44 - check callback fails >> ok 45 - message not added, so not removed >> ok 46 - checkpoint works before ->done >> ok 47 - checkpoint works after ->done >> ok 48 - Import->add fails on non-existent dir >> ok 49 - added PublicInbox::Eml message with nasty char in From >> ok 50 - added PublicInbox::MIME message with nasty char in From >> ok 51 - latest commit accepted by spammer >> ok 52 - fsck reported no errors >> 1..52 >> ok >> t/inbox.t .................... >> ok 1 - use PublicInbox::Inbox; >> ok 2 - expanded protocol-relative >> ok 3 - added trailing slash >> ok 4 - undef base_url allowed >> ok 5 - no cloneurls >> ok 6 - default description >> ok 7 - cloneurls update >> ok 8 - description is utf8::valid >> ok 9 - description updated >> ok 10 - unlinked cloneurl & description >> ok 11 - cloneurls memoized >> ok 12 - description memoized >> 1..12 >> ok >> t/inbox_idle.t ............... >> ok 1 - use PublicInbox::InboxIdle; >> ok 2 - InboxIdle created >> ok 3 # skip inotify or kqueue missing >> ok 4 - 1 added >> ok 5 - called on unlock >> ok 6 - 1 added \#2 >> ok 7 - not called when unsubbed >> ok 8 - InboxIdle created >> ok 9 # skip inotify or kqueue missing >> ok 10 - 2 added >> ok 11 - called on unlock >> ok 12 - 2 added \#2 >> ok 13 - not called when unsubbed >> 1..13 >> ok >> t/index-git-times.t .......... >> ok 1 - use PublicInbox::Over; >> ok 2 - indexlevel detected >> ok 3 - --skip-docdata flag set on -index >> ok 4 - datestamp from git author time >> ok 5 - timestamp from git committer time >> ok 6 - got one result for m: >> ok 7 - Xapian stored datestamp >> ok 8 - got one result for d: >> ok 9 - Xapian search on datestamp >> ok 10 - indexlevel detected after convert >> ok 11 - --skip-docdata preserved after convert >> ok 12 - v2 datestamp from git author time >> ok 13 - v2 timestamp from git committer time >> ok 14 - Xapian stored datestamp >> ok 15 - got one result for d: >> ok 16 - Xapian search on datestamp >> ok 17 - indexlevel detected after convert >> ok 18 - --skip-docdata preserved after convert >> ok 19 - v2 datestamp from git author time >> ok 20 - v2 timestamp from git committer time >> ok 21 - Xapian stored datestamp >> ok 22 - got one result for d: >> ok 23 - Xapian search on datestamp >> 1..23 >> ok >> t/indexlevels-mirror-v1.t .... >> ok 1 - first message added >> ok 2 - index master >> ok 3 - only one message in master, so far >> ok 4 - first message in master indexed >> ok 5 - v1 clone OK >> ok 6 - v1 init OK >> ok 7 - v1 index mirror OK >> ok 8 - only one message, so far >> ok 9 - read first message >> ok 10 - 2nd message added >> ok 11 - fetch OK >> ok 12 - v1 index mirror again OK >> ok 13 - 2nd message seen in mirror >> ok 14 - got both messages in mirror >> ok 15 - index master OK >> ok 16 - 2nd message seen in master >> ok 17 - got both messages in master >> ok 18 - master has expected NNTP articles >> ok 19 - mirror has expected NNTP articles >> ok 20 - 2nd message removed >> ok 21 - unindex NNTP article1basic >> ok 22 - fetch OK >> ok 23 - v1 index mirror again OK >> ok 24 - 2nd message gone from mirror >> ok 25 - message unavailable in mirror >> ok 26 - \#3 message added >> ok 27 - \#4 message added >> ok 28 - \#5 message added >> ok 29 - fetch OK >> ok 30 - v1 index --reindex mirror OK >> ok 31 - v1 master has expected NNTP articles >> ok 32 - v1 mirror matches master articles >> ok 33 - indexlevel detectable by Admin 1basic >> ok 34 - compact basic >> ok 35 - first message added >> ok 36 - index master >> ok 37 - only one message in master, so far >> ok 38 - first message in master indexed >> ok 39 - v1 clone OK >> ok 40 - v1 init OK >> ok 41 - v1 index mirror OK >> ok 42 - only one message, so far >> ok 43 - read first message >> ok 44 - 2nd message added >> ok 45 - fetch OK >> ok 46 - v1 index mirror again OK >> ok 47 - 2nd message seen in mirror >> ok 48 - got both messages in mirror >> ok 49 - index master OK >> ok 50 - 2nd message seen in master >> ok 51 - got both messages in master >> ok 52 - master has expected NNTP articles >> ok 53 - mirror has expected NNTP articles >> ok 54 - 2nd message removed >> ok 55 - unindex NNTP article1medium >> ok 56 - v1 xcpdb OK >> ok 57 - indexlevel detectable by Admin after xcpdb v1medium >> ok 58 - v1 found m@2 via Xapian on medium >> ok 59 - fetch OK >> ok 60 - v1 index mirror again OK >> ok 61 - 2nd message gone from mirror >> ok 62 - message unavailable in mirror >> ok 63 - v1 m@2 gone from Xapian in mirror on medium >> ok 64 - \#3 message added >> ok 65 - \#4 message added >> ok 66 - \#5 message added >> ok 67 - fetch OK >> ok 68 - v1 index --reindex mirror OK >> ok 69 - v1 master has expected NNTP articles >> ok 70 - v1 mirror matches master articles >> ok 71 - indexlevel detectable by Admin 1medium >> ok 72 - compact medium >> ok 73 - first message added >> ok 74 - index master >> ok 75 - only one message in master, so far >> ok 76 - first message in master indexed >> ok 77 - v1 clone OK >> ok 78 - v1 init OK >> ok 79 - v1 index mirror OK >> ok 80 - only one message, so far >> ok 81 - read first message >> ok 82 - 2nd message added >> ok 83 - fetch OK >> ok 84 - v1 index mirror again OK >> ok 85 - 2nd message seen in mirror >> ok 86 - got both messages in mirror >> ok 87 - index master OK >> ok 88 - 2nd message seen in master >> ok 89 - got both messages in master >> ok 90 - master has expected NNTP articles >> ok 91 - mirror has expected NNTP articles >> ok 92 - 2nd message removed >> ok 93 - unindex NNTP article1full >> ok 94 - v1 xcpdb OK >> ok 95 - indexlevel detectable by Admin after xcpdb v1full >> ok 96 - v1 found m@2 via Xapian on full >> ok 97 - fetch OK >> ok 98 - v1 index mirror again OK >> ok 99 - 2nd message gone from mirror >> ok 100 - message unavailable in mirror >> ok 101 - v1 m@2 gone from Xapian in mirror on full >> ok 102 - \#3 message added >> ok 103 - \#4 message added >> ok 104 - \#5 message added >> ok 105 - fetch OK >> ok 106 - v1 index --reindex mirror OK >> ok 107 - v1 master has expected NNTP articles >> ok 108 - v1 mirror matches master articles >> ok 109 - indexlevel detectable by Admin 1full >> ok 110 - compact full >> 1..110 >> ok >> t/indexlevels-mirror.t ....... >> ok 1 - first message added >> ok 2 - index master >> ok 3 - only one message in master, so far >> ok 4 - first message in master indexed >> ok 5 - v2 clone OK >> ok 6 - v2 init OK >> ok 7 - v2 index mirror OK >> ok 8 - only one message, so far >> ok 9 - read first message >> ok 10 - 2nd message added >> ok 11 - fetch OK >> ok 12 - v2 index mirror again OK >> ok 13 - 2nd message seen in mirror >> ok 14 - got both messages in mirror >> ok 15 - index master OK >> ok 16 - 2nd message seen in master >> ok 17 - got both messages in master >> ok 18 - master has expected NNTP articles >> ok 19 - mirror has expected NNTP articles >> ok 20 - 2nd message removed >> ok 21 - unindex NNTP article2basic >> ok 22 - fetch OK >> ok 23 - v2 index mirror again OK >> ok 24 - 2nd message gone from mirror >> ok 25 - message unavailable in mirror >> ok 26 - no Xapian shard directories for v2 basic >> ok 27 - \#3 message added >> ok 28 - \#4 message added >> ok 29 - \#5 message added >> ok 30 - fetch OK >> ok 31 - v2 index --reindex mirror OK >> ok 32 - v2 master has expected NNTP articles >> ok 33 - v2 mirror matches master articles >> ok 34 - indexlevel detectable by Admin 2basic >> ok 35 - compact basic >> ok 36 - first message added >> ok 37 - index master >> ok 38 - only one message in master, so far >> ok 39 - first message in master indexed >> ok 40 - v2 clone OK >> ok 41 - v2 init OK >> ok 42 - v2 index mirror OK >> ok 43 - only one message, so far >> ok 44 - read first message >> ok 45 - 2nd message added >> ok 46 - fetch OK >> ok 47 - v2 index mirror again OK >> ok 48 - 2nd message seen in mirror >> ok 49 - got both messages in mirror >> ok 50 - index master OK >> ok 51 - 2nd message seen in master >> ok 52 - got both messages in master >> ok 53 - master has expected NNTP articles >> ok 54 - mirror has expected NNTP articles >> ok 55 - 2nd message removed >> ok 56 - unindex NNTP article2medium >> ok 57 - v2 xcpdb OK >> ok 58 - indexlevel detectable by Admin after xcpdb v2medium >> ok 59 - v2 found m@2 via Xapian on medium >> ok 60 - fetch OK >> ok 61 - v2 index mirror again OK >> ok 62 - 2nd message gone from mirror >> ok 63 - message unavailable in mirror >> ok 64 - v2 m@2 gone from Xapian in mirror on medium >> ok 65 - \#3 message added >> ok 66 - \#4 message added >> ok 67 - \#5 message added >> ok 68 - fetch OK >> ok 69 - v2 index --reindex mirror OK >> ok 70 - v2 master has expected NNTP articles >> ok 71 - v2 mirror matches master articles >> ok 72 - indexlevel detectable by Admin 2medium >> ok 73 - compact medium >> ok 74 - first message added >> ok 75 - index master >> ok 76 - only one message in master, so far >> ok 77 - first message in master indexed >> ok 78 - v2 clone OK >> ok 79 - v2 init OK >> ok 80 - v2 index mirror OK >> ok 81 - only one message, so far >> ok 82 - read first message >> ok 83 - 2nd message added >> ok 84 - fetch OK >> ok 85 - v2 index mirror again OK >> ok 86 - 2nd message seen in mirror >> ok 87 - got both messages in mirror >> ok 88 - index master OK >> ok 89 - 2nd message seen in master >> ok 90 - got both messages in master >> ok 91 - master has expected NNTP articles >> ok 92 - mirror has expected NNTP articles >> ok 93 - 2nd message removed >> ok 94 - unindex NNTP article2full >> ok 95 - v2 xcpdb OK >> ok 96 - indexlevel detectable by Admin after xcpdb v2full >> ok 97 - v2 found m@2 via Xapian on full >> ok 98 - fetch OK >> ok 99 - v2 index mirror again OK >> ok 100 - 2nd message gone from mirror >> ok 101 - message unavailable in mirror >> ok 102 - v2 m@2 gone from Xapian in mirror on full >> ok 103 - \#3 message added >> ok 104 - \#4 message added >> ok 105 - \#5 message added >> ok 106 - fetch OK >> ok 107 - v2 index --reindex mirror OK >> ok 108 - v2 master has expected NNTP articles >> ok 109 - v2 mirror matches master articles >> ok 110 - indexlevel detectable by Admin 2full >> ok 111 - compact full >> 1..111 >> ok >> # err=no email in From: or Sender: >> # no name in From: or Sender: >> # err=no email in From: or Sender: >> # no name in From: or Sender: >> t/init.t ..................... >> ok 1 - public-inbox-init OK >> ok 2 - indexlevel unset by default >> ok 3 - config exists, now >> ok 4 - public-inbox-init OK (idempotent) >> ok 5 - public-inbox-init clist OK >> ok 6 - permissions preserved >> ok 7 - attempting to init V2 from V1 fails >> ok 8 - no lock leftover after init >> ok 9 - lock exists >> ok 10 - lock init failed >> ok 11 - got expected exit code on lock failure >> ok 12 - -init did not unlink lock on failure >> ok 13 - public-inbox-init rejects LF in inboxdir >> ok 14 - reported \n >> ok 15 - no junk files left behind >> ok 16 - initializes non-existent hierarchy >> ok 17 - directory created >> ok 18 - fails on D/F conflict >> ok 19 - use PublicInbox::Msgmap; >> ok 20 - public-inbox-init -V2 OK >> ok 21 - v2list directory exists >> ok 22 - msgmap exists >> ok 23 - catch-all.git directory exists >> ok 24 - public-inbox-init is idempotent >> ok 25 - idempotent invocation w/o -V2 does not make inbox v1 >> ok 26 - indexlevel unset by default >> ok 27 - initializing V2 as V1 fails >> ok 28 - -init -L medium >> ok 29 - indexlevel set to 'medium' >> ok 30 - detected expected level w/o config >> ok 31 - docdata written by default >> ok 32 - -init -L basic >> ok 33 - indexlevel set to 'basic' >> ok 34 - detected expected level w/o config >> ok 35 - docdata written by default >> ok 36 - -init -V1 --skip-docdata >> ok 37 - detected default indexlevel -V1 >> ok 38 - docdata skip set -V1 >> ok 39 - has_threadid flag set on new inbox >> ok 40 - -init -V2 --skip-docdata >> ok 41 - detected default indexlevel -V2 >> ok 42 - docdata skip set -V2 >> ok 43 - has_threadid flag set on new inbox >> ok 44 - --skip-epoch 1 >> ok 45 - skip OK >> ok 46 - --skip-epoch 1 >> ok 47 - skip OK >> ok 48 - --skip-epoch 2 >> ok 49 - skipping 2 works, too >> ok 50 - --skip-artnum -V2 >> ok 51 - deliver V1 >> ok 52 - V2 NNTP article numbers skipped via --skip-artnum >> ok 53 - --skip-artnum -V1 >> ok 54 - deliver V1 >> ok 55 - V1 NNTP article numbers skipped via --skip-artnum >> 1..55 >> ok >> t/kqnotify.t ................. skipped: KQNotify is only for *BSD systems >> t/linkify.t .................. >> ok 1 - trailing period not in URL >> ok 2 - missing trailing slash OK >> ok 3 - trailing ) not in URL >> ok 4 - trailing semicolon not in URL >> ok 5 - URL preserved >> ok 6 - paired () in URL OK >> ok 7 - query preserved >> ok 8 - query + fragment preserved >> ok 9 - root URL preserved >> ok 10 - root + fragment >> ok 11 - Markdown-compatible >> ok 12 - Markdown title compatible >> ok 13 - Markdown-compatible end of sentence >> ok 14 - no quote('%s') in URL >> ok 15 - no quote('%s') in URL array >> ok 16 - no quote("%s") in URL >> ok 17 - no quote("%s") in URL array >> ok 18 - no quote(q!%s!) in URL >> ok 19 - no quote(q!%s!) in URL array >> ok 20 - no quote(q(%s)) in URL >> ok 21 - no quote(q(%s)) in URL array >> ok 22 - punctuation with unpaired ) OK >> ok 23 - IDN message escaped properly >> 1..23 >> ok >> t/mda.t ...................... >> ok 1 - spamc ham mock found (run in top of source tree >> ok 2 - spamc mock found (run in top of source tree >> ok 3 - setup ~/ for testing >> ok 4 - setup ~/.public-inbox >> ok 5 - HTML conversion is correct >> ok 6 - email parsed correctly >> ok 7 - message date parsed correctly >> ok 8 >> ok 9 - good revision committed >> ok 10 - author info set correctly >> ok 11 - committer info set correctly >> ok 12 - nothing in PI_EMERGENCY before >> ok 13 >> ok 14 - bad revision not committed >> ok 15 - PI_EMERGENCY is written to >> ok 16 - no error on undeliverable (bad recipient) >> ok 17 - bad revision not committed (bad recipient) >> ok 18 - faildir written to >> ok 19 - no error on undeliverable (duplicate Message-ID) >> ok 20 - bad revision not committed (duplicate Message-ID) >> ok 21 - faildir written to >> ok 22 - duplicate Message-ID message >> ok 23 - no error on undeliverable (missing From:) >> ok 24 - bad revision not committed (missing From:) >> ok 25 - faildir written to >> ok 26 - no error on undeliverable (short subject:) >> ok 27 - bad revision not committed (short subject:) >> ok 28 - faildir written to >> ok 29 - no error on undeliverable (no date) >> ok 30 - bad revision not committed (no date) >> ok 31 - faildir written to >> ok 32 - no error on undeliverable (bad date) >> ok 33 - bad revision not committed (bad date) >> ok 34 - faildir written to >> ok 35 >> ok 36 - message delivered >> ok 37 - no failure from learning spam >> ok 38 - no failure from learning spam idempotently >> ok 39 - learned ham without failure >> ok 40 - ham message delivered >> ok 41 - learned ham idempotently >> ok 42 - learned ham without failure >> ok 43 - ham message delivered >> ok 44 - filtered >> ok 45 - mda OK with List-Id match >> ok 46 - delivered message w/ List-ID matches >> ok 47 - mda OK with List-Id match and --no-precheck >> ok 48 - --no-precheck delivered message anyways >> ok 49 - mda OK with multiple List-Id matches >> ok 50 - multi List-ID match delivered >> ok 51 - warned about multiple List-ID >> ok 52 - rm-ed via -learn >> ok 53 - changed in git >> 1..53 >> ok >> t/mda_filter_rubylang.t ...... >> ok 1 - use PublicInbox::V2Writable; >> ok 2 >> ok 3 - public-inbox-init >> ok 4 - public-inbox-index >> ok 5 >> ok 6 >> ok 7 - message delivered >> ok 8 - message delivered >> ok 9 - got one result for alerts:1 >> ok 10 - got expected MID for 1 >> ok 11 - got one result for alerts:2 >> ok 12 - got expected MID for 2 >> ok 13 - no warnings >> ok 14 - public-inbox-init >> ok 15 - public-inbox-index >> ok 16 >> ok 17 >> ok 18 - message delivered >> ok 19 - message delivered >> ok 20 - got one result for alerts:1 >> ok 21 - got expected MID for 1 >> ok 22 - got one result for alerts:2 >> ok 23 - got expected MID for 2 >> ok 24 - no warnings >> 1..24 >> ok >> t/mid.t ...................... >> ok 1 >> ok 2 >> ok 3 >> ok 4 - percent always converted to sha1 to workaround buggy httpds >> ok 5 - regular ID not compressed >> ok 6 - mids in common case >> ok 7 - 2 mids >> ok 8 - dup mids >> ok 9 - comment ignored >> ok 10 - bare mid OK >> ok 11 - references combines with In-Reply-To >> ok 12 - multiline References OK >> ok 13 - drop \t in References <656C30A1EFC89F6B2082D9B6@localhost> >> ok 14 - drop \t in Message-ID >> ok 15 >> ok 16 - X-Alt-Message-ID can be indexed >> 1..16 >> ok >> t/mime.t ..................... >> ok 1 - use PublicInbox::Eml; >> ok 2 - use PublicInbox::MIME; >> ok 3 - body matches expected >> ok 4 - at expected level >> ok 5 - body OK >> ok 6 - at expected level >> ok 7 - sig "matches" >> ok 8 - got 2 parts >> ok 9 - stringified sufficiently close to original >> ok 10 - body matches expected >> ok 11 - at expected level >> ok 12 - body OK >> ok 13 - at expected level >> ok 14 - sig "matches" >> ok 15 - got 2 parts >> ok 16 - stringified sufficiently close to original >> 1..16 >> ok >> t/msg_iter.t ................. >> ok 1 - use PublicInbox::MsgIter; >> ok 2 - order is fine >> ok 3 - nested part shows up properly >> ok 4 - no error >> ok 5 - got non-empty message >> ok 6 - no unescaped $$$ >> ok 7 - tab expanded with X-UNKNOWN >> ok 8 - got bullet point when X-UNKNOWN assumes UTF-8 >> ok 9 - attribution matches >> ok 10 - quoted section matches >> ok 11 - non-quoted section matches >> ok 12 - only three sections for short message >> ok 13 - no warnings >> ok 14 - no warnings on giant message >> ok 15 - result matches expected >> ok 16 - attribution is first section >> ok 17 - section ends with newline >> ok 18 - section ends with newline >> ok 19 - long quoted section matches >> ok 20 - long quoted section matches >> 1..20 >> ok >> t/msgmap.t ................... >> ok 1 - use PublicInbox::Msgmap; >> ok 2 - empty min max on new DB >> ok 3 - mid a@b inserted >> ok 4 - mid c@d inserted >> ok 5 - mid e@f inserted >> ok 6 - mid g@h inserted >> ok 7 - mid aa@bb inserted >> ok 8 - mid aa@cc inserted >> ok 9 - duplicate mid_insert in undef result >> ok 10 - existing number not clobbered >> ok 11 - got expected num after failing mid_insert >> ok 12 - num:4 maps correctly >> ok 13 - num:5 maps correctly >> ok 14 - num:1 maps correctly >> ok 15 - num:2 maps correctly >> ok 16 - num:6 maps correctly >> ok 17 - num:3 maps correctly >> ok 18 - mid:a@b maps correctly >> ok 19 - mid:c@d maps correctly >> ok 20 - mid:e@f maps correctly >> ok 21 - mid:g@h maps correctly >> ok 22 - mid:aa@bb maps correctly >> ok 23 - mid:aa@cc maps correctly >> ok 24 - last commit not set >> ok 25 - previous last commit (undef) returned >> ok 26 - last commit was set correctly >> ok 27 - returned previously set commit >> ok 28 - new commit was set correctly >> ok 29 - deleted a@b >> ok 30 - delete again returns zero >> ok 31 - num_for fails on deleted msg >> ok 32 - idempotent DB creation >> ok 33 - article min OK >> ok 34 - article max OK >> ok 35 - article counts OK >> ok 36 - last number not recycled >> ok 37 - Cloned temporary DB matches >> ok 38 - temporary DB is writable >> ok 39 - atfork_* work on tmp_clone >> 1..39 >> ok >> t/msgtime.t .................. >> ok 1 - Fri, 02 Oct 1993 00:00:00 -2400 >> ok 2 - Fri, 02 Oct 1993 00:00:00 -2330 >> ok 3 - Fri, 02 Oct 1993 00:00:00 -2300 >> ok 4 - Fri, 02 Oct 1993 00:00:00 -2230 >> ok 5 - Fri, 02 Oct 1993 00:00:00 -2200 >> ok 6 - Fri, 02 Oct 1993 00:00:00 -2130 >> ok 7 - Fri, 02 Oct 1993 00:00:00 -2100 >> ok 8 - Fri, 02 Oct 1993 00:00:00 -2030 >> ok 9 - Fri, 02 Oct 1993 00:00:00 -2000 >> ok 10 - Fri, 02 Oct 1993 00:00:00 -1930 >> ok 11 - Fri, 02 Oct 1993 00:00:00 -1900 >> ok 12 - Fri, 02 Oct 1993 00:00:00 -1830 >> ok 13 - Fri, 02 Oct 1993 00:00:00 -1800 >> ok 14 - Fri, 02 Oct 1993 00:00:00 -1730 >> ok 15 - Fri, 02 Oct 1993 00:00:00 -1700 >> ok 16 - Fri, 02 Oct 1993 00:00:00 -1630 >> ok 17 - Fri, 02 Oct 1993 00:00:00 -1600 >> ok 18 - Fri, 02 Oct 1993 00:00:00 -1530 >> ok 19 - Fri, 02 Oct 1993 00:00:00 -1500 >> ok 20 - Fri, 02 Oct 1993 00:00:00 -1430 >> ok 21 - Fri, 02 Oct 1993 00:00:00 -1400 >> ok 22 - Fri, 02 Oct 1993 00:00:00 -1330 >> ok 23 - Fri, 02 Oct 1993 00:00:00 -1300 >> ok 24 - Fri, 02 Oct 1993 00:00:00 -1230 >> ok 25 - Fri, 02 Oct 1993 00:00:00 -1200 >> ok 26 - Fri, 02 Oct 1993 00:00:00 -1130 >> ok 27 - Fri, 02 Oct 1993 00:00:00 -1100 >> ok 28 - Fri, 02 Oct 1993 00:00:00 -1030 >> ok 29 - Fri, 02 Oct 1993 00:00:00 -1000 >> ok 30 - Fri, 02 Oct 1993 00:00:00 -0930 >> ok 31 - Fri, 02 Oct 1993 00:00:00 -0900 >> ok 32 - Fri, 02 Oct 1993 00:00:00 -0830 >> ok 33 - Fri, 02 Oct 1993 00:00:00 -0800 >> ok 34 - Fri, 02 Oct 1993 00:00:00 -0730 >> ok 35 - Fri, 02 Oct 1993 00:00:00 -0700 >> ok 36 - Fri, 02 Oct 1993 00:00:00 -0630 >> ok 37 - Fri, 02 Oct 1993 00:00:00 -0600 >> ok 38 - Fri, 02 Oct 1993 00:00:00 -0530 >> ok 39 - Fri, 02 Oct 1993 00:00:00 -0500 >> ok 40 - Fri, 02 Oct 1993 00:00:00 -0430 >> ok 41 - Fri, 02 Oct 1993 00:00:00 -0400 >> ok 42 - Fri, 02 Oct 1993 00:00:00 -0330 >> ok 43 - Fri, 02 Oct 1993 00:00:00 -0300 >> ok 44 - Fri, 02 Oct 1993 00:00:00 -0230 >> ok 45 - Fri, 02 Oct 1993 00:00:00 -0200 >> ok 46 - Fri, 02 Oct 1993 00:00:00 -0130 >> ok 47 - Fri, 02 Oct 1993 00:00:00 -0100 >> ok 48 - Fri, 02 Oct 1993 00:00:00 -0030 >> ok 49 - Fri, 02 Oct 1993 00:00:00 +0000 >> ok 50 - Fri, 02 Oct 1993 00:00:00 +0030 >> ok 51 - Fri, 02 Oct 1993 00:00:00 +0100 >> ok 52 - Fri, 02 Oct 1993 00:00:00 +0130 >> ok 53 - Fri, 02 Oct 1993 00:00:00 +0200 >> ok 54 - Fri, 02 Oct 1993 00:00:00 +0230 >> ok 55 - Fri, 02 Oct 1993 00:00:00 +0300 >> ok 56 - Fri, 02 Oct 1993 00:00:00 +0330 >> ok 57 - Fri, 02 Oct 1993 00:00:00 +0400 >> ok 58 - Fri, 02 Oct 1993 00:00:00 +0430 >> ok 59 - Fri, 02 Oct 1993 00:00:00 +0500 >> ok 60 - Fri, 02 Oct 1993 00:00:00 +0530 >> ok 61 - Fri, 02 Oct 1993 00:00:00 +0600 >> ok 62 - Fri, 02 Oct 1993 00:00:00 +0630 >> ok 63 - Fri, 02 Oct 1993 00:00:00 +0700 >> ok 64 - Fri, 02 Oct 1993 00:00:00 +0730 >> ok 65 - Fri, 02 Oct 1993 00:00:00 +0800 >> ok 66 - Fri, 02 Oct 1993 00:00:00 +0830 >> ok 67 - Fri, 02 Oct 1993 00:00:00 +0900 >> ok 68 - Fri, 02 Oct 1993 00:00:00 +0930 >> ok 69 - Fri, 02 Oct 1993 00:00:00 +1000 >> ok 70 - Fri, 02 Oct 1993 00:00:00 +1030 >> ok 71 - Fri, 02 Oct 1993 00:00:00 +1100 >> ok 72 - Fri, 02 Oct 1993 00:00:00 +1130 >> ok 73 - Fri, 02 Oct 1993 00:00:00 +1200 >> ok 74 - Fri, 02 Oct 1993 00:00:00 +1230 >> ok 75 - Fri, 02 Oct 1993 00:00:00 +1300 >> ok 76 - Fri, 02 Oct 1993 00:00:00 +1330 >> ok 77 - Fri, 02 Oct 1993 00:00:00 +1400 >> ok 78 - Fri, 02 Oct 1993 00:00:00 +1430 >> ok 79 - Fri, 02 Oct 1993 00:00:00 +1500 >> ok 80 - Fri, 02 Oct 1993 00:00:00 +1530 >> ok 81 - Fri, 02 Oct 1993 00:00:00 +1600 >> ok 82 - Fri, 02 Oct 1993 00:00:00 +1630 >> ok 83 - Fri, 02 Oct 1993 00:00:00 +1700 >> ok 84 - Fri, 02 Oct 1993 00:00:00 +1730 >> ok 85 - Fri, 02 Oct 1993 00:00:00 +1800 >> ok 86 - Fri, 02 Oct 1993 00:00:00 +1830 >> ok 87 - Fri, 02 Oct 1993 00:00:00 +1900 >> ok 88 - Fri, 02 Oct 1993 00:00:00 +1930 >> ok 89 - Fri, 02 Oct 1993 00:00:00 +2000 >> ok 90 - Fri, 02 Oct 1993 00:00:00 +2030 >> ok 91 - Fri, 02 Oct 1993 00:00:00 +2100 >> ok 92 - Fri, 02 Oct 1993 00:00:00 +2130 >> ok 93 - Fri, 02 Oct 1993 00:00:00 +2200 >> ok 94 - Fri, 02 Oct 1993 00:00:00 +2230 >> ok 95 - Fri, 02 Oct 1993 00:00:00 +2300 >> ok 96 - Fri, 02 Oct 1993 00:00:00 +2330 >> ok 97 - Fri, 02 Oct 1993 00:00:00 +2400 >> ok 98 - Mon, 22 Jan 2007 13:16:24 -2400 >> ok 99 - Mon, 22 Jan 2007 13:16:24 -2330 >> ok 100 - Mon, 22 Jan 2007 13:16:24 -2300 >> ok 101 - Mon, 22 Jan 2007 13:16:24 -2230 >> ok 102 - Mon, 22 Jan 2007 13:16:24 -2200 >> ok 103 - Mon, 22 Jan 2007 13:16:24 -2130 >> ok 104 - Mon, 22 Jan 2007 13:16:24 -2100 >> ok 105 - Mon, 22 Jan 2007 13:16:24 -2030 >> ok 106 - Mon, 22 Jan 2007 13:16:24 -2000 >> ok 107 - Mon, 22 Jan 2007 13:16:24 -1930 >> ok 108 - Mon, 22 Jan 2007 13:16:24 -1900 >> ok 109 - Mon, 22 Jan 2007 13:16:24 -1830 >> ok 110 - Mon, 22 Jan 2007 13:16:24 -1800 >> ok 111 - Mon, 22 Jan 2007 13:16:24 -1730 >> ok 112 - Mon, 22 Jan 2007 13:16:24 -1700 >> ok 113 - Mon, 22 Jan 2007 13:16:24 -1630 >> ok 114 - Mon, 22 Jan 2007 13:16:24 -1600 >> ok 115 - Mon, 22 Jan 2007 13:16:24 -1530 >> ok 116 - Mon, 22 Jan 2007 13:16:24 -1500 >> ok 117 - Mon, 22 Jan 2007 13:16:24 -1430 >> ok 118 - Mon, 22 Jan 2007 13:16:24 -1400 >> ok 119 - Mon, 22 Jan 2007 13:16:24 -1330 >> ok 120 - Mon, 22 Jan 2007 13:16:24 -1300 >> ok 121 - Mon, 22 Jan 2007 13:16:24 -1230 >> ok 122 - Mon, 22 Jan 2007 13:16:24 -1200 >> ok 123 - Mon, 22 Jan 2007 13:16:24 -1130 >> ok 124 - Mon, 22 Jan 2007 13:16:24 -1100 >> ok 125 - Mon, 22 Jan 2007 13:16:24 -1030 >> ok 126 - Mon, 22 Jan 2007 13:16:24 -1000 >> ok 127 - Mon, 22 Jan 2007 13:16:24 -0930 >> ok 128 - Mon, 22 Jan 2007 13:16:24 -0900 >> ok 129 - Mon, 22 Jan 2007 13:16:24 -0830 >> ok 130 - Mon, 22 Jan 2007 13:16:24 -0800 >> ok 131 - Mon, 22 Jan 2007 13:16:24 -0730 >> ok 132 - Mon, 22 Jan 2007 13:16:24 -0700 >> ok 133 - Mon, 22 Jan 2007 13:16:24 -0630 >> ok 134 - Mon, 22 Jan 2007 13:16:24 -0600 >> ok 135 - Mon, 22 Jan 2007 13:16:24 -0530 >> ok 136 - Mon, 22 Jan 2007 13:16:24 -0500 >> ok 137 - Mon, 22 Jan 2007 13:16:24 -0430 >> ok 138 - Mon, 22 Jan 2007 13:16:24 -0400 >> ok 139 - Mon, 22 Jan 2007 13:16:24 -0330 >> ok 140 - Mon, 22 Jan 2007 13:16:24 -0300 >> ok 141 - Mon, 22 Jan 2007 13:16:24 -0230 >> ok 142 - Mon, 22 Jan 2007 13:16:24 -0200 >> ok 143 - Mon, 22 Jan 2007 13:16:24 -0130 >> ok 144 - Mon, 22 Jan 2007 13:16:24 -0100 >> ok 145 - Mon, 22 Jan 2007 13:16:24 -0030 >> ok 146 - Mon, 22 Jan 2007 13:16:24 +0000 >> ok 147 - Mon, 22 Jan 2007 13:16:24 +0030 >> ok 148 - Mon, 22 Jan 2007 13:16:24 +0100 >> ok 149 - Mon, 22 Jan 2007 13:16:24 +0130 >> ok 150 - Mon, 22 Jan 2007 13:16:24 +0200 >> ok 151 - Mon, 22 Jan 2007 13:16:24 +0230 >> ok 152 - Mon, 22 Jan 2007 13:16:24 +0300 >> ok 153 - Mon, 22 Jan 2007 13:16:24 +0330 >> ok 154 - Mon, 22 Jan 2007 13:16:24 +0400 >> ok 155 - Mon, 22 Jan 2007 13:16:24 +0430 >> ok 156 - Mon, 22 Jan 2007 13:16:24 +0500 >> ok 157 - Mon, 22 Jan 2007 13:16:24 +0530 >> ok 158 - Mon, 22 Jan 2007 13:16:24 +0600 >> ok 159 - Mon, 22 Jan 2007 13:16:24 +0630 >> ok 160 - Mon, 22 Jan 2007 13:16:24 +0700 >> ok 161 - Mon, 22 Jan 2007 13:16:24 +0730 >> ok 162 - Mon, 22 Jan 2007 13:16:24 +0800 >> ok 163 - Mon, 22 Jan 2007 13:16:24 +0830 >> ok 164 - Mon, 22 Jan 2007 13:16:24 +0900 >> ok 165 - Mon, 22 Jan 2007 13:16:24 +0930 >> ok 166 - Mon, 22 Jan 2007 13:16:24 +1000 >> ok 167 - Mon, 22 Jan 2007 13:16:24 +1030 >> ok 168 - Mon, 22 Jan 2007 13:16:24 +1100 >> ok 169 - Mon, 22 Jan 2007 13:16:24 +1130 >> ok 170 - Mon, 22 Jan 2007 13:16:24 +1200 >> ok 171 - Mon, 22 Jan 2007 13:16:24 +1230 >> ok 172 - Mon, 22 Jan 2007 13:16:24 +1300 >> ok 173 - Mon, 22 Jan 2007 13:16:24 +1330 >> ok 174 - Mon, 22 Jan 2007 13:16:24 +1400 >> ok 175 - Mon, 22 Jan 2007 13:16:24 +1430 >> ok 176 - Mon, 22 Jan 2007 13:16:24 +1500 >> ok 177 - Mon, 22 Jan 2007 13:16:24 +1530 >> ok 178 - Mon, 22 Jan 2007 13:16:24 +1600 >> ok 179 - Mon, 22 Jan 2007 13:16:24 +1630 >> ok 180 - Mon, 22 Jan 2007 13:16:24 +1700 >> ok 181 - Mon, 22 Jan 2007 13:16:24 +1730 >> ok 182 - Mon, 22 Jan 2007 13:16:24 +1800 >> ok 183 - Mon, 22 Jan 2007 13:16:24 +1830 >> ok 184 - Mon, 22 Jan 2007 13:16:24 +1900 >> ok 185 - Mon, 22 Jan 2007 13:16:24 +1930 >> ok 186 - Mon, 22 Jan 2007 13:16:24 +2000 >> ok 187 - Mon, 22 Jan 2007 13:16:24 +2030 >> ok 188 - Mon, 22 Jan 2007 13:16:24 +2100 >> ok 189 - Mon, 22 Jan 2007 13:16:24 +2130 >> ok 190 - Mon, 22 Jan 2007 13:16:24 +2200 >> ok 191 - Mon, 22 Jan 2007 13:16:24 +2230 >> ok 192 - Mon, 22 Jan 2007 13:16:24 +2300 >> ok 193 - Mon, 22 Jan 2007 13:16:24 +2330 >> ok 194 - Mon, 22 Jan 2007 13:16:24 +2400 >> ok 195 - Wed, 13 Dec 2006 10:26:38 +1 >> ok 196 - Fri, 3 Feb 2006 18:11:22 -00 >> ok 197 - Thursday, 20 Feb 2003 01:14:34 +000 >> ok 198 - Fri, 28 Jun 2002 12:54:40 -700 >> ok 199 - Sat, 12 Jan 2002 12:52:57 -200 >> ok 200 - Mon, 05 Nov 2001 10:36:16 -800 >> ok 201 - Tue, 3 Jun 2003 8:58:23 --500 >> ok 202 - Thu, 18 May 100 10:40:43 +0200 (MET DST) >> ok 203 - Thu, 18 May 2000 10:40:43 +0200 >> ok 204 - Tue, 27 Feb 2007 16:23:25 -0060 >> ok 205 - Wed, 20 Dec 2006 05:32:58 -0420 >> ok 206 - Wed, 20 Dec 2006 05:32:58 +0420 >> ok 207 - Thu, 14 Dec 2006 00:20:24 +0480 >> ok 208 - Thu, 14 Dec 2006 00:20:24 -0480 >> ok 209 - Mon, 14 Apr 2014 07:59:01 -0007 >> ok 210 - Sat, 27 Sep 1997 10:02:32 >> ok 211 - Fri, 02 Oct 1993 00:00:00 UT >> ok 212 - Fri, 02 Oct 1993 00:00:00 GMT >> ok 213 - Fri, 02 Oct 1993 00:00:00 Z >> ok 214 - Fri, 02 Oct 1993 00:00:00 EDT >> ok 215 - Fri, 1 Jan 1904 10:12:31 +0100 >> ok 216 - Fri, 9 Mar 71685 18:45:56 +0000 >> 1..216 >> ok >> t/multi-mid.t ................ >> ok 1 - added bad >> ok 2 - added good >> ok 3 - convert to v2 >> ok 4 - no errors or warnings from -convert >> ok 5 - min, max article numbers unchanged >> ok 6 - v2 conversion times match >> ok 7 - init clone >> ok 8 - index the clone >> ok 9 - v2 clone times match >> ok 10 - added good >> ok 11 - added bad >> ok 12 - convert to v2 >> ok 13 - no errors or warnings from -convert >> ok 14 - min, max article numbers unchanged >> ok 15 - v2 conversion times match >> ok 16 - init clone >> ok 17 - index the clone >> ok 18 - v2 clone times match >> 1..18 >> ok >> t/nntp.t ..................... >> ok 1 - use PublicInbox::NNTP; >> ok 2 - use PublicInbox::Inbox; >> ok 3 - '[\[foo\]]' matches '[foo]' using qr/\A\[foo\]\z/ >> ok 4 - '*' matches 'any' using qr/.*/ >> ok 5 - 'foo.*' does not match 'bar.foo.bar' using qr/\Afoo\..*\z/ >> ok 6 - normal re with (?{"HI"}) matches, but ... >> ok 7 - '(?{"HI"})' does not match 'HI' using qr/\A\(.\{\"HI\"\}\)\z/ >> ok 8 - normal re with [(?{"HI"})] matches, but ... >> ok 9 - '[(?{"HI"})]' does not match 'HI' using qr/\A\"HI\)\z/ >> ok 10 - '*' matches 'any' using (?^:\A(?:.*)\z) >> ok 11 - 'a.t,a.s.r' matches 'a.s.r' using (?^:\A(?:a\.t|a\.s\.r)\z) >> ok 12 - 'a.t,a.s.*' matches 'a.s.r' using (?^:\A(?:a\.t|a\.s\..*)\z) >> ok 13 - roundtripped: 20141109 060606 GMT >> ok 14 - roundtripped: 141109 060606 GMT >> ok 15 - roundtripped: 930724 060606 GMT >> ok 16 - roundtripped: 710101 000000 >> ok 17 - roundtripped: 720101 000000 >> ok 18 - YYYYMMDD and YYMMDD parse identically >> ok 19 - 930724 was in 1993 >> ok 20 - roundtripped: 700101 000000 GMT >> ok 21 - epoch parsed correctly >> ok 22 - 1972 > 1971 >> ok 23 - 1971 > Unix epoch >> ok 24 - URL expanded >> ok 25 - Message-ID unchanged >> ok 26 - Archived-At: set >> ok 27 - List-Archive: set >> ok 28 - List-Post: set >> ok 29 - Newsgroups: set >> ok 30 - Xref: set >> ok 31 - Message-ID unchanged >> ok 32 - Archived-At: appended >> ok 33 - Old Xref: clobbered >> 1..33 >> ok >> t/nntpd-tls.t ................ skipped: certs/ missing for t/nntpd-tls.t, run /usr/bin/perl ./create-certs.perl in certs/ >> # waiting for initial fetch... >> # inbox unlocked on initial fetch >> t/nntpd-v2.t ................. >> ok 1 - use PublicInbox::Msgmap; >> ok 2 - init test-nntpd >> ok 3 - init xyz >> ok 4 - disable spamcheck >> ok 5 - sock created >> ok 6 - deleted x.y.z group >> ok 7 - LIST works >> ok 8 - GROUP works >> ok 9 - listgroup OK >> ok 10 - RFC3977 8.4.2 compliant LIST OVERVIEW.FMT >> ok 11 - STARTTLS fails when unconfigured >> ok 12 - got 580 code on server w/o TLS >> ok 13 - got greeting >> ok 14 - wrote spaces >> ok 15 - wrote nothing >> ok 16 - GOT EOF on cntrl >> ok 17 - got greeting >> ok 18 - CAPABILITIES works >> ok 19 - STARTTLS not advertised >> ok 20 - DEFLATE advertised >> ok 21 - newgroups OK >> ok 22 - XHDR from by message-id works >> ok 23 - from by article number works >> ok 24 - from by article range works >> ok 25 - 225 response for HDR >> ok 26 - got expected response for HDR >> ok 27 - XHDR date by message-id works >> ok 28 - date by article number works >> ok 29 - date by article range works >> ok 30 - 225 response for HDR >> ok 31 - got expected response for HDR >> ok 32 - XHDR cc by message-id works >> ok 33 - cc by article number works >> ok 34 - cc by article range works >> ok 35 - 225 response for HDR >> ok 36 - got expected response for HDR >> ok 37 - XHDR subject by message-id works >> ok 38 - subject by article number works >> ok 39 - subject by article range works >> ok 40 - 225 response for HDR >> ok 41 - got expected response for HDR >> ok 42 - XHDR message-id by message-id works >> ok 43 - message-id by article number works >> ok 44 - message-id by article range works >> ok 45 - 225 response for HDR >> ok 46 - got expected response for HDR >> ok 47 - XHDR to by message-id works >> ok 48 - to by article number works >> ok 49 - to by article range works >> ok 50 - 225 response for HDR >> ok 51 - got expected response for HDR >> ok 52 - XHDR references by message-id works >> ok 53 - references by article number works >> ok 54 - references by article range works >> ok 55 - 225 response for HDR >> ok 56 - got expected response for HDR >> ok 57 - XHDR xref by message-id works >> ok 58 - xref by article number works >> ok 59 - xref by article range works >> ok 60 - 225 response for HDR >> ok 61 - got expected response for HDR >> ok 62 - from by message-id works without group >> ok 63 - date by message-id works without group >> ok 64 - cc by message-id works without group >> ok 65 - subject by message-id works without group >> ok 66 - message-id by message-id works without group >> ok 67 - to by message-id works without group >> ok 68 - references by message-id works without group >> ok 69 - xref by message-id works without group >> ok 70 - XOVER range works >> ok 71 - XOVER by article works >> ok 72 - HEAD OK >> ok 73 - BODY OK >> ok 74 - STAT >> ok 75 - body really matches >> ok 76 - got array for ARTICLE >> ok 77 - ARTICLE OK >> ok 78 - non-existent num >> ok 79 - non-existent mid >> ok 80 - got 224 response for OVER >> ok 81 - OVER by Message-ID works >> ok 82 - correctly terminated response >> ok 83 - XHDR Cc 1- works >> ok 84 - XHDR References 1- works) >> ok 85 - XHDR on invalid header returns empty >> ok 86 - NEWNEWS works >> ok 87 - valid date after start >> ok 88 - valid date before stop >> ok 89 - Message-ID not folded >> ok 90 - Path: header found >> ok 91 - warned for reused MID >> ok 92 - Single Message-ID in header >> ok 93 - got expected mid >> ok 94 - cross newsgroup ARTICLE by Message-ID >> ok 95 - cross newsgroup BODY by Message-ID >> ok 96 - cross newsgroup HEAD by Message-ID >> ok 97 - xpath hit >> ok 98 - xpath miss >> ok 99 - reader done >> ok 100 - no errors >> ok 101 # skip Search/Xapian.pm pre-loaded (by t/run.perl?) >> ok 102 - upgraded indexlevel >> ok 103 - article did not exist >> ok 104 - -compacted >> ok 105 - new article retrieved after compact >> ok 106 # skip lsof missing >> ok 107 - use PublicInbox::Watch; >> ok 108 - use PublicInbox::InboxIdle; >> ok 109 - use PublicInbox::Config; >> ok 110 - no error in exited -watch process >> ok 111 - no warnings/errors from -watch >> ok 112 - imported something >> ok 113 - killed nntpd >> ok 114 - got 5xx response for unoptimized HDR >> ok 115 - only one response line >> ok 116 - no error in exited process >> ok 117 - no Wide character warnings >> 1..117 >> ok >> # waiting for initial fetch... >> # inbox unlocked on initial fetch >> t/nntpd.t .................... >> ok 1 - use PublicInbox::Msgmap; >> ok 2 - init test-nntpd >> ok 3 - init xyz >> ok 4 - disable spamcheck >> ok 5 - indexed v1 >> ok 6 - sock created >> ok 7 - deleted x.y.z group >> ok 8 - LIST works >> ok 9 - GROUP works >> ok 10 - listgroup OK >> ok 11 - RFC3977 8.4.2 compliant LIST OVERVIEW.FMT >> ok 12 - STARTTLS fails when unconfigured >> ok 13 - got 580 code on server w/o TLS >> ok 14 - got greeting >> ok 15 - wrote spaces >> ok 16 - wrote nothing >> ok 17 - GOT EOF on cntrl >> ok 18 - got greeting >> ok 19 - CAPABILITIES works >> ok 20 - STARTTLS not advertised >> ok 21 - DEFLATE advertised >> ok 22 - newgroups OK >> ok 23 - XHDR date by message-id works >> ok 24 - date by article number works >> ok 25 - date by article range works >> ok 26 - 225 response for HDR >> ok 27 - got expected response for HDR >> ok 28 - XHDR xref by message-id works >> ok 29 - xref by article number works >> ok 30 - xref by article range works >> ok 31 - 225 response for HDR >> ok 32 - got expected response for HDR >> ok 33 - XHDR message-id by message-id works >> ok 34 - message-id by article number works >> ok 35 - message-id by article range works >> ok 36 - 225 response for HDR >> ok 37 - got expected response for HDR >> ok 38 - XHDR subject by message-id works >> ok 39 - subject by article number works >> ok 40 - subject by article range works >> ok 41 - 225 response for HDR >> ok 42 - got expected response for HDR >> ok 43 - XHDR to by message-id works >> ok 44 - to by article number works >> ok 45 - to by article range works >> ok 46 - 225 response for HDR >> ok 47 - got expected response for HDR >> ok 48 - XHDR cc by message-id works >> ok 49 - cc by article number works >> ok 50 - cc by article range works >> ok 51 - 225 response for HDR >> ok 52 - got expected response for HDR >> ok 53 - XHDR references by message-id works >> ok 54 - references by article number works >> ok 55 - references by article range works >> ok 56 - 225 response for HDR >> ok 57 - got expected response for HDR >> ok 58 - XHDR from by message-id works >> ok 59 - from by article number works >> ok 60 - from by article range works >> ok 61 - 225 response for HDR >> ok 62 - got expected response for HDR >> ok 63 - date by message-id works without group >> ok 64 - xref by message-id works without group >> ok 65 - message-id by message-id works without group >> ok 66 - subject by message-id works without group >> ok 67 - to by message-id works without group >> ok 68 - cc by message-id works without group >> ok 69 - references by message-id works without group >> ok 70 - from by message-id works without group >> ok 71 - XOVER range works >> ok 72 - XOVER by article works >> ok 73 - HEAD OK >> ok 74 - BODY OK >> ok 75 - STAT >> ok 76 - body really matches >> ok 77 - got array for ARTICLE >> ok 78 - ARTICLE OK >> ok 79 - non-existent num >> ok 80 - non-existent mid >> ok 81 - got 224 response for OVER >> ok 82 - OVER by Message-ID works >> ok 83 - correctly terminated response >> ok 84 - XHDR Cc 1- works >> ok 85 - XHDR References 1- works) >> ok 86 - XHDR on invalid header returns empty >> ok 87 - NEWNEWS works >> ok 88 - valid date after start >> ok 89 - valid date before stop >> ok 90 - indexed v1 >> ok 91 - Message-ID not folded >> ok 92 - Path: header found >> ok 93 - cross newsgroup ARTICLE by Message-ID >> ok 94 - cross newsgroup BODY by Message-ID >> ok 95 - cross newsgroup HEAD by Message-ID >> ok 96 - xpath hit >> ok 97 - xpath miss >> ok 98 - reader done >> ok 99 - no errors >> ok 100 # skip Search/Xapian.pm pre-loaded (by t/run.perl?) >> ok 101 - upgraded indexlevel >> ok 102 - article did not exist >> ok 103 - -compacted >> ok 104 - new article retrieved after compact >> ok 105 # skip lsof missing >> ok 106 - use PublicInbox::Watch; >> ok 107 - use PublicInbox::InboxIdle; >> ok 108 - use PublicInbox::Config; >> ok 109 - no error in exited -watch process >> ok 110 - no warnings/errors from -watch >> ok 111 - imported something >> ok 112 - killed nntpd >> ok 113 - got 5xx response for unoptimized HDR >> ok 114 - only one response line >> ok 115 - no error in exited process >> ok 116 - no Wide character warnings >> 1..116 >> ok >> t/nodatacow.t ................ >> ok 1 - use PublicInbox::NDC_PP; >> ok 2 # skip BTRFS_TESTDIR not defined >> ok 3 # skip BTRFS_TESTDIR not defined >> 1..3 >> ok >> t/nulsubject.t ............... >> ok 1 - use PublicInbox::Import; >> ok 2 - use PublicInbox::Git; >> ok 3 - git fsck ok >> 1..3 >> ok >> t/over.t ..................... >> ok 1 - use PublicInbox::OverIdx; >> ok 2 - max is zero on new DB (scalar context) >> ok 3 - max is zero on new DB (list context) >> ok 4 - integer tid >> ok 5 - tid increases >> ok 6 - integer sid >> ok 7 - sid increases >> ok 8 - idempotent >> ok 9 - OverIdx is not ReadOnly >> ok 10 - Over is ReadOnly >> ok 11 - idempotent across reopen >> ok 12 - integer tid for ghost >> ok 13 - integer tid for ghost increases >> ok 14 - messages not linked by empty subject >> ok 15 - messages not linked by empty subject >> ok 16 - linked messages by subject >> ok 17 - linked messages by subject >> ok 18 - linked messages by Message-ID: >> ok 19 - linked messages by Message-ID: >> ok 20 - max is non-zero >> ok 21 - WAL journal_mode not clobbered if manually set >> 1..21 >> ok >> Plack::Middleware::ReverseProxy missing, >> URL generation for redirects may be wrong if behind a reverse proxy >> t/plack.t .................... >> ok 1 - use PublicInbox::Import; >> ok 2 - use PublicInbox::Git; >> ok 3 - use HTTP::Request::Common; >> ok 4 - use Plack::Test; >> ok 5 - use URI::Escape; >> ok 6 - psgi example file found >> ok 7 - initialized repo >> ok 8 - good revision committed >> ok 9 - our test used QP correctly >> ok 10 - robots.txt is missing >> ok 11 - favicon.ico is missing >> ok 12 - .well-known/foo is missing >> ok 13 - retrieved CRLF as HTML >> ok 14 - no CR in HTML >> ok 15 - retrieved CRLF raw >> ok 16 - CR preserved in raw message >> ok 17 - newsgroup name is permanent redirect >> ok 18 - redirect location matches >> ok 19 - newsgroup name/ is permanent redirect >> ok 20 - redirect location matches >> ok 21 - is permanent redirect >> ok 22 - redirect location matches with trailing slash >> ok 23 - redirect for missing / >> ok 24 - redirected with missing / >> ok 25 - redirect for missing / >> ok 26 - redirected with missing / >> ok 27 - redirect for legacy /f >> ok 28 - redirected with missing / >> ok 29 - success response received >> ok 30 - atom URL generated >> ok 31 - index generated >> ok 32 - date set >> ok 33 - success response received for atom >> ok 34 - atom feed generated correct URL >> ok 35 - set title in XML feed >> ok 36 - body included >> ok 37 - got description >> ok 38 - success for /blah@example.com/ >> ok 39 - HTML returned >> ok 40 - raw link present >> ok 41 - quoted text inline >> ok 42 - redirect for /blah@example.com/f/ >> ok 43 - /$MESSAGE_ID/f/ redirected to /$MESSAGE_ID/ >> ok 44 - multipart split >> ok 45 - original body >> ok 46 - parts split with filename >> ok 47 - HTML output decoded QP >> ok 48 - success response received for /*/raw >> ok 49 - mbox returned >> ok 50 - 501 when overview missing >> ok 51 - overview omission noted >> ok 52 - redirect for old m .txt link >> ok 53 - .txt redirected to /raw >> ok 54 - redirect for old f .txt link >> ok 55 - .txt redirected to /raw >> ok 56 - redirect for old m .html link >> ok 57 - .html redirected to new location >> ok 58 - redirect for old f .html link >> ok 59 - .html redirected to new location >> ok 60 - redirect for old t .html link >> ok 61 - .html redirected to new location >> ok 62 - redirect for old thread link >> ok 63 - mbox redirected to /mbox.gz >> ok 64 - redirect for old thread link >> ok 65 - mbox.gz redirected to /mbox.gz >> ok 66 - is permanent redirect >> ok 67 - redirect from x40 MIDs works >> ok 68 - refs readable >> ok 69 - got partial response >> ok 70 - partial body OK >> ok 71 - got partial another response >> ok 72 - partial body OK past end >> ok 73 - no PUT to / allowed >> ok 74 - no PUT /$INBOX allowed >> 1..74 >> ok >> t/precheck.t ................. >> ok 1 - Cc list is OK >> ok 2 - wrong ORIGINAL_RECIPIENT rejected >> ok 3 - ORIGINAL_RECIPIENT in To: is OK >> ok 4 - ORIGINAL_RECIPIENT in Cc: is OK >> ok 5 - alias list is OK >> ok 6 - wrong ORIGINAL_RECIPIENT rejected >> ok 7 - ORIGINAL_RECIPIENT in To: is OK >> ok 8 - ORIGINAL_RECIPIENT in Cc: is OK >> ok 9 - alias list is OK >> ok 10 - missing From: is rejected >> 1..10 >> ok >> # testing with index indexed >> t/psgi_attach.t .............. >> ok 1 - use HTTP::Request::Common; >> ok 2 - use Plack::Builder; >> ok 3 - use Plack::Test; >> ok 4 - use URI::Escape; >> ok 5 - use PublicInbox::WWW; >> ok 6 - use PublicInbox::WwwAttach; >> ok 7 - attachment links generated >> ok 8 - QP length is close >> ok 9 - trailing newline exists >> ok 10 - QP trailing newline is there >> ok 11 - Base64 matches exactly >> ok 12 - plain text almost matches >> ok 13 - trailing newline exists in text >> ok 14 - plain text not truncated >> ok 15 - dot almost matches >> ok 16 - user-specified filename is OK >> ok 17 - 0-byte download not offered >> ok 18 - href to message/rfc822 attachment visible >> ok 19 - href to nested message/rfc822 attachment visible >> ok 20 - got attached eml >> ok 21 - attachment had 2 subparts >> ok 22 - 1st attachment is as expected >> ok 23 - 2nd attachment is as expected >> ok 24 - nested eml retrieved >> ok 25 - indexed >> ok 26 - attachment links generated >> ok 27 - QP length is close >> ok 28 - trailing newline exists >> ok 29 - QP trailing newline is there >> ok 30 - Base64 matches exactly >> ok 31 - plain text almost matches >> ok 32 - trailing newline exists in text >> ok 33 - plain text not truncated >> ok 34 - dot almost matches >> ok 35 - user-specified filename is OK >> ok 36 - 0-byte download not offered >> ok 37 - href to message/rfc822 attachment visible >> ok 38 - href to nested message/rfc822 attachment visible >> ok 39 - got attached eml >> ok 40 - attachment had 2 subparts >> ok 41 - 1st attachment is as expected >> ok 42 - 2nd attachment is as expected >> ok 43 - nested eml retrieved >> ok 44 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 45 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 46 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 47 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 48 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 49 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 50 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 51 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 52 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 53 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 54 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 55 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 56 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 57 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 58 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 59 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 60 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> ok 61 # skip Plack::Test::ExternalServer missing for t/psgi_attach.t >> 1..61 >> ok >> t/psgi_bad_mids.t ............ >> ok 1 - use DBD::SQLite; >> ok 2 - use HTTP::Request::Common; >> ok 3 - use Plack::Test; >> ok 4 - use URI::Escape; >> ok 5 - use Plack::Builder; >> ok 6 - use PublicInbox::WWW; >> ok 7 - use PublicInbox::WWW; >> ok 8 - use PublicInbox::V2Writable; >> ok 9 - added F1V5OR6NMF.3M649JTLO9IXD@tux.localdomain/hehe1"'> ok 10 - added F1V5NB0PTU.3U0DCVGAJ750Z@tux.localdomain"'<>/foo >> ok 11 - added F1V5NB0PTU.3U0DCVGAJ750Z@tux&.ampersand >> ok 12 - added F1V5MIHGCU.2ABINKW6WBE8N@tux.localdomain/raw >> ok 13 - added F1V5LF9D9C.2QT5PGXZQ050E@tux.localdomain/t.atom >> ok 14 - added F1V58X3CMU.2DCCVAKQZGADV@tux.localdomain/../../../../foo >> ok 15 - added F1TVKINT3G.2S6I36MXMHYG6@tux.localdomain" onclick="alert(1)" >> ok 16 - got 200 OK listing >> ok 17 - escaped F1V5OR6NMF.3M649JTLO9IXD@tux.localdomain/hehe1"'> ok 18 - escaped F1V5NB0PTU.3U0DCVGAJ750Z@tux.localdomain"'<>/foo >> ok 19 - escaped F1V5NB0PTU.3U0DCVGAJ750Z@tux&.ampersand >> ok 20 - escaped F1V5MIHGCU.2ABINKW6WBE8N@tux.localdomain/raw >> ok 21 - escaped F1V5LF9D9C.2QT5PGXZQ050E@tux.localdomain/t.atom >> ok 22 - escaped F1V58X3CMU.2DCCVAKQZGADV@tux.localdomain/../../../../foo >> ok 23 - escaped F1TVKINT3G.2S6I36MXMHYG6@tux.localdomain" onclick="alert(1)" >> ok 24 - got escaped links to all messages >> ok 25 - got 200 OK raw message F1V5OR6NMF.3M649JTLO9IXD@tux.localdomain%2Fhehe1%22'%3Cfoo >> ok 26 - retrieved correct message >> ok 27 - got 200 OK raw message F1V5NB0PTU.3U0DCVGAJ750Z@tux.localdomain%22'%3C >> ok 28 - retrieved correct message >> ok 29 - got 200 OK raw message F1V5NB0PTU.3U0DCVGAJ750Z@tux&.ampersand >> ok 30 - retrieved correct message >> ok 31 - got 200 OK raw message F1V5MIHGCU.2ABINKW6WBE8N@tux.localdomain%2Fraw >> ok 32 - retrieved correct message >> ok 33 - got 200 OK raw message F1V5LF9D9C.2QT5PGXZQ050E@tux.localdomain%2Ft.atom >> ok 34 - retrieved correct message >> ok 35 - got 200 OK raw message F1V58X3CMU.2DCCVAKQZGADV@tux.localdomain%2F..%2F..%2F..%2F..%2Ffoo >> ok 36 - retrieved correct message >> ok 37 - got 200 OK raw message F1TVKINT3G.2S6I36MXMHYG6@tux.localdomain%22%20onclick=%22alert(1)%22 >> ok 38 - retrieved correct message >> 1..38 >> ok >> t/psgi_mount.t ............... >> ok 1 - use HTTP::Request::Common; >> ok 2 - use Plack::Test; >> ok 3 - use URI::Escape; >> ok 4 - use Plack::Builder; >> ok 5 - use Plack::App::URLMap; >> ok 6 - use PublicInbox::WWW; >> ok 7 - URLs which exist in Atom feed are mount-aware >> ok 8 - No URLs which are not mount-aware >> ok 9 - clone URL in new.html is mount-aware >> ok 10 - OK with URLMap mount >> ok 11 - clone URL in /$INBOX/$MESSAGE_ID/ is mount-aware >> ok 12 - OK with URLMap mount >> ok 13 - List-Archive set in /raw mboxrd >> ok 14 - Archived-At set in /raw mboxrd >> ok 15 - redirect functions properly under mount >> ok 16 - intentional 404 with URLMap mount >> ok 17 - require PublicInbox::SearchIdx; >> ok 18 - List-Archive set in /t.mbox.gz mboxrd >> ok 19 - Archived-At set in /t.mbox.gz mboxrd >> 1..19 >> ok >> t/psgi_multipart_not.t ....... >> ok 1 - use HTTP::Request::Common; >> ok 2 - use Plack::Test; >> ok 3 - use PublicInbox::WWW; >> ok 4 - use PublicInbox::V2Writable; >> ok 5 - added broken multipart message >> ok 6 - /v2test/?q=%22ain't what it used to be%22&x=t >> ok 7 - /v2test/?q=%22ain't what it used to be%22&x=t warns >> ok 8 - /v2test/new.atom >> ok 9 - /v2test/new.atom warns >> ok 10 - /v2test/new.html >> ok 11 - /v2test/new.html warns >> 1..11 >> ok >> t/psgi_scan_all.t ............ >> ok 1 - use PublicInbox::V2Writable; >> ok 2 - use HTTP::Request::Common; >> ok 3 - use Plack::Test; >> ok 4 - use URI::Escape; >> ok 5 - use DBD::SQLite; >> ok 6 - added message to 1 >> ok 7 - added message to 2 >> ok 8 - use PublicInbox::WWW; >> ok 9 - got 302 >> ok 10 - redirected OK to 1 >> ok 11 - got 302 >> ok 12 - redirected OK to 1 >> ok 13 - got 302 >> ok 14 - redirected OK to 2 >> ok 15 - got 302 >> ok 16 - redirected OK to 2 >> ok 17 - 404 on inv@lid >> ok 18 - 404 on inv@lid/ >> ok 19 - 404 on i/v/a >> ok 20 - 404 on l/i/d/ >> 1..20 >> ok >> t/psgi_search.t .............. >> ok 1 - use HTTP::Request::Common; >> ok 2 - use Plack::Test; >> ok 3 - use PublicInbox::WWW; >> ok 4 - use PublicInbox::SearchIdx; >> ok 5 - HTML escaped in title >> ok 6 - saw query strings >> ok 7 - all query values identical in HTML >> ok 8 - matches original query >> ok 9 - displayed Ævar's name properly in HTML >> ok 10 - "full threads" download option shown >> ok 11 - successful search result >> ok 12 - no warnings from non-numeric comparison >> ok 13 - failed search result gives 404 >> ok 14 - no warnings >> ok 15 - partial match found while truncated >> ok 16 >> ok 17 - found mid in response >> ok 18 - partial match found while truncated >> ok 19 >> ok 20 - found mid in response >> ok 21 - partial match found while truncated >> ok 22 >> ok 23 - found mid in response >> ok 24 - partial match found while truncated >> ok 25 >> ok 26 - found mid in response >> ok 27 - partial match found while truncated >> ok 28 >> ok 29 - found mid in response >> ok 30 - partial match found while truncated >> ok 31 >> ok 32 - found mid in response >> ok 33 - subject-less message linked from "/$INBOX/" >> ok 34 - blank subject message linked from "/$INBOX/" >> ok 35 - displayed Ævar's name properly in topic view >> ok 36 - subject-less message linked from "/$INBOX/?q=..." >> ok 37 - blank subject message linked from "/$INBOX/?q=..." >> ok 38 >> ok 39 >> ok 40 - successful mbox download with threads >> ok 41 - got full thread >> ok 42 - successful search w/o has_threadid >> ok 43 - "full threads" download option not shown w/o has_threadid >> ok 44 - successful mbox download w/ threads >> ok 45 >> 1..45 >> ok >> t/psgi_text.t ................ >> ok 1 - use HTTP::Request::Common; >> ok 2 - use Plack::Test; >> ok 3 - use URI::Escape; >> ok 4 - use Plack::Builder; >> ok 5 - use PublicInbox::WWW; >> ok 6 - use PublicInbox::WwwText; >> ok 7 - default help >> ok 8 - got gzip encoding >> ok 9 - got gzipped HTML >> ok 10 - gzipped content is correct >> ok 11 - got expected address in config >> ok 12 - got gzip encoding >> ok 13 - gzipped help is smaller >> ok 14 >> 1..14 >> ok >> t/psgi_v2.t .................. >> ok 1 - use HTTP::Request::Common; >> ok 2 - use Plack::Test; >> ok 3 - use PublicInbox::WWW; >> ok 4 - use PublicInbox::V2Writable; >> ok 5 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 6 - added one message >> ok 7 - added duplicate-but-different message >> ok 8 - got one warning >> ok 9 - "From_" line stored to test old bug workaround >> ok 10 - got v2 description missing message >> ok 11 - buggy "From_" line omitted >> ok 12 - got first message >> ok 13 - got second message >> ok 14 - two From_ lines >> ok 15 - second message with new Message-Id >> ok 16 - only one From_ line >> ok 17 - Atom ordering is chronological >> ok 18 - new.html ordering is chronological >> ok 19 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 20 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 21 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 22 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 23 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 24 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 25 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 26 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 27 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 28 - added 3rd duplicate-but-different message >> ok 29 - got another warning >> ok 30 - warned about mismatched messages >> ok 31 - both warnings are the same >> ok 32 - got third message >> ok 33 - one From_ line >> ok 34 - got first message >> ok 35 - got second message >> ok 36 - got third message >> ok 37 - three From_ lines >> ok 38 - gzip encoding >> ok 39 - gzip response matches >> ok 40 - buggy "From_" line omitted >> ok 41 - got first in t.mbox.gz >> ok 42 - got second in t.mbox.gz >> ok 43 - got third in t.mbox.gz >> ok 44 - three From_ lines in t.mbox.gz >> ok 45 - buggy "From_" line omitted >> ok 46 - got first in mbox POST >> ok 47 - got second in mbox POST >> ok 48 - got third in mbox POST >> ok 49 - three From_ lines in mbox POST >> ok 50 - buggy "From_" line omitted >> ok 51 - got first in all.mbox >> ok 52 - got second in all.mbox >> ok 53 - got third in all.mbox >> ok 54 - three From_ lines in all.mbox >> ok 55 - success with threaded search >> ok 56 - got all results >> ok 57 - threaded messages show up >> ok 58 - success with Atom search >> ok 59 # skip XML::TreePP missing for t/psgi_v2.t >> ok 60 # skip XML::TreePP missing for t/psgi_v2.t >> ok 61 - got first message >> ok 62 - got second message >> ok 63 - got third message >> ok 64 - three From: lines >> ok 65 - Message-ID a-mid@b shown >> ok 66 - Message-ID 19931002000100.9-qiS1sw0W51lPiuJcG5rhnBeqrGDSQ2hhYSYtiG550@z shown >> ok 67 - Message-ID 19931002000100.OouBSRcl2eR6Hp1GyWxqYGpsnboYZkTDy9mi9IQcpdo@z shown >> ok 68 - thread overview shown >> ok 69 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 70 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 71 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 72 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 73 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 74 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 75 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 76 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 77 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 78 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 79 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 80 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 81 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 82 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 83 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 84 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 85 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 86 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 87 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 88 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 89 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 90 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 91 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 92 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 93 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 94 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 95 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 96 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 97 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 98 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 99 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 100 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 101 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 102 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 103 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 104 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 105 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 106 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 107 - added one message >> ok 108 - reused existing Message-ID >> ok 109 - feed ids unique >> ok 110 - thread overview shown with /T/ >> ok 111 - duplicate messages share the same root >> ok 112 - thread overview shown with /t/ >> ok 113 - got info refs for dumb clones >> ok 114 - got info refs for dumb clones w/ .git suffix >> ok 115 - v2 git URL w/o shard fails >> ok 116 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 117 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 118 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 119 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 120 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 121 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 122 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 123 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 124 - added attachment old >> ok 125 - added attachment new >> ok 126 - both attachment links exist >> ok 127 - attachment links are different >> ok 128 - got expected old content >> ok 129 - got expected new content >> ok 130 - 404 for out-of-range t= param >> ok 131 - no warnings on YYYYMMDD only >> ok 132 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 133 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 134 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> ok 135 # skip Plack::Test::ExternalServer missing for t/psgi_v2.t >> 1..135 >> ok >> t/purge.t .................... >> ok 1 - use PublicInbox::V2Writable; >> ok 2 - add message to be purged >> ok 3 - purge -f OK >> ok 4 - mismatch fails without -f >> ok 5 - missed purge exits with 1 >> ok 6 - match OK >> ok 7 - removed commit noted >> ok 8 - add vger-signatured message to be purged >> ok 9 - chdir / OK for --all test >> ok 10 - scrub purge OK >> ok 11 - removed commit noted >> ok 12 - scrub purge not idempotent without -f >> 1..12 >> ok >> t/qspawn.t ................... >> ok 1 - use PublicInbox::Qspawn; >> ok 2 - captured stderr and stdout >> ok 3 - captured stderr and stdout >> ok 4 - read zero bytes >> ok 5 - no error on finish >> ok 6 - callback ran alright >> ok 7 - read zero bytes from false >> ok 8 - error on finish >> ok 9 - callback ran alright >> ok 10 - read zero bytes >> ok 11 - no error on sleep >> ok 12 - true 0 succeeded >> ok 13 - true 1 succeeded >> ok 14 - true 2 succeeded >> ok 15 - ran in order >> ok 16 - read zero bytes >> ok 17 - got error on false after sleep >> ok 18 - true 0 succeeded >> ok 19 - true 1 succeeded >> ok 20 - true 2 succeeded >> ok 21 - ran in order >> 1..21 >> ok >> # v2 basic replace >> # v2 basic replace >> # v2 basic replace >> # v2 basic replace >> # v2 medium replace >> # v2 medium replace >> # v2 medium replace >> # v2 medium replace >> t/replace.t .................. >> ok 1 - add message to be replaced >> ok 2 - ->replace died on Message-ID change >> ok 3 - no replacement happened >> ok 4 - ->replace died on Message-ID change >> ok 5 - no replacement happened >> ok 6 - ->replace died on Message-ID change >> ok 7 - no replacement happened >> ok 8 - replaced message >> ok 9 - replace returned current commit >> ok 10 - only one epoch changed >> ok 11 - replaced message >> ok 12 - no warnings on noop >> ok 13 - nothing confidential >> ok 14 - Streisand who? >> ok 15 - nothing from Oct 1993 >> ok 16 - nothing matches (?^: 749520000 ) >> ok 17 - git fsck is clean in epoch 0.git >> ok 18 - threading preserved >> ok 19 - one unique blob from before left >> ok 20 - one unique blob from after left >> ok 21 - old blob not found >> ok 22 - before subject >> ok 23 - before MID >> ok 24 - new blob found >> ok 25 - after subject >> ok 26 - before MID >> ok 27 - no-op replace returns undef >> ok 28 - no-op purge returns undef >> ok 29 - no warnings on noop >> ok 30 - add message to be replaced >> ok 31 - ->replace died on Message-ID change >> ok 32 - no replacement happened >> ok 33 - ->replace died on Message-ID change >> ok 34 - no replacement happened >> ok 35 - ->replace died on Message-ID change >> ok 36 - no replacement happened >> ok 37 - replaced message >> ok 38 - replace returned current commit >> ok 39 - only one epoch changed >> ok 40 - replaced message >> ok 41 - no warnings on noop >> ok 42 - nothing confidential >> ok 43 - Streisand who? >> ok 44 - nothing from Oct 1993 >> ok 45 - nothing matches (?^: 749520000 ) >> ok 46 - git fsck is clean in epoch 0.git >> ok 47 - threading preserved >> ok 48 - one unique blob from before left >> ok 49 - one unique blob from after left >> ok 50 - old blob not found >> ok 51 - before subject >> ok 52 - before MID >> ok 53 - new blob found >> ok 54 - after subject >> ok 55 - before MID >> ok 56 - no-op replace returns undef >> ok 57 - no-op purge returns undef >> ok 58 - no warnings on noop >> ok 59 - add message to be replaced >> ok 60 - ->replace died on Message-ID change >> ok 61 - no replacement happened >> ok 62 - ->replace died on Message-ID change >> ok 63 - no replacement happened >> ok 64 - ->replace died on Message-ID change >> ok 65 - no replacement happened >> ok 66 - replaced message >> ok 67 - replace returned current commit >> ok 68 - only one epoch changed >> ok 69 - replaced message >> ok 70 - no warnings on noop >> ok 71 - nothing confidential >> ok 72 - Streisand who? >> ok 73 - nothing from Oct 1993 >> ok 74 - nothing matches (?^: 749520000 ) >> ok 75 - git fsck is clean in epoch 0.git >> ok 76 - threading preserved >> ok 77 - one unique blob from before left >> ok 78 - one unique blob from after left >> ok 79 - old blob not found >> ok 80 - before subject >> ok 81 - before MID >> ok 82 - new blob found >> ok 83 - after subject >> ok 84 - before MID >> ok 85 - no-op replace returns undef >> ok 86 - no-op purge returns undef >> ok 87 - no warnings on noop >> ok 88 - add message to be replaced >> ok 89 - ->replace died on Message-ID change >> ok 90 - no replacement happened >> ok 91 - ->replace died on Message-ID change >> ok 92 - no replacement happened >> ok 93 - ->replace died on Message-ID change >> ok 94 - no replacement happened >> ok 95 - replaced message >> ok 96 - replace returned current commit >> ok 97 - only one epoch changed >> ok 98 - replaced message >> ok 99 - no warnings on noop >> ok 100 - nothing confidential >> ok 101 - Streisand who? >> ok 102 - nothing from Oct 1993 >> ok 103 - nothing matches (?^: 749520000 ) >> ok 104 - git fsck is clean in epoch 0.git >> ok 105 - git fsck is clean in epoch 1.git >> ok 106 - git fsck is clean in epoch 2.git >> ok 107 - git fsck is clean in epoch 3.git >> ok 108 - git fsck is clean in epoch 4.git >> ok 109 - threading preserved >> ok 110 - one unique blob from before left >> ok 111 - one unique blob from after left >> ok 112 - old blob not found >> ok 113 - before subject >> ok 114 - before MID >> ok 115 - new blob found >> ok 116 - after subject >> ok 117 - before MID >> ok 118 - no-op replace returns undef >> ok 119 - no-op purge returns undef >> ok 120 - no warnings on noop >> ok 121 - add message to be replaced >> ok 122 - ->replace died on Message-ID change >> ok 123 - no replacement happened >> ok 124 - ->replace died on Message-ID change >> ok 125 - no replacement happened >> ok 126 - ->replace died on Message-ID change >> ok 127 - no replacement happened >> ok 128 - replaced message >> ok 129 - replace returned current commit >> ok 130 - only one epoch changed >> ok 131 - replaced message >> ok 132 - no warnings on noop >> ok 133 - nothing confidential >> ok 134 - Streisand who? >> ok 135 - nothing from Oct 1993 >> ok 136 - nothing matches (?^: 749520000 ) >> ok 137 - git fsck is clean in epoch 0.git >> ok 138 - threading preserved >> ok 139 - no match for f:streisand >> ok 140 - no match for s:confidential >> ok 141 - no match for malibu >> ok 142 - got match for f:redactor >> ok 143 - got match for s:redacted >> ok 144 - got match for nothing to see >> ok 145 - one unique blob from before left >> ok 146 - one unique blob from after left >> ok 147 - old blob not found >> ok 148 - before subject >> ok 149 - before MID >> ok 150 - new blob found >> ok 151 - after subject >> ok 152 - before MID >> ok 153 - no-op replace returns undef >> ok 154 - no-op purge returns undef >> ok 155 - no warnings on noop >> ok 156 - add message to be replaced >> ok 157 - ->replace died on Message-ID change >> ok 158 - no replacement happened >> ok 159 - ->replace died on Message-ID change >> ok 160 - no replacement happened >> ok 161 - ->replace died on Message-ID change >> ok 162 - no replacement happened >> ok 163 - replaced message >> ok 164 - replace returned current commit >> ok 165 - only one epoch changed >> ok 166 - replaced message >> ok 167 - no warnings on noop >> ok 168 - nothing confidential >> ok 169 - Streisand who? >> ok 170 - nothing from Oct 1993 >> ok 171 - nothing matches (?^: 749520000 ) >> ok 172 - git fsck is clean in epoch 0.git >> ok 173 - threading preserved >> ok 174 - no match for f:streisand >> ok 175 - no match for s:confidential >> ok 176 - no match for malibu >> ok 177 - got match for f:redactor >> ok 178 - got match for s:redacted >> ok 179 - got match for nothing to see >> ok 180 - got match for m:1@example.com >> ok 181 - got match for m:2@example.com >> ok 182 - got match for s:message2 >> ok 183 - got match for s:message1 >> ok 184 - one unique blob from before left >> ok 185 - one unique blob from after left >> ok 186 - old blob not found >> ok 187 - before subject >> ok 188 - before MID >> ok 189 - new blob found >> ok 190 - after subject >> ok 191 - before MID >> ok 192 - no-op replace returns undef >> ok 193 - no-op purge returns undef >> ok 194 - no warnings on noop >> ok 195 - add message to be replaced >> ok 196 - ->replace died on Message-ID change >> ok 197 - no replacement happened >> ok 198 - ->replace died on Message-ID change >> ok 199 - no replacement happened >> ok 200 - ->replace died on Message-ID change >> ok 201 - no replacement happened >> ok 202 - replaced message >> ok 203 - replace returned current commit >> ok 204 - only one epoch changed >> ok 205 - replaced message >> ok 206 - no warnings on noop >> ok 207 - nothing confidential >> ok 208 - Streisand who? >> ok 209 - nothing from Oct 1993 >> ok 210 - nothing matches (?^: 749520000 ) >> ok 211 - git fsck is clean in epoch 0.git >> ok 212 - threading preserved >> ok 213 - no match for f:streisand >> ok 214 - no match for s:confidential >> ok 215 - no match for malibu >> ok 216 - got match for f:redactor >> ok 217 - got match for s:redacted >> ok 218 - got match for nothing to see >> ok 219 - got match for m:1@example.com >> ok 220 - got match for m:2@example.com >> ok 221 - got match for s:message2 >> ok 222 - got match for s:message1 >> ok 223 - got match for m:3@example.com >> ok 224 - got match for m:4@example.com >> ok 225 - got match for s:message3 >> ok 226 - got match for s:message4 >> ok 227 - one unique blob from before left >> ok 228 - one unique blob from after left >> ok 229 - old blob not found >> ok 230 - before subject >> ok 231 - before MID >> ok 232 - new blob found >> ok 233 - after subject >> ok 234 - before MID >> ok 235 - no-op replace returns undef >> ok 236 - no-op purge returns undef >> ok 237 - no warnings on noop >> ok 238 - add message to be replaced >> ok 239 - ->replace died on Message-ID change >> ok 240 - no replacement happened >> ok 241 - ->replace died on Message-ID change >> ok 242 - no replacement happened >> ok 243 - ->replace died on Message-ID change >> ok 244 - no replacement happened >> ok 245 - replaced message >> ok 246 - replace returned current commit >> ok 247 - only one epoch changed >> ok 248 - replaced message >> ok 249 - no warnings on noop >> ok 250 - nothing confidential >> ok 251 - Streisand who? >> ok 252 - nothing from Oct 1993 >> ok 253 - nothing matches (?^: 749520000 ) >> ok 254 - git fsck is clean in epoch 0.git >> ok 255 - git fsck is clean in epoch 1.git >> ok 256 - git fsck is clean in epoch 2.git >> ok 257 - git fsck is clean in epoch 3.git >> ok 258 - git fsck is clean in epoch 4.git >> ok 259 - threading preserved >> ok 260 - no match for f:streisand >> ok 261 - no match for s:confidential >> ok 262 - no match for malibu >> ok 263 - got match for f:redactor >> ok 264 - got match for s:redacted >> ok 265 - got match for nothing to see >> ok 266 - got match for m:1@example.com >> ok 267 - got match for m:2@example.com >> ok 268 - got match for s:message2 >> ok 269 - got match for s:message1 >> ok 270 - got match for m:3@example.com >> ok 271 - got match for m:4@example.com >> ok 272 - got match for s:message3 >> ok 273 - got match for s:message4 >> ok 274 - one unique blob from before left >> ok 275 - one unique blob from after left >> ok 276 - old blob not found >> ok 277 - before subject >> ok 278 - before MID >> ok 279 - new blob found >> ok 280 - after subject >> ok 281 - before MID >> ok 282 - no-op replace returns undef >> ok 283 - no-op purge returns undef >> ok 284 - no warnings on noop >> 1..284 >> ok >> t/reply.t .................... >> ok 1 - use PublicInbox::Reply; >> ok 2 - quote foo@bar => foo@bar >> ok 3 - quote a b => 'a b' >> ok 4 - quote a'b => 'a'\''b' >> ok 5 - default reply is to :all >> ok 6 - ":all" also works >> ok 7 - ":list" works for centralized lists >> ok 8 - ":list,Cc,To" works for kinda centralized lists >> ok 9 - explicit address works, too >> ok 10 - address obfuscation works >> ok 11 - no mailto: link given >> ok 12 - :none= works >> 1..12 >> ok >> t/search-thr-index.t ......... >> ok 1 - search indexer created >> ok 2 - message added: 4-bw@g >> ok 3 - message added: 10-bw@g >> ok 4 - message added: 1-bw@g >> ok 5 - got all messages from 4-bw@g >> ok 6 - got all messages from 10-bw@g >> ok 7 - got all messages from 1-bw@g >> ok 8 - all messages have the same tid >> ok 9 >> ok 10 - message reindexed1-bw@g >> ok 11 - article number unchanged: 3 >> ok 12 - tid unchanged on reindex >> 1..12 >> ok >> t/search.t ................... >> ok 1 - git init (main) >> ok 2 - exception raised on non-existent DB >> ok 3 - undefined permission is group >> ok 4 - 644 => umask(0022) >> ok 5 - 600 => umask(0077) >> ok 6 - 640 => umask(0027) >> ok 7 - group => umask(0007) >> ok 8 - everybody => umask(0002) >> ok 9 - umask => existing umask >> ok 10 - no adjustment needed >> ok 11 - LF-only counts two CR >> ok 12 - CRLF/LF-mix 1 counts 1 CR >> ok 13 - CRLF/LF-mix 2 counts 1 CR >> ok 14 - root_id is an integer: 1 >> ok 15 - last_id is an integer: 2 >> ok 16 - message found >> ok 17 - mid set correctly >> ok 18 - got expected results for s:() match >> ok 19 - got expected results for s:"" match >> ok 20 - limit works >> ok 21 - offset works >> ok 22 - offset returned different result from limit >> ok 23 - reply_id is an integer: 3 >> ok 24 - ghost_id is an integer: 4 >> ok 25 - got both messages in ghost thread >> ok 26 - {sid} match >> ok 27 - {tid} match >> ok 28 - num do not match >> ok 29 - positive art num >> ok 30 - positive art num >> ok 31 - got expected results for Subject match >> ok 32 - goodbye message found >> ok 33 - got goodbye message body >> ok 34 - exact Date: match works >> ok 35 - exact Date: match down to the second >> ok 36 - long_id is an integer: 5 >> ok 37 - inserted long reply >> ok 38 - got all 4 messages in thread >> ok 39 - get_thread works >> ok 40 - got both matches >> ok 41 - non-quoted scores higher >> ok 42 - quoted result still returned >> ok 43 - got a match for quoted text >> ok 44 - quoted result returned if nothing else >> ok 45 - doc_id defined with circular reference >> ok 46 - found m:circl@a >> ok 47 - no references created >> ok 48 - long subject not rewritten >> ok 49 - got results within range >> ok 50 - nothing after 20101003 >> ok 51 - nothing before 19931001 >> ok 52 - message indexed doc_id with UTF-8 >> ok 53 - found testmessage@example.com >> ok 54 - UTF-8 subject preserved >> ok 55 - searched To: successfully >> ok 56 - to appears >> ok 57 - $bytes stored as digit >> ok 58 - $bytes is > 0 >> ok 59 - bytes Xapian value matches Over >> ok 60 - UID column matches {num} >> ok 61 - UID column matches docid >> ok 62 - to appears >> ok 63 - $bytes stored as digit >> ok 64 - $bytes is > 0 >> ok 65 - bytes Xapian value matches Over >> ok 66 - UID column matches {num} >> ok 67 - UID column matches docid >> ok 68 - to appears >> ok 69 - $bytes stored as digit >> ok 70 - $bytes is > 0 >> ok 71 - bytes Xapian value matches Over >> ok 72 - UID column matches {num} >> ok 73 - UID column matches docid >> ok 74 - to appears >> ok 75 - $bytes stored as digit >> ok 76 - $bytes is > 0 >> ok 77 - bytes Xapian value matches Over >> ok 78 - UID column matches {num} >> ok 79 - UID column matches docid >> ok 80 - to appears >> ok 81 - $bytes stored as digit >> ok 82 - $bytes is > 0 >> ok 83 - bytes Xapian value matches Over >> ok 84 - UID column matches {num} >> ok 85 - UID column matches docid >> ok 86 - to appears >> ok 87 - $bytes stored as digit >> ok 88 - $bytes is > 0 >> ok 89 - bytes Xapian value matches Over >> ok 90 - UID column matches {num} >> ok 91 - UID column matches docid >> ok 92 - to appears >> ok 93 - $bytes stored as digit >> ok 94 - $bytes is > 0 >> ok 95 - bytes Xapian value matches Over >> ok 96 - UID column matches {num} >> ok 97 - UID column matches docid >> ok 98 - to appears >> ok 99 - $bytes stored as digit >> ok 100 - $bytes is > 0 >> ok 101 - bytes Xapian value matches Over >> ok 102 - UID column matches {num} >> ok 103 - UID column matches docid >> ok 104 - to appears >> ok 105 - $bytes stored as digit >> ok 106 - $bytes is > 0 >> ok 107 - bytes Xapian value matches Over >> ok 108 - UID column matches {num} >> ok 109 - UID column matches docid >> ok 110 - searched To+Cc: successfully >> ok 111 - tocc appears >> ok 112 - tocc appears >> ok 113 - tocc appears >> ok 114 - tocc appears >> ok 115 - tocc appears >> ok 116 - tocc appears >> ok 117 - tocc appears >> ok 118 - tocc appears >> ok 119 - tocc appears >> ok 120 - searched tcf: successfully for Cc: >> ok 121 - cc appears >> ok 122 - searched c: successfully for Cc: >> ok 123 - cc appears >> ok 124 - searched successfully for From: >> ok 125 - From appears with >> ok 126 - searched tcf: successfully for From: >> ok 127 - From appears with tcf: >> ok 128 - searched f: successfully for From: >> ok 129 - From appears with f: >> ok 130 - no match on body search only >> ok 131 - no match on body+subject search for From >> ok 132 - only one quoted body >> ok 133 - got quoted body >> ok 134 - only one non-quoted body >> ok 135 - got non-quoted body >> ok 136 - searched both bodies for b: >> ok 137 - non-quoter first for b: >> ok 138 - searched both bodies for bs: >> ok 139 - non-quoter first for bs: >> ok 140 - added attachment >> ok 141 - got result for n: >> ok 142 - got result without n: >> ok 143 - same result with and without >> ok 144 - found inside another >> ok 145 - search inside text attachments works >> ok 146 - article exists in OVER DB >> ok 147 - gone from OVER DB >> ok 148 - sharedRepository respected for msgmap.sqlite3 >> ok 149 - sharedRepository respected for public-inbox >> ok 150 - sharedRepository respected for xapian15 >> ok 151 - sharedRepository respected for docdata.glass >> ok 152 - sharedRepository respected for flintlock >> ok 153 - sharedRepository respected for iamglass >> ok 154 - sharedRepository respected for over.sqlite3 >> ok 155 - sharedRepository respected for over.sqlite3-journal >> ok 156 - sharedRepository respected for position.glass >> ok 157 - sharedRepository respected for postlist.glass >> ok 158 - sharedRepository respected for spelling.glass >> ok 159 - sharedRepository respected for synonym.glass >> ok 160 - sharedRepository respected for termlist.glass >> ok 161 - no results yet >> ok 162 - searching only digit yielded result >> ok 163 - searching chopped(1) digit yielded result 1001026093633 >> ok 164 - searching chopped(2) digit yielded result 100102609363 >> ok 165 - searching chopped(3) digit yielded result 10010260936 >> ok 166 - searching chopped(4) digit yielded result 1001026093 >> ok 167 - searching chopped(5) digit yielded result 100102609 >> ok 168 - searching chopped(6) digit yielded result 10010260 >> ok 169 >> ok 170 - got expected mid on exact lid: search >> ok 171 - got nothing on lid: search >> ok 172 - got nothing on lid: search >> ok 173 - probabilistic search works on full List-Id contents >> ok 174 - probabilistic search works on partial List-Id contents >> ok 175 - no match on phrase with lid: >> ok 176 - no match on partial List-Id with lid: >> ok 177 - matched on phrase with l: >> ok 178 - messages within messages >> ok 179 - got a result >> ok 180 - .eml filenames searchable >> ok 181 - probabilistic m:20200418222508.GA13918@dcvr >> ok 182 - boolean mid:20200418222508.GA13918@dcvr >> ok 183 - probabilistic m:20200418222020.GA2745@dcvr >> ok 184 - boolean mid:20200418222020.GA2745@dcvr >> ok 185 - probabilistic m:20200418214114.7575-1-e@yhbt.net >> ok 186 - boolean mid:20200418214114.7575-1-e@yhbt.net >> ok 187 - diff search reaches inside message/rfc822 >> ok 188 - Subject search reaches inside message/rfc822 >> 1..188 >> ok >> t/sigfd.t .................... >> ok 1 - require PublicInbox::Sigfd; >> ok 2 - Sigfd->new works >> ok 3 - fileno(Sigfd->{sock}) works >> ok 4 - select() works >> ok 5 - wait_once reported success >> ok 6 - sigfd fired HUP >> ok 7 - normal $SIG{$s} not fired >> ok 8 - sigfd fired INT >> ok 9 - normal $SIG{$s} not fired >> ok 10 - Sigfd->new $SFD_NONBLOCK works >> ok 11 - nonblocking ->wait_once >> ok 12 - got EAGAIN >> ok 13 - HUP sigfd fired in event loop >> ok 14 - TERM sigfd fired in event loop >> ok 15 - HUP sigfd fired in event loop >> 1..15 >> ok >> t/solver_git.t ............... skipped: t/solver_git.t must be run from a git working tree >> t/spamcheck_spamc.t .......... >> ok 1 - use PublicInbox::Spamcheck::Spamc; >> ok 2 - empty GLOB >> ok 3 - IO::File->new_tmpfile >> ok 4 - PublicInbox::Eml works >> ok 5 - input == output >> ok 6 - Failed check works >> ok 7 - input == output for spammy example >> ok 8 - hamlearn OK >> ok 9 - ham command ran alright >> ok 10 - spamlearn OK >> ok 11 - spam command ran alright >> 1..11 >> ok >> # waiting for child to reap grandchild... >> t/spawn.t .................... >> ok 1 - 'true' command found with which() >> ok 2 - spawned process >> ok 3 - waitpid succeeds on spawned process >> ok 4 - true exited successfully >> ok 5 - got ready signal, waitpid(-1) works in child >> ok 6 - sent SIGCHLD to child >> ok 7 - $SIG{CHLD} works in child >> ok 8 - popen_rd close works >> ok 9 - read stdout of spawned from pipe >> ok 10 - waitpid succeeds on spawned process >> ok 11 - true exited successfully >> ok 12 - read stdout of spawned from pipe >> ok 13 - waitpid succeeds on spawned process >> ok 14 - sh exited successfully >> ok 15 - tied fileno works >> ok 16 - tied readline works >> ok 17 - tied readline works for EOF >> ok 18 - tied fileno works >> ok 19 - wantarray works on readline >> ok 20 - sysread got 6 bytes >> ok 21 - tied gets works >> ok 22 - sysread got EOF >> ok 23 - close succeeds >> ok 24 - $? set properly >> ok 25 - close fails on false >> ok 26 - $? set properly: 256 >> ok 27 # skip BSD::Resource::RLIMIT_CPU missing >> ok 28 # skip BSD::Resource::RLIMIT_CPU missing >> ok 29 # skip BSD::Resource::RLIMIT_CPU missing >> 1..29 >> ok >> t/thread-cycle.t ............. >> ok 1 - use PublicInbox::SearchThread; >> ok 2 # skip Mail::Thread missing >> ok 3 # skip Mail::Thread missing >> ok 4 - forward and backward matches >> 1..4 >> ok >> t/thread-index-gap.t ......... >> ok 1 - only one thread initially (orig) >> ok 2 - only one thread after rethread (orig) >> ok 3 - only one thread initially (shuffle) >> ok 4 - only one thread after rethread (shuffle) >> 1..4 >> ok >> t/time.t ..................... >> ok 1 - got expected date with 2 digit year >> ok 2 - got expected date with 3 digit year >> 1..2 >> ok >> t/uri_imap.t ................. >> ok 1 - use PublicInbox::URIimap; >> ok 2 - invalid scheme ignored >> ok 3 - host ok >> ok 4 - host canonicalized >> ok 5 - URI canonicalized >> ok 6 - imaps port >> ok 7 >> ok 8 >> ok 9 - numeric host >> ok 10 - user extracted >> ok 11 - no fragment >> ok 12 >> ok 13 - AUTH=ANONYMOUS accepted >> ok 14 - decoded AUTH >> ok 15 - decoded user >> ok 16 - mailbox is undef >> ok 17 - IPv6 host >> ok 18 - mailbox is undef >> ok 19 - port read >> ok 20 >> ok 21 >> ok 22 >> ok 23 >> ok 24 >> ok 25 >> ok 26 >> ok 27 - RFC 2192 '%' supported >> ok 28 - RFC 2192 '*' supported >> 1..28 >> ok >> t/v1-add-remove-add.t ........ >> ok 1 - message added >> ok 2 - message removed >> ok 3 - message added again >> ok 4 - message exists in history >> ok 5 - only one message in history >> ok 6 - exists with second article number >> 1..6 >> ok >> t/v1reindex.t ................ >> ok 1 - use PublicInbox::SearchIdx; >> ok 2 - use PublicInbox::Import; >> ok 3 - use PublicInbox::OverIdx; >> ok 4 - message 1 added >> ok 5 - message 2 added >> ok 6 - message 3 added >> ok 7 - message 4 added >> ok 8 - message 5 added >> ok 9 - message 6 added >> ok 10 - message 7 added >> ok 11 - message 8 added >> ok 12 - message 9 added >> ok 13 - message 10 added >> ok 14 - no error from indexing >> ok 15 - minmax defined >> ok 16 - minmax as expected >> ok 17 - num_highwater as expected >> ok 18 - msgmap as expected >> ok 19 - no error from reindexing >> ok 20 - num_highwater as expected >> ok 21 - msgmap unchanged >> ok 22 - Xapian directories removed >> ok 23 - no error from reindexing >> ok 24 - Xapian directories recreated >> ok 25 - minmax unchanged >> ok 26 - num_highwater as expected >> ok 27 - msgmap unchanged >> ok 28 >> ok 29 - Xapian directories removed again >> ok 30 - no error from reindexing without msgmap >> ok 31 - no warnings from reindexing >> ok 32 - Xapian directories recreated >> ok 33 - minmax unchanged >> ok 34 - num_highwater as expected >> ok 35 - msgmap unchanged >> ok 36 >> ok 37 - Xapian directories removed again >> ok 38 - no error from reindexing without msgmap >> ok 39 - no warnings >> ok 40 - Xapian directories recreated >> ok 41 - minmax unchanged >> ok 42 - num_highwater as expected >> ok 43 - msgmap unchanged >> ok 44 >> ok 45 - Xapian directories removed again >> ok 46 - no error from reindexing without msgmap >> ok 47 - no warnings >> ok 48 - Xapian directories recreated >> ok 49 - minmax unchanged >> ok 50 - num_highwater as expected >> ok 51 - got Xapian search results >> ok 52 - msgmap unchanged >> ok 53 >> ok 54 - Xapian directories removed again >> ok 55 - no error from reindexing without msgmap >> ok 56 - no warnings >> ok 57 - Xapian directories recreated >> ok 58 - minmax unchanged >> ok 59 - num_highwater as expected >> ok 60 >> ok 61 - msgmap unchanged >> ok 62 - no error from indexing >> ok 63 - no warnings >> ok 64 - search OK after basic -> medium >> ok 65 - num_highwater as expected >> ok 66 - msgmap unchanged >> ok 67 >> ok 68 - Xapian directories removed again >> ok 69 - no error from reindexing without msgmap >> ok 70 - no warnings >> ok 71 - min as expected >> ok 72 - max as expected >> ok 73 - num_highwater as expected >> ok 74 - msgmap as expected >> ok 75 - no error from reindexing without msgmap >> ok 76 - no warnings >> ok 77 - min as expected >> ok 78 - max as expected >> ok 79 - num_highwater as expected >> ok 80 - msgmap as expected >> ok 81 - no error from reindexing without msgmap >> ok 82 - no warnings >> ok 83 - min as expected >> ok 84 - max as expected >> ok 85 - num_highwater as expected >> ok 86 - msgmap as expected >> ok 87 - no error from reindexing without msgmap >> ok 88 - no warnings >> ok 89 - min as expected >> ok 90 - max as expected >> ok 91 - num_highwater as expected >> ok 92 - msgmap as expected >> ok 93 >> ok 94 - Xapian directories removed again >> ok 95 - no error from reindexing without msgmap >> ok 96 - no warnings >> ok 97 - min as expected >> ok 98 - max as expected >> ok 99 - num_highwater as expected >> ok 100 - msgmap as expected >> ok 101 - no error from reindexing without msgmap >> ok 102 - no warnings >> ok 103 - min as expected >> ok 104 - max as expected >> ok 105 - num_highwater as expected >> ok 106 - msgmap as expected >> ok 107 - no error from reindexing without msgmap >> ok 108 - no warnings >> ok 109 - min as expected >> ok 110 - max as expected >> ok 111 - num_highwater as expected >> ok 112 - msgmap as expected >> ok 113 - rethread dropped old threadids >> ok 114 - all tids greater than before >> ok 115 - thread count unchanged >> ok 116 - no warnings >> 1..116 >> ok >> t/v2-add-remove-add.t ........ >> ok 1 - use PublicInbox::V2Writable; >> ok 2 - message added >> ok 3 - message removed >> ok 4 - message added again >> ok 5 - message exists in history >> ok 6 - only one message in history >> 1..6 >> ok >> t/v2dupindex.t ............... >> ok 1 - use PublicInbox::Import; >> ok 2 - use PublicInbox::Git; >> ok 3 - use PublicInbox::InboxWritable; >> ok 4 - add seen message directly >> ok 5 - add another seen message directly >> ok 6 - add another new message >> ok 7 - unlinked SQLite indices >> ok 8 - no Xapian shards to drop >> ok 9 - -indexed >> ok 10 - identical message not re-indexed >> ok 11 - msgmap omits redundant message >> 1..11 >> ok >> t/v2mda.t .................... >> ok 1 - use PublicInbox::V2Writable; >> ok 2 >> ok 3 - initialized v2 inbox >> ok 4 - mda delivered a message >> ok 5 - only got one message >> ok 6 - injected message >> ok 7 - nothing in faildir >> ok 8 - mda did not die on "spam" >> ok 9 - got a message in faildir >> ok 10 - no new message >> ok 11 - config exists >> ok 12 - disabled spamcheck for mda >> ok 13 - mda did not die >> ok 14 - no new message in faildir >> ok 15 - new message added OK >> ok 16 - mda delivered a patch >> ok 17 - got one result for dfpost >> ok 18 - got one result for dfpre >> ok 19 - same message in both cases >> 1..19 >> ok >> t/v2mirror.t ................. >> ok 1 - use PublicInbox::V2Writable; >> ok 2 - inbox found >> ok 3 - v2w loaded >> ok 4 - add msg 1 OK >> ok 5 - add msg 2 OK >> ok 6 - add msg 3 OK >> ok 7 - add msg 4 OK >> ok 8 - add msg 5 OK >> ok 9 - add msg 6 OK >> ok 10 - add msg 7 OK >> ok 11 - add msg 8 OK >> ok 12 - add msg 9 OK >> ok 13 - multiple epochs >> ok 14 - lines is a digit >> ok 15 - bytes is a digit >> ok 16 - sock created >> ok 17 - cloned 0.git >> ok 18 - mirror 0 OK >> ok 19 - cloned 1.git >> ok 20 - mirror 1 OK >> ok 21 - cloned 2.git >> ok 22 - mirror 2 OK >> ok 23 - initialized public-inbox -V2 >> ok 24 - got a single shard on init >> ok 25 - indexed >> ok 26 - index synched minmax >> ok 27 - add msg 10 OK >> ok 28 - add msg 11 OK >> ok 29 - add msg 12 OK >> ok 30 - add msg 13 OK >> ok 31 - add msg 14 OK >> ok 32 - add msg 15 OK >> ok 33 - fetch successful >> ok 34 - fetch successful >> ok 35 - fetch successful >> ok 36 - new message not found in mirror, yet >> ok 37 - index updated >> ok 38 - index synched minmax >> ok 39 - found message in mirror >> ok 40 - purge a message >> ok 41 >> ok 42 - only rewrote one >> ok 43 - read blob to be purged >> ok 44 - purged message gone from origin >> ok 45 - fetch successful >> ok 46 - fetch successful >> ok 47 - fetch successful >> ok 48 - -index --prune >> ok 49 - warned about discontiguous range >> ok 50 - no scary fatal error shown >> ok 51 - purged message not found in mirror >> ok 52 - minmax still synced >> ok 53 - 1@example.com remains visible >> ok 54 - 2@example.com remains visible >> ok 55 - 3@example.com remains visible >> ok 56 - 4@example.com remains visible >> ok 57 - 5@example.com remains visible >> ok 58 - 6@example.com remains visible >> ok 59 - 7@example.com remains visible >> ok 60 - 8@example.com remains visible >> ok 61 - 9@example.com remains visible >> ok 62 - 11@example.com remains visible >> ok 63 - 12@example.com remains visible >> ok 64 - 13@example.com remains visible >> ok 65 - 14@example.com remains visible >> ok 66 - 15@example.com remains visible >> ok 67 - unindex+prune successful in mirror >> ok 68 - no warnings from index_sync after purge >> ok 69 - 1@example.com visible in mirror >> ok 70 - removed <1@example.com> from source >> ok 71 - fetch successful >> ok 72 - fetch successful >> ok 73 - fetch successful >> ok 74 - index ran >> ok 75 - no errors reported by index >> ok 76 - 1@example.com no longer visible in mirror >> ok 77 - large message not indexed >> ok 78 - --sequential-shard works >> ok 79 - got expected shard count >> ok 80 - search works after --sequential-shard >> ok 81 - add big message >> ok 82 - fetch successful >> ok 83 - fetch successful >> ok 84 - fetch successful >> ok 85 - indexed with --max-size >> ok 86 - warned about skipping message >> ok 87 - large message not indexed >> ok 88 - reindexed w/ indexMaxSize in file >> ok 89 - warned about skipping message >> ok 90 - large message not re-indexed >> ok 91 - killed httpd >> 1..91 >> ok >> # messing up all threads with tid=10 >> # messing up all threads with tid=13 >> # messing up all threads with tid=29 >> t/v2reindex.t ................ >> ok 1 - use PublicInbox::V2Writable; >> ok 2 - use PublicInbox::OverIdx; >> ok 3 - message 1 added >> ok 4 - message 2 added >> ok 5 - message 3 added >> ok 6 - message 4 added >> ok 7 - message 5 added >> ok 8 - message 6 added >> ok 9 - message 7 added >> ok 10 - message 8 added >> ok 11 - message 9 added >> ok 12 - message 10 added >> ok 13 - minmax defined >> ok 14 - minmax as expected >> ok 15 - num_highwater as expected >> ok 16 - msgmap as expected >> ok 17 - no error from reindexing >> ok 18 - minmax unchanged >> ok 19 - num_highwater as expected >> ok 20 - msgmap unchanged >> ok 21 - Xapian directories removed >> ok 22 - no error from reindexing >> ok 23 - Xapian directories recreated >> ok 24 - minmax unchanged >> ok 25 - num_highwater as expected >> ok 26 - msgmap unchanged >> ok 27 >> ok 28 - Xapian directories removed again >> ok 29 - no error from reindexing without msgmap >> ok 30 - no warnings from reindexing >> ok 31 - Xapian directories recreated >> ok 32 - minmax unchanged >> ok 33 - num_highwater as expected >> ok 34 - msgmap unchanged >> ok 35 >> ok 36 - Xapian directories removed again >> ok 37 - no error from reindexing without msgmap >> ok 38 - no warnings >> ok 39 - Xapian directories recreated >> ok 40 - minmax unchanged >> ok 41 - num_highwater as expected >> ok 42 - phrase search succeeds on indexlevel=full >> ok 43 - msgmap unchanged >> ok 44 >> ok 45 - Xapian directories removed again >> ok 46 - no error from reindexing without msgmap >> ok 47 - no warnings >> ok 48 - Xapian directories recreated >> ok 49 - minmax unchanged >> ok 50 - num_highwater as expected >> ok 51 - normal search works on indexlevel=medium >> ok 52 - medium is smaller than full >> ok 53 - msgmap unchanged >> ok 54 >> ok 55 - Xapian directories removed again >> ok 56 - no error from reindexing without msgmap >> ok 57 - no warnings >> ok 58 - Xapian directories recreated >> ok 59 - minmax unchanged >> ok 60 - num_highwater as expected >> ok 61 >> ok 62 - basic is smaller than medium >> ok 63 - msgmap unchanged >> ok 64 >> ok 65 - Xapian directories removed again >> ok 66 - no error from reindexing without msgmap >> ok 67 - no warnings >> ok 68 - min as expected >> ok 69 - max as expected >> ok 70 - num_highwater as expected >> ok 71 - msgmap as expected >> ok 72 - no error from reindexing without msgmap >> ok 73 - no warnings >> ok 74 - min as expected >> ok 75 - max as expected >> ok 76 - num_highwater as expected >> ok 77 - msgmap as expected >> ok 78 - no error from reindexing without msgmap >> ok 79 - no warnings >> ok 80 - min as expected >> ok 81 - max as expected >> ok 82 - num_highwater as expected >> ok 83 - msgmap as expected >> ok 84 - no error from reindexing without msgmap >> ok 85 - no warnings >> ok 86 - min as expected >> ok 87 - max as expected >> ok 88 - num_highwater as expected >> ok 89 - msgmap as expected >> ok 90 >> ok 91 - Xapian directories removed again >> ok 92 - no error from reindexing without msgmap >> ok 93 - no warnings >> ok 94 - min as expected >> ok 95 - max as expected >> ok 96 - num_highwater as expected >> ok 97 - msgmap as expected >> ok 98 - no error from reindexing without msgmap >> ok 99 - no warnings >> ok 100 - min as expected >> ok 101 - max as expected >> ok 102 - num_highwater as expected >> ok 103 - msgmap as expected >> ok 104 - no error from reindexing without msgmap >> ok 105 - no warnings >> ok 106 - min as expected >> ok 107 - max as expected >> ok 108 - num_highwater as expected >> ok 109 - msgmap as expected >> ok 110 - no warnings on reindex + rethread >> ok 111 - rethread dropped old threadids >> ok 112 - all tids greater than before >> ok 113 - thread count unchanged >> ok 114 - no error from initial indexing >> ok 115 - no warnings from initial index >> ok 116 - no error from reindexing after reused Message-ID (x3) >> ok 117 - no warnings on reindex >> ok 118 - only one result for `uno' >> ok 119 - only one result for `dos' >> ok 120 - only one result for `tres' >> ok 121 - search on different subjects >> ok 122 - no warnings on reindex + rethread >> ok 123 - rethread dropped old threadids >> ok 124 - all tids greater than before >> ok 125 - thread count unchanged >> ok 126 - no warnings on reindex + rethread >> ok 127 - rethread dropped old threadids >> ok 128 - all tids greater than before >> ok 129 - thread count unchanged >> 1..129 >> ok >> t/v2writable.t ............... >> ok 1 - use PublicInbox::V2Writable; >> ok 2 - one shard when forced >> ok 3 - ordinary message added >> ok 4 - default sharedRepository respected for msgmap.sqlite3 >> ok 5 - default sharedRepository respected for 0 >> ok 6 - default sharedRepository respected for over.sqlite3 >> ok 7 - default sharedRepository respected for over.sqlite3-journal >> ok 8 - default sharedRepository respected for flintlock >> ok 9 - default sharedRepository respected for iamglass >> ok 10 - default sharedRepository respected for postlist.glass >> ok 11 - default sharedRepository respected for termlist.glass >> ok 12 - set sharedRepository in all.git >> ok 13 - child repo inherited core.sharedRepository >> ok 14 - child repo inherited repack.writeBitmaps >> ok 15 - obvious duplicate rejected >> ok 16 - no warning about resent message >> ok 17 - secondary MID ignored if first matches >> ok 18 - secondary MID used if data is different >> ok 19 - warned about mismatch >> ok 20 - warned about alternative >> ok 21 - no new Message-Id added >> ok 22 - reused mid ok >> ok 23 - warned about reused MID >> ok 24 - original mid not changed >> ok 25 - new MID added >> ok 26 - only one new MID added >> ok 27 - no URL-unfriendly chars in Message-Id >> ok 28 - fake added easily >> ok 29 - no warnings from a faker >> ok 30 - random MID made >> ok 31 - warned about using random >> ok 32 - original mid not changed >> ok 33 - new MID added >> ok 34 - only one new MID added >> ok 35 - random MID made for MID free message >> ok 36 - mid was generated >> ok 37 - new generated >> ok 38 - message added with space in Message-Id >> ok 39 >> ok 40 - message with multiple Message-ID >> ok 41 - got expected highwater value >> ok 42 - message found by first MID >> ok 43 - message found by second MID >> ok 44 - same document >> ok 45 - message found by alt MID (NNTP) >> ok 46 - same document >> ok 47 - all alt Message-ID queries give same smsg >> ok 48 - 3 queries, 3 results >> ok 49 - sock created >> ok 50 - MID for 1 is unique in XOVER >> ok 51 - XHDR lookup OK on num 1 >> ok 52 - XHDR lookup OK on MID (1) >> ok 53 - MID for 2 is unique in XOVER >> ok 54 - XHDR lookup OK on num 2 >> ok 55 - XHDR lookup OK on MID (2) >> ok 56 - MID for 3 is unique in XOVER >> ok 57 - XHDR lookup OK on num 3 >> ok 58 - XHDR lookup OK on MID <19931002000000.v4S32va-9R-SabIkPGyZ95yXuV-4aNbw0fT4I4Ep8rM@z> (3) >> ok 59 - MID for 4 is unique in XOVER >> ok 60 - XHDR lookup OK on num 4 >> ok 61 - XHDR lookup OK on MID <19931002000000.VUkdJD5SvuUHFNiHG63fMldnKy0_KbeDqiP2qeREXms@z> (4) >> ok 62 - MID for 5 is unique in XOVER >> ok 63 - XHDR lookup OK on num 5 >> ok 64 - XHDR lookup OK on MID <19931002000000.I0iIPnwPVsBYRQBK-mSDQm42sPU8hOJE1fOvB3O25MA@z> (5) >> ok 65 - MID for 6 is unique in XOVER >> ok 66 - XHDR lookup OK on num 6 >> ok 67 - XHDR lookup OK on MID <19931002000000.BOYi8e-FbvFDX_kh5f1rDPhvEGE-YFwNj1OcRD98Heg@z> (6) >> ok 68 - MID for 7 is unique in XOVER >> ok 69 - XHDR lookup OK on num 7 >> ok 70 - MID for 8 is unique in XOVER >> ok 71 - XHDR lookup OK on num 8 >> ok 72 - XHDR lookup OK on MID (8) >> ok 73 - MID is unique in NEWNEWS >> ok 74 - MID is unique in NEWNEWS >> ok 75 - MID is unique in NEWNEWS >> ok 76 - MID is unique in NEWNEWS >> ok 77 - MID is unique in NEWNEWS >> ok 78 - MID is unique in NEWNEWS >> ok 79 - MID is unique in NEWNEWS >> ok 80 - MID is unique in NEWNEWS >> ok 81 >> ok 82 - num is unique in LISTGROUP >> ok 83 - num is unique in LISTGROUP >> ok 84 - num is unique in LISTGROUP >> ok 85 - num is unique in LISTGROUP >> ok 86 - num is unique in LISTGROUP >> ok 87 - num is unique in LISTGROUP >> ok 88 - num is unique in LISTGROUP >> ok 89 - num is unique in LISTGROUP >> ok 90 - XOVER and LISTGROUPS return the same article numbers >> ok 91 - Xref range OK >> ok 92 - Message-ID range OK >> ok 93 - XROVER range OK >> ok 94 - detected single shard from previous >> ok 95 - removed object returned matches >> ok 96 - mark set >> ok 97 - commit message propagated to git >> ok 98 - only one commit written to git >> ok 99 - no longer in Msgmap by mid >> ok 100 - numeric number in return message >> ok 101 - no longer in Msgmap by num >> ok 102 - no longer found in Xapian >> ok 103 - removal propagated to Over DB >> ok 104 - no new blob introduced >> ok 105 - remove is idempotent >> ok 106 - no git history made with idempotent remove >> ok 107 - ->done is idempotent >> ok 108 - add message to be purged >> ok 109 - purged message >> ok 110 - purge returned current commit >> ok 111 - no-op returns undef >> ok 112 - add excessively long Message-ID >> ok 113 - add excessively long References >> ok 114 - got both messages >> ok 115 - stored truncated mid >> ok 116 - stored truncated ref >> ok 117 - stored truncated mid(2) >> ok 118 - V2Writable fails on non-existent dir >> ok 119 - creat flag works >> ok 120 - init a new epoch >> ok 121 - old contents preserved after adding epoch >> ok 122 - first line is newest epoch >> ok 123 - 0664 is 0664 >> 1..123 >> ok >> t/view.t ..................... >> ok 1 - use PublicInbox::View; >> ok 2 - folded result >> ok 3 - "last, first" no broken >> ok 4 - no addresses lost in translation >> ok 5 - not thrown off by trailing whitespace >> 1..5 >> ok >> t/watch_filter_rubylang.t .... >> ok 1 - use PublicInbox::Watch; >> ok 2 - use PublicInbox::Emergency; >> ok 3 - use PublicInbox::V2Writable; >> ok 4 - public-inbox init OK >> ok 5 - v1 indexed >> ok 6 - found inbox by name >> ok 7 - got one result for alerts:1 >> ok 8 - got expected MID for 1 >> ok 9 - got one result for alerts:2 >> ok 10 - got expected MID for 2 >> ok 11 - got one result for alerts:3 >> ok 12 - got expected MID for 3 >> ok 13 - got one result for alerts:4 >> ok 14 - got expected MID for 4 >> ok 15 - got one result for alerts:5 >> ok 16 - got expected MID for 5 >> ok 17 - got one result for alerts:6 >> ok 18 - got expected MID for 6 >> ok 19 - got one result for alerts:7 >> ok 20 - got expected MID for 7 >> ok 21 - got one result for alerts:8 >> ok 22 - got expected MID for 8 >> ok 23 - got one result for alerts:9 >> ok 24 - got expected MID for 9 >> ok 25 - got one result for alerts:10 >> ok 26 - got expected MID for 10 >> ok 27 - got one result for alerts:11 >> ok 28 - got expected MID for 11 >> ok 29 - got one result for alerts:12 >> ok 30 - got expected MID for 12 >> ok 31 - got one result for alerts:13 >> ok 32 - got expected MID for 13 >> ok 33 - got one result for alerts:14 >> ok 34 - got expected MID for 14 >> ok 35 - got one result for alerts:15 >> ok 36 - got expected MID for 15 >> ok 37 - got spam message >> ok 38 >> ok 39 >> ok 40 >> ok 41 - spam removed >> ok 42 - no warnings >> ok 43 - public-inbox init OK >> ok 44 - found inbox by name >> ok 45 - got one result for alerts:1 >> ok 46 - got expected MID for 1 >> ok 47 - got one result for alerts:2 >> ok 48 - got expected MID for 2 >> ok 49 - got one result for alerts:3 >> ok 50 - got expected MID for 3 >> ok 51 - got one result for alerts:4 >> ok 52 - got expected MID for 4 >> ok 53 - got one result for alerts:5 >> ok 54 - got expected MID for 5 >> ok 55 - got one result for alerts:6 >> ok 56 - got expected MID for 6 >> ok 57 - got one result for alerts:7 >> ok 58 - got expected MID for 7 >> ok 59 - got one result for alerts:8 >> ok 60 - got expected MID for 8 >> ok 61 - got one result for alerts:9 >> ok 62 - got expected MID for 9 >> ok 63 - got one result for alerts:10 >> ok 64 - got expected MID for 10 >> ok 65 - got one result for alerts:11 >> ok 66 - got expected MID for 11 >> ok 67 - got one result for alerts:12 >> ok 68 - got expected MID for 12 >> ok 69 - got one result for alerts:13 >> ok 70 - got expected MID for 13 >> ok 71 - got one result for alerts:14 >> ok 72 - got expected MID for 14 >> ok 73 - got one result for alerts:15 >> ok 74 - got expected MID for 15 >> ok 75 - got spam message >> ok 76 >> ok 77 >> ok 78 >> ok 79 - spam removed >> ok 80 - no warnings >> 1..80 >> ok >> t/watch_imap.t ............... >> ok 1 - use PublicInbox::Watch; >> ok 2 - watched an inbox >> ok 3 - watched spam folder >> 1..3 >> ok >> # waiting 1s for -watch to start up >> # waiting for -watch to import new message >> # message delivered to `test' >> t/watch_maildir.t ............ >> ok 1 - use PublicInbox::Watch; >> ok 2 - use PublicInbox::Emergency; >> ok 3 - create FIFO to ensure we do not get stuck on it :P >> ok 4 - got warning about spam >> ok 5 - only got the spam folder to watch >> ok 6 - one revision in rev-list >> ok 7 - no spam existing >> ok 8 >> ok 9 >> ok 10 >> ok 11 - unlinked old spam >> ok 12 - two revisions in rev-list >> ok 13 - tree is empty >> ok 14 - unlinked trained spam >> ok 15 - tree has one file >> ok 16 - message scrubbed on import >> ok 17 - unlinked spam >> ok 18 - no spam existing >> ok 19 >> ok 20 >> ok 21 >> ok 22 - tree is empty >> ok 23 - four revisions in rev-list >> ok 24 - unlinked trained spam >> ok 25 - mock spamc exists >> ok 26 - tree has no files spamc checked >> ok 27 >> ok 28 - mock spamc exists >> ok 29 - tree has one file after spamc checked >> ok 30 - message scrubbed on import >> ok 31 - use PublicInbox::InboxIdle; >> ok 32 - use PublicInbox::DS; >> ok 33 - new commit made >> ok 34 - extra slash gone >> ok 35 - trailing slash gone >> ok 36 - non-maildir rejected >> 1..36 >> ok >> t/watch_maildir_v2.t ......... >> ok 1 - use PublicInbox::Watch; >> ok 2 - use PublicInbox::Emergency; >> ok 3 - public-inbox init OK >> ok 4 - create FIFO to ensure we do not get stuck on it :P >> ok 5 - found inbox by name >> ok 6 - got one revision >> ok 7 - no spam existing >> ok 8 >> ok 9 >> ok 10 >> ok 11 - unlinked old spam >> ok 12 - deleted file >> ok 13 - unlinked trained spam >> ok 14 - got one file back >> ok 15 - message scrubbed on import >> ok 16 - unlinked spam >> ok 17 - no spam existing >> ok 18 >> ok 19 >> ok 20 >> ok 21 - inbox is empty again >> ok 22 - unlinked trained spam >> ok 23 - mock spamc exists >> ok 24 - inbox is still empty >> ok 25 >> ok 26 - mock spamc exists >> ok 27 - inbox has one mail after spamc OK-ed a message >> ok 28 - message scrubbed on import >> ok 29 - diff postimage found >> ok 30 - diff preimage found >> ok 31 - diff preimage found >> ok 32 - same message >> ok 33 - got original message back from v1 >> ok 34 - got original message back from v2 >> ok 35 - List-ID matched for watch >> ok 36 - unaccepted List-ID matched for watch >> ok 37 - X-Mailing-List matched >> 1..37 >> ok >> t/watch_multiple_headers.t ... >> ok 1 - use PublicInbox::Watch; >> ok 2 - use PublicInbox::Emergency; >> ok 3 - public-inbox init OK >> ok 4 - found inbox by name >> ok 5 - Matched for address in To: >> ok 6 - Matched for address in Cc: >> ok 7 - No match without address in To: or Cc: >> 1..7 >> ok >> t/watch_nntp.t ............... >> ok 1 - use PublicInbox::Watch; >> ok 2 - lowercased >> ok 3 - nntps:// accepted >> ok 4 - snews => nntps >> 1..4 >> ok >> t/www_altid.t ................ skipped: sqlite3 binary missing >> t/www_listing.t .............. >> ok 1 - use PublicInbox::Git; >> ok 2 - empty repo has no fingerprint >> ok 3 - fast-import >> ok 4 - got fingerprint with non-empty repo >> ok 5 - sock created >> ok 6 - clone shared repo >> ok 7 - clone epoch 0 >> ok 8 - clone epoch 1 >> ok 9 - clone epoch 2 >> ok 10 - mock a v2 inbox >> ok 11 - set gitweb user >> ok 12 - removed bare/description >> ok 13 - got HTML listing >> ok 14 - listing looks like HTML >> ok 15 - got gzipped HTML listing >> ok 16 - unzipped listing looks like HTML >> ok 17 - got manifest >> ok 18 - modified is an integer >> ok 19 - /alt in manifest >> ok 20 - owner set >> ok 21 - reference detected >> ok 22 - description read >> ok 23 - /bare in manifest >> ok 24 - missing $GIT_DIR/description fallback >> ok 25 - fingerprint >> ok 26 - fingerprint matches >> ok 27 - modified field and Last-Modified header match >> ok 28 - v2 epoch 0 appeared >> ok 29 - epoch 0 in description >> ok 30 - v2 epoch 1 appeared >> ok 31 - epoch 1 in description >> ok 32 # skip skipping grok-pull integration test >> ok 33 # skip skipping grok-pull integration test >> 1..33 >> ok >> t/www_static.t ............... >> ok 1 - use HTTP::Request::Common; >> ok 2 - use Plack::Test; >> ok 3 - use URI::Escape; >> ok 4 - use PublicInbox::WwwStatic; >> ok 5 - 404 on "/" by default >> ok 6 - 200 with index.html >> ok 7 - default index.html returned >> ok 8 - 200 on HEAD / >> ok 9 - no content >> ok 10 - content-length set >> ok 11 - content-type is html >> ok 12 - 200 with autoindex default >> ok 13 - got listing with index.html >> ok 14 - no updir at / >> ok 15 - 200 with autoindex for dir/ >> ok 16 - updir at /dir/ >> ok 17 - `/../' traversal rejected >> ok 18 - `..' traversal rejected >> ok 19 - `/dir/..' traversal rejected >> ok 20 - `/dir/../' traversal rejected >> ok 21 - 302 w/o slash >> ok 22 - redirected w/ slash >> ok 23 - .gz file hidden if mtime matches uncompressed >> ok 24 - uncompressed foo shown >> ok 25 - using file as dir fails >> ok 26 - .gz shown when no uncompressed version exists >> ok 27 - uncompressed foo shown >> ok 28 - gzipped foo shown on mtime mismatch >> ok 29 - got uncompressed on mtime mismatch >> ok 30 - got compressed on mtime match >> ok 31 - got HTML start after gunzip >> ok 32 - got HTML end after gunzip >> 1..32 >> ok >> t/xcpdb-reshard.t ............ >> ok 1 - message 1 added >> ok 2 - message 2 added >> ok 3 - message 3 added >> ok 4 - message 4 added >> ok 5 - message 5 added >> ok 6 - message 6 added >> ok 7 - message 7 added >> ok 8 - message 8 added >> ok 9 - message 9 added >> ok 10 - message 10 added >> ok 11 - message 11 added >> ok 12 - message 12 added >> ok 13 - message 13 added >> ok 14 - got expected shards >> ok 15 - xcpdb -R2 >> ok 16 - resharded to two shards >> ok 17 - got expected docs after resharding >> ok 18 - 1 exists >> ok 19 - 2 exists >> ok 20 - 3 exists >> ok 21 - 4 exists >> ok 22 - 5 exists >> ok 23 - 6 exists >> ok 24 - 7 exists >> ok 25 - 8 exists >> ok 26 - 9 exists >> ok 27 - 10 exists >> ok 28 - 11 exists >> ok 29 - 12 exists >> ok 30 - 13 exists >> ok 31 - saw \#2 >> ok 32 - saw \#4 >> ok 33 - saw \#6 >> ok 34 - saw \#8 >> ok 35 - saw \#10 >> ok 36 - saw \#12 >> ok 37 - saw \#1 >> ok 38 - saw \#3 >> ok 39 - saw \#5 >> ok 40 - saw \#7 >> ok 41 - saw \#9 >> ok 42 - saw \#11 >> ok 43 - saw \#13 >> ok 44 - all docids seen >> ok 45 - xcpdb -R4 >> ok 46 - resharded to two shards >> ok 47 - got expected docs after resharding >> ok 48 - 1 exists >> ok 49 - 2 exists >> ok 50 - 3 exists >> ok 51 - 4 exists >> ok 52 - 5 exists >> ok 53 - 6 exists >> ok 54 - 7 exists >> ok 55 - 8 exists >> ok 56 - 9 exists >> ok 57 - 10 exists >> ok 58 - 11 exists >> ok 59 - 12 exists >> ok 60 - 13 exists >> ok 61 - saw \#4 >> ok 62 - saw \#8 >> ok 63 - saw \#12 >> ok 64 - saw \#1 >> ok 65 - saw \#5 >> ok 66 - saw \#9 >> ok 67 - saw \#13 >> ok 68 - saw \#2 >> ok 69 - saw \#6 >> ok 70 - saw \#10 >> ok 71 - saw \#3 >> ok 72 - saw \#7 >> ok 73 - saw \#11 >> ok 74 - all docids seen >> ok 75 - xcpdb -R1 >> ok 76 - resharded to two shards >> ok 77 - got expected docs after resharding >> ok 78 - 1 exists >> ok 79 - 2 exists >> ok 80 - 3 exists >> ok 81 - 4 exists >> ok 82 - 5 exists >> ok 83 - 6 exists >> ok 84 - 7 exists >> ok 85 - 8 exists >> ok 86 - 9 exists >> ok 87 - 10 exists >> ok 88 - 11 exists >> ok 89 - 12 exists >> ok 90 - 13 exists >> ok 91 - saw \#1 >> ok 92 - saw \#2 >> ok 93 - saw \#3 >> ok 94 - saw \#4 >> ok 95 - saw \#5 >> ok 96 - saw \#6 >> ok 97 - saw \#7 >> ok 98 - saw \#8 >> ok 99 - saw \#9 >> ok 100 - saw \#10 >> ok 101 - saw \#11 >> ok 102 - saw \#12 >> ok 103 - saw \#13 >> ok 104 - all docids seen >> ok 105 - xcpdb -R3 >> ok 106 - resharded to two shards >> ok 107 - got expected docs after resharding >> ok 108 - 1 exists >> ok 109 - 2 exists >> ok 110 - 3 exists >> ok 111 - 4 exists >> ok 112 - 5 exists >> ok 113 - 6 exists >> ok 114 - 7 exists >> ok 115 - 8 exists >> ok 116 - 9 exists >> ok 117 - 10 exists >> ok 118 - 11 exists >> ok 119 - 12 exists >> ok 120 - 13 exists >> ok 121 - saw \#3 >> ok 122 - saw \#6 >> ok 123 - saw \#9 >> ok 124 - saw \#12 >> ok 125 - saw \#1 >> ok 126 - saw \#4 >> ok 127 - saw \#7 >> ok 128 - saw \#10 >> ok 129 - saw \#13 >> ok 130 - saw \#2 >> ok 131 - saw \#5 >> ok 132 - saw \#8 >> ok 133 - saw \#11 >> ok 134 - all docids seen >> ok 135 - xcpdb -R3 >> ok 136 - resharded to two shards >> ok 137 - got expected docs after resharding >> ok 138 - 1 exists >> ok 139 - 2 exists >> ok 140 - 3 exists >> ok 141 - 4 exists >> ok 142 - 5 exists >> ok 143 - 6 exists >> ok 144 - 7 exists >> ok 145 - 8 exists >> ok 146 - 9 exists >> ok 147 - 10 exists >> ok 148 - 11 exists >> ok 149 - 12 exists >> ok 150 - 13 exists >> ok 151 - saw \#3 >> ok 152 - saw \#6 >> ok 153 - saw \#9 >> ok 154 - saw \#12 >> ok 155 - saw \#1 >> ok 156 - saw \#4 >> ok 157 - saw \#7 >> ok 158 - saw \#10 >> ok 159 - saw \#13 >> ok 160 - saw \#2 >> ok 161 - saw \#5 >> ok 162 - saw \#8 >> ok 163 - saw \#11 >> ok 164 - all docids seen >> 1..164 >> ok >> >> Test Summary Report >> ------------------- >> t/eml.t (Wstat: 256 Tests: 146 Failed: 1) >> Failed test: 144 >> Non-zero exit status: 1 >> Files=108, Tests=3976, 67 wallclock secs ( 0.37 usr 0.13 sys + 21.69 cusr 9.40 csys = 31.59 CPU) >> Result: FAIL >> Failed 1/108 test programs. 1/3976 subtests failed. >> make[1]: *** [Makefile:1064: test_dynamic] Error 255 >> make[1]: Leaving directory '/<>' >> dh_auto_test: error: make -j4 test TEST_VERBOSE=1 returned exit code 2 > > > The full build log is available from: > http://qa-logs.debian.net/2021/12/20/public-inbox_1.6.1-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.