From 1607ac966f604ec4cf383025c4c3ee296f638fff Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 10 Sep 2023 07:13:11 +0000 Subject: [PATCH 04/11] tests: port reopen logs test over to Perl 5 Being able to do subsecond sleeps is one welcome advantage over POSIX (not GNU) sleep(1) in portable Bourne sh. --- t/{t0006.ru => reopen-logs.ru} | 0 t/reopen-logs.t | 43 ++++++++++++++++++ t/t0006-reopen-logs.sh | 83 ---------------------------------- 3 files changed, 43 insertions(+), 83 deletions(-) rename t/{t0006.ru => reopen-logs.ru} (100%) create mode 100644 t/reopen-logs.t delete mode 100755 t/t0006-reopen-logs.sh diff --git a/t/t0006.ru b/t/reopen-logs.ru similarity index 100% rename from t/t0006.ru rename to t/reopen-logs.ru diff --git a/t/reopen-logs.t b/t/reopen-logs.t new file mode 100644 index 00000000..e1bf524c --- /dev/null +++ b/t/reopen-logs.t @@ -0,0 +1,43 @@ +#!perl -w +# Copyright (C) unicorn hackers +# License: GPL-3.0+ +use v5.14; BEGIN { require './t/lib.perl' }; +use autodie; +my $srv = tcp_server(); +my $u_conf = "$tmpdir/u.conf.rb"; +my $out_log = "$tmpdir/out.log"; +open my $fh, '>', $u_conf; +print $fh < $srv } ); +my $c = tcp_start($srv, 'GET / HTTP/1.0'); +my ($status, $hdr) = slurp_hdr($c); +my $bdy = do { local $/; <$c> }; +is($bdy, "true\n", 'logs opened'); + +rename($err_log, "$err_log.rot"); +rename($out_log, "$out_log.rot"); + +$auto_reap->do_kill('USR1'); + +my $tries = 1000; +while (!-f $err_log && --$tries) { select undef, undef, undef, 0.01 }; +while (!-f $out_log && --$tries) { select undef, undef, undef, 0.01 }; + +ok(-f $out_log, 'stdout_path recreated after USR1'); +ok(-f $err_log, 'stderr_path recreated after USR1'); + +$c = tcp_start($srv, 'GET / HTTP/1.0'); +($status, $hdr) = slurp_hdr($c); +$bdy = do { local $/; <$c> }; +is($bdy, "true\n", 'logs reopened with sync==true'); + +$auto_reap->join('QUIT'); +is($?, 0, 'no error on exit'); +check_stderr; +undef $tmpdir; +done_testing; diff --git a/t/t0006-reopen-logs.sh b/t/t0006-reopen-logs.sh deleted file mode 100755 index a6e7a17c..00000000