From 8039f96032e5f7c7db2c9bc8e8c062bcc1e8f0a4 Mon Sep 17 00:00:00 2001 From: Nate Berkopec Date: Mon, 2 Sep 2019 15:04:10 +0000 Subject: [PATCH] Revert "Avoid mutating global STDOUT & STDERR (#1837)" This reverts commit 70b28bb5dd5a9ea34bbb49d044913f8ad02e90e5. --- lib/puma/events.rb | 4 ++-- test/test_events.rb | 14 +++----------- test/test_tcp_logger.rb | 1 - 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/lib/puma/events.rb b/lib/puma/events.rb index 63271e0967..b255f2613f 100644 --- a/lib/puma/events.rb +++ b/lib/puma/events.rb @@ -29,8 +29,8 @@ def call(str) # def initialize(stdout, stderr) @formatter = DefaultFormatter.new - @stdout = stdout.dup - @stderr = stderr.dup + @stdout = stdout + @stderr = stderr @stdout.sync = true @stderr.sync = true diff --git a/test/test_events.rb b/test/test_events.rb index 676ece6af1..f966253514 100644 --- a/test/test_events.rb +++ b/test/test_events.rb @@ -6,6 +6,7 @@ def test_null assert_instance_of Puma::NullIO, events.stdout assert_instance_of Puma::NullIO, events.stderr + assert_equal events.stdout, events.stderr end def test_strings @@ -18,17 +19,8 @@ def test_strings def test_stdio events = Puma::Events.stdio - # events.stdout is a dup, so same file handle, different ruby object, but inspect should show the same file handle - assert_equal STDOUT.inspect, events.stdout.inspect - assert_equal STDERR.inspect, events.stderr.inspect - end - - def test_stdio_respects_sync - STDOUT.sync = false - events = Puma::Events.stdio - - assert !STDOUT.sync - assert events.stdout.sync + assert_equal STDOUT, events.stdout + assert_equal STDERR, events.stderr end def test_register_callback_with_block diff --git a/test/test_tcp_logger.rb b/test/test_tcp_logger.rb index ff9bf06994..e6b31f7a13 100644 --- a/test/test_tcp_logger.rb +++ b/test/test_tcp_logger.rb @@ -18,7 +18,6 @@ def test_events # in lib/puma/launcher.rb:85 # Puma::Events is default tcp_logger for cluster mode logger = Puma::Events.new(STDOUT, STDERR) - logger.instance_variable_set(:@stdout, $stdout) # ensure capture_process_io has access to the loggers output out, err = capture_subprocess_io do Puma::TCPLogger.new(logger, @server.app).call({}, @socket) end