diff --git a/lib/net/imap/response_reader.rb b/lib/net/imap/response_reader.rb index 78930b01..139739d6 100644 --- a/lib/net/imap/response_reader.rb +++ b/lib/net/imap/response_reader.rb @@ -70,11 +70,10 @@ def min_response_remaining empty? ? 3 : done? ? 0 : (literal_size || 0) + 2 end - def guard_response_too_large! = (raise self if response_too_large?) - - def exception(msg = nil) - ResponseTooLargeError.new( - msg, max_response_size:, bytes_read:, literal_size:, + def guard_response_too_large! + return unless response_too_large? + raise ResponseTooLargeError.new( + max_response_size:, bytes_read:, literal_size:, ) end diff --git a/test/net/imap/fake_server/test_helper.rb b/test/net/imap/fake_server/test_helper.rb index 8a91939e..0cc05907 100644 --- a/test/net/imap/fake_server/test_helper.rb +++ b/test/net/imap/fake_server/test_helper.rb @@ -16,6 +16,7 @@ module Net::IMAP::FakeServer::TestHelper def run_fake_server_in_thread(ignore_io_error: false, report_on_exception: true, timeout: 10, **opts) + timeout *= EnvUtil.timeout_scale || 1 if defined?(EnvUtil.timeout_scale) Timeout.timeout(timeout) do server = Net::IMAP::FakeServer.new(timeout: timeout, **opts) @threads << Thread.new do diff --git a/test/net/imap/test_imap_max_response_size.rb b/test/net/imap/test_imap_max_response_size.rb index ffb305b5..45aa1d95 100644 --- a/test/net/imap/test_imap_max_response_size.rb +++ b/test/net/imap/test_imap_max_response_size.rb @@ -36,6 +36,7 @@ class IMAPMaxResponseSizeTest < Net::IMAP::TestCase Net::IMAP.config.max_response_size = 1<<20 with_fake_server(preauth: false, ignore_io_error: true) do |server, client| client.max_response_size = 50 + client.noop # will reset response_reader, so the above config takes effect server.on("NOOP") do |resp| resp.untagged("1 FETCH (BODY[] {1000}\r\n" + "a" * 1000 + ")") end