Still a lot more work to do, but at least socat is no longer a test dependency. Perl5 is installed on far more systems than socat. Ruby introduces breaking changes every year and I can't trust tests to work as they were originally intended, anymore. Perl 5 doesn't have perfect backwards compatibility, either; but it's the least bad of any widely-installed scripting language. Note: that 23/23 introduces a subtle bugfix which changes behavior for systemd users Patches are attached to reduce load on SMTP servers. Some more patches to come as I deal with Ruby 3.x deprecation warnings :< Eric Wong (23): switch unit/test_response.rb to Perl 5 integration test support rack 3 multi-value headers port t0018-write-on-close.sh to Perl 5 port t0000-http-basic.sh to Perl 5 port t0002-parser-error.sh to Perl 5 t/integration.t: use start_req to simplify test slighly port t0011-active-unix-socket.sh to Perl 5 port t0100-rack-input-tests.sh to Perl 5 tests: use autodie to simplify error checking port t0019-max_header_len.sh to Perl 5 test_exec: drop sd_listen_fds emulation test test_exec: drop test_basic and test_config_ru_alt_path tests: check_stderr consistently in Perl 5 tests tests: consistent tcp_start and unix_start across Perl 5 tests port t9000-preread-input.sh to Perl 5 port t/t0116-client_body_buffer_size.sh to Perl 5 tests: get rid of sha1sum.rb and rsha1() sh function early_hints supports Rack 3 array headers test_server: drop early_hints test t/integration.t: switch PUT tests to MD5, reuse buffers tests: move test_upload.rb tests to t/integration.t drop redundant IO#close_on_exec=false calls LISTEN_FDS-inherited sockets are immortal across SIGHUP GNUmakefile | 7 +- lib/unicorn/http_server.rb | 12 +- t/README | 21 +- t/active-unix-socket.t | 113 +++++++ t/bin/content-md5-put | 36 --- t/bin/sha1sum.rb | 17 -- t/{t0116.ru => client_body_buffer_size.ru} | 2 - t/client_body_buffer_size.t | 82 ++++++ t/integration.ru | 114 +++++++ t/integration.t | 326 +++++++++++++++++++++ t/lib.perl | 217 ++++++++++++++ t/preread_input.ru | 21 +- t/rack-input-tests.ru | 21 -- t/t0000-http-basic.sh | 50 ---- t/t0002-parser-error.sh | 94 ------ t/t0011-active-unix-socket.sh | 79 ----- t/t0018-write-on-close.sh | 23 -- t/t0019-max_header_len.sh | 49 ---- t/t0100-rack-input-tests.sh | 124 -------- t/t0116-client_body_buffer_size.sh | 80 ----- t/t9000-preread-input.sh | 48 --- t/test-lib.sh | 4 - t/write-on-close.ru | 11 - test/exec/test_exec.rb | 57 ---- test/unit/test_response.rb | 111 ------- test/unit/test_server.rb | 31 -- test/unit/test_upload.rb | 301 ------------------- 27 files changed, 891 insertions(+), 1160 deletions(-) create mode 100644 t/active-unix-socket.t delete mode 100755 t/bin/content-md5-put delete mode 100755 t/bin/sha1sum.rb rename t/{t0116.ru => client_body_buffer_size.ru} (82%) create mode 100644 t/client_body_buffer_size.t create mode 100644 t/integration.ru create mode 100644 t/integration.t create mode 100644 t/lib.perl delete mode 100644 t/rack-input-tests.ru delete mode 100755 t/t0000-http-basic.sh delete mode 100755 t/t0002-parser-error.sh delete mode 100755 t/t0011-active-unix-socket.sh delete mode 100755 t/t0018-write-on-close.sh delete mode 100755 t/t0019-max_header_len.sh delete mode 100755 t/t0100-rack-input-tests.sh delete mode 100755 t/t0116-client_body_buffer_size.sh delete mode 100755 t/t9000-preread-input.sh delete mode 100644 t/write-on-close.ru delete mode 100644 test/unit/test_response.rb delete mode 100644 test/unit/test_upload.rb