commit afd0bc24476be06e841bf83cb870b353f0a044b7 [browse]
Author: Eric Wong
Date: 2020-04-17 08:41:23 Z

public-inbox 1.4.0

commit f90a619ee52ee6211c36e395401434e4c927f5c4 [browse]
Author: Eric Wong
Date: 2020-04-17 05:22:54 Z

t/httpd-unix: skip some tests w/o signalfd|EVFILT_SIGNAL

Some of these tests just don't seem reliable enough with the
way we or Perl do portable signal handling.

commit c7b4cbdadf3116a077dbd50e3b7850001598bdee [browse]
Author: Eric Wong
Date: 2020-04-16 00:29:38 Z

t/httpd-corner: improve reliability and diagnostics

The graceful-shutdown-on-PUT test is unreliable because we can't
rely on a FIFO as we do with the GET tests.  So increase the
delay to 100ms since that seems enough on my system even with
CONFIG_HZ=100.

Add a timeout and backtrace to the $check_self sub to help with
further diagnostics while we're at it, too.

It would be nice if there were a portable syscall tracing
mechanism we could attach to the -httpd process to make the test
more determistic...

commit 6645b8d288752cc94324efeffe68ce8a704598a3 [browse]
Author: Eric Wong
Date: 2020-04-11 10:53:30 Z

t/httpd-corner.t: relax read-after-failed-write handling

I've observed FreeBSD 11.2 read(2) having one of three
behaviors after a failed write(2) on a socket:

1) returning number of bytes read
2) failing with ECONNRESET
3) returning with EOF

1) is the most common, and I've only seen 1) on Linux.  It may
be possible to use SO_LINGER or shutdown(2) to ensure 1) always
happens, but SO_LINGER behavior seems inconsistent across OSes,
especially with non-blocking sockets.

Since these tests are corner-cases where we're dealing with
broken/malicious clients, lets continue spending the least
amount of syscalls protecting ourselves in the daemon and
instead make the client-side test code tolerate more socket
implementations.

commit daab9cf0b8fcd66d1cb7f62f7ea9a8b0e32320ef [browse]
Author: Eric Wong
Date: 2020-04-11 10:53:29 Z

t/*.t: localize $SIG{__WARN__} changes

We don't want to propagate %SIG changes to other tests when
running multiple tests within the same process via t/run.perl.

clone the repository to get more history