diff options
Diffstat (limited to 'test/rubygems/test_gem_remote_fetcher.rb')
-rw-r--r-- | test/rubygems/test_gem_remote_fetcher.rb | 245 |
1 files changed, 127 insertions, 118 deletions
diff --git a/test/rubygems/test_gem_remote_fetcher.rb b/test/rubygems/test_gem_remote_fetcher.rb index 5f54230c77..e71b2f5ff6 100644 --- a/test/rubygems/test_gem_remote_fetcher.rb +++ b/test/rubygems/test_gem_remote_fetcher.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true + require_relative "helper" require "webrick" @@ -28,7 +29,7 @@ require "rubygems/package" class TestGemRemoteFetcher < Gem::TestCase include Gem::DefaultUserInteraction - SERVER_DATA = <<-EOY.freeze + SERVER_DATA = <<-EOY --- !ruby/object:Gem::Cache gems: rake-0.4.11: !ruby/object:Gem::Specification @@ -161,7 +162,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== end def test_cache_update_path - uri = URI "http://example/file" + uri = Gem::URI "http://example/file" path = File.join @tempdir, "file" fetcher = util_fuck_with_fetcher "hello" @@ -175,7 +176,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def test_cache_update_path_with_utf8_internal_encoding with_internal_encoding("UTF-8") do - uri = URI "http://example/file" + uri = Gem::URI "http://example/file" path = File.join @tempdir, "file" data = String.new("\xC8").force_encoding(Encoding::BINARY) @@ -189,7 +190,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== end def test_cache_update_path_no_update - uri = URI "http://example/file" + uri = Gem::URI "http://example/file" path = File.join @tempdir, "file" fetcher = util_fuck_with_fetcher "hello" @@ -205,12 +206,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== fetcher = Gem::RemoteFetcher.fetcher fetcher.instance_variable_set :@test_data, data - unless blow - def fetcher.fetch_path(arg, *rest) - @test_arg = arg - @test_data - end - else + if blow def fetcher.fetch_path(arg, *rest) # OMG I'm such an ass class << self; remove_method :fetch_path; end @@ -221,6 +217,11 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== raise Gem::RemoteFetcher::FetchError.new("haha!", "") end + else + def fetcher.fetch_path(arg, *rest) + @test_arg = arg + @test_data + end end fetcher @@ -310,6 +311,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== end def test_download_local + omit "doesn't work if tempdir has +" if @tempdir.include?("+") FileUtils.mv @a1_gem, @tempdir local_path = File.join @tempdir, @a1.file_name inst = nil @@ -322,6 +324,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== end def test_download_local_space + omit "doesn't work if tempdir has +" if @tempdir.include?("+") space_path = File.join @tempdir, "space path" FileUtils.mkdir space_path FileUtils.mv @a1_gem, space_path @@ -336,9 +339,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== end def test_download_install_dir - a1_data = File.open @a1_gem, "rb" do |fp| - fp.read - end + a1_data = File.open @a1_gem, "rb", &:read fetcher = util_fuck_with_fetcher a1_data @@ -355,14 +356,19 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== assert File.exist?(a1_cache_gem) end - unless win_platform? || Process.uid.zero? # File.chmod doesn't work + unless Gem.win_platform? || Process.uid.zero? # File.chmod doesn't work def test_download_local_read_only + omit "doesn't work if tempdir has +" if @tempdir.include?("+") FileUtils.mv @a1_gem, @tempdir local_path = File.join @tempdir, @a1.file_name inst = nil - FileUtils.chmod 0555, @a1.cache_dir - FileUtils.mkdir_p File.join(Gem.user_dir, "cache") rescue nil - FileUtils.chmod 0555, File.join(Gem.user_dir, "cache") + FileUtils.chmod 0o555, @a1.cache_dir + begin + FileUtils.mkdir_p File.join(Gem.user_dir, "cache") + rescue StandardError + nil + end + FileUtils.chmod 0o555, File.join(Gem.user_dir, "cache") Dir.chdir @tempdir do inst = Gem::RemoteFetcher.fetcher @@ -371,21 +377,23 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== assert_equal(File.join(@tempdir, @a1.file_name), inst.download(@a1, local_path)) ensure - FileUtils.chmod 0755, File.join(Gem.user_dir, "cache") - FileUtils.chmod 0755, @a1.cache_dir + if local_path + FileUtils.chmod 0o755, File.join(Gem.user_dir, "cache") + FileUtils.chmod 0o755, @a1.cache_dir + end end def test_download_read_only - FileUtils.chmod 0555, @a1.cache_dir - FileUtils.chmod 0555, @gemhome + FileUtils.chmod 0o555, @a1.cache_dir + FileUtils.chmod 0o555, @gemhome fetcher = util_fuck_with_fetcher File.read(@a1_gem) fetcher.download(@a1, "http://gems.example.com") a1_cache_gem = File.join Gem.user_dir, "cache", @a1.file_name assert File.exist? a1_cache_gem ensure - FileUtils.chmod 0755, @gemhome - FileUtils.chmod 0755, @a1.cache_dir + FileUtils.chmod 0o755, @gemhome + FileUtils.chmod 0o755, @a1.cache_dir end end @@ -415,6 +423,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== end def test_download_same_file + omit "doesn't work if tempdir has +" if @tempdir.include?("+") FileUtils.mv @a1_gem, @tempdir local_path = File.join @tempdir, @a1.file_name inst = nil @@ -535,8 +544,8 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== fetcher.fetch_path url end - assert_match %r{ECONNREFUSED:.*connect\(2\) \(#{Regexp.escape url}\)\z}, - e.message + assert_match(/ECONNREFUSED:.*connect\(2\) \(#{Regexp.escape url}\)\z/, + e.message) assert_equal url, e.uri end @@ -545,7 +554,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== @fetcher = fetcher def fetcher.fetch_http(uri, mtime = nil, head = nil) - raise Timeout::Error, "timed out" + raise Gem::Timeout::Error, "timed out" end url = "http://example.com/uri" @@ -554,8 +563,8 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== fetcher.fetch_path url end - assert_match %r{Timeout::Error: timed out \(#{Regexp.escape url}\)\z}, - e.message + assert_match(/Gem::Timeout::Error: timed out \(#{Regexp.escape url}\)\z/, + e.message) assert_equal url, e.uri end @@ -573,8 +582,8 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== fetcher.fetch_path url end - assert_match %r{SocketError: getaddrinfo: nodename nor servname provided \(#{Regexp.escape url}\)\z}, - e.message + assert_match(/SocketError: getaddrinfo: nodename nor servname provided \(#{Regexp.escape url}\)\z/, + e.message) assert_equal url, e.uri end @@ -604,7 +613,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== nil end - assert_nil fetcher.fetch_path(URI.parse(@gem_repo), Time.at(0)) + assert_nil fetcher.fetch_path(Gem::URI.parse(@gem_repo), Time.at(0)) end def test_implicit_no_proxy @@ -649,19 +658,20 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def fetcher.request(uri, request_class, last_modified = nil) url = "http://gems.example.com/redirect" - unless defined? @requested + if defined? @requested + res = Gem::Net::HTTPOK.new nil, 200, nil + def res.body + "real_path" + end + else @requested = true - res = Net::HTTPMovedPermanently.new nil, 301, nil + res = Gem::Net::HTTPMovedPermanently.new nil, 301, nil res.add_field "Location", url - res - else - res = Net::HTTPOK.new nil, 200, nil - def res.body() "real_path" end - res end + res end - data = fetcher.fetch_http URI.parse(url) + data = fetcher.fetch_http Gem::URI.parse(url) assert_equal "real_path", data end @@ -673,13 +683,13 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def fetcher.request(uri, request_class, last_modified = nil) url = "http://gems.example.com/redirect" - res = Net::HTTPMovedPermanently.new nil, 301, nil + res = Gem::Net::HTTPMovedPermanently.new nil, 301, nil res.add_field "Location", url res end e = assert_raise Gem::RemoteFetcher::FetchError do - fetcher.fetch_http URI.parse(url) + fetcher.fetch_http Gem::URI.parse(url) end assert_equal "too many redirects (#{url})", e.message @@ -691,12 +701,12 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== url = "http://gems.example.com/redirect" def fetcher.request(uri, request_class, last_modified = nil) - res = Net::HTTPMovedPermanently.new nil, 301, nil + res = Gem::Net::HTTPMovedPermanently.new nil, 301, nil res end e = assert_raise Gem::RemoteFetcher::FetchError do - fetcher.fetch_http URI.parse(url) + fetcher.fetch_http Gem::URI.parse(url) end assert_equal "redirecting but no redirect location was given (#{url})", e.message @@ -704,7 +714,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def test_fetch_http_with_additional_headers ENV["http_proxy"] = @proxy_uri - ENV["no_proxy"] = URI::parse(@server_uri).host + ENV["no_proxy"] = Gem::URI.parse(@server_uri).host fetcher = Gem::RemoteFetcher.new nil, nil, { "X-Captain" => "murphy" } @fetcher = fetcher assert_equal "murphy", fetcher.fetch_path(@server_uri) @@ -718,8 +728,10 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def fetcher.request(uri, request_class, last_modified = nil) $fetched_uri = uri - res = Net::HTTPOK.new nil, 200, nil - def res.body() "success" end + res = Gem::Net::HTTPOK.new nil, 200, nil + def res.body + "success" + end res end @@ -735,7 +747,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== s3_uri_signer end - data = fetcher.fetch_s3 URI.parse(url) + data = fetcher.fetch_s3 Gem::URI.parse(url) assert_equal "https://my-bucket.s3.#{region}.amazonaws.com/gems/specs.4.8.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=testuser%2F20190624%2F#{region}%2Fs3%2Faws4_request&X-Amz-Date=20190624T050641Z&X-Amz-Expires=86400#{token ? "&X-Amz-Security-Token=" + token : ""}&X-Amz-SignedHeaders=host&X-Amz-Signature=#{signature}", $fetched_uri.to_s assert_equal "success", data @@ -745,10 +757,10 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def test_fetch_s3_config_creds Gem.configuration[:s3_source] = { - "my-bucket" => { :id => "testuser", :secret => "testpass" }, + "my-bucket" => { id: "testuser", secret: "testpass" }, } url = "s3://my-bucket/gems/specs.4.8.gz" - Time.stub :now, Time.at(1561353581) do + Time.stub :now, Time.at(1_561_353_581) do assert_fetch_s3 url, "20f974027db2f3cd6193565327a7c73457a138efb1a63ea248d185ce6827d41b" end ensure @@ -757,10 +769,10 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def test_fetch_s3_config_creds_with_region Gem.configuration[:s3_source] = { - "my-bucket" => { :id => "testuser", :secret => "testpass", :region => "us-west-2" }, + "my-bucket" => { id: "testuser", secret: "testpass", region: "us-west-2" }, } url = "s3://my-bucket/gems/specs.4.8.gz" - Time.stub :now, Time.at(1561353581) do + Time.stub :now, Time.at(1_561_353_581) do assert_fetch_s3 url, "4afc3010757f1fd143e769f1d1dabd406476a4fc7c120e9884fd02acbb8f26c9", nil, "us-west-2" end ensure @@ -769,10 +781,10 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def test_fetch_s3_config_creds_with_token Gem.configuration[:s3_source] = { - "my-bucket" => { :id => "testuser", :secret => "testpass", :security_token => "testtoken" }, + "my-bucket" => { id: "testuser", secret: "testpass", security_token: "testtoken" }, } url = "s3://my-bucket/gems/specs.4.8.gz" - Time.stub :now, Time.at(1561353581) do + Time.stub :now, Time.at(1_561_353_581) do assert_fetch_s3 url, "935160a427ef97e7630f799232b8f208c4a4e49aad07d0540572a2ad5fe9f93c", "testtoken" end ensure @@ -784,10 +796,10 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== ENV["AWS_SECRET_ACCESS_KEY"] = "testpass" ENV["AWS_SESSION_TOKEN"] = nil Gem.configuration[:s3_source] = { - "my-bucket" => { :provider => "env" }, + "my-bucket" => { provider: "env" }, } url = "s3://my-bucket/gems/specs.4.8.gz" - Time.stub :now, Time.at(1561353581) do + Time.stub :now, Time.at(1_561_353_581) do assert_fetch_s3 url, "20f974027db2f3cd6193565327a7c73457a138efb1a63ea248d185ce6827d41b" end ensure @@ -800,10 +812,10 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== ENV["AWS_SECRET_ACCESS_KEY"] = "testpass" ENV["AWS_SESSION_TOKEN"] = nil Gem.configuration[:s3_source] = { - "my-bucket" => { :provider => "env", :region => "us-west-2" }, + "my-bucket" => { provider: "env", region: "us-west-2" }, } url = "s3://my-bucket/gems/specs.4.8.gz" - Time.stub :now, Time.at(1561353581) do + Time.stub :now, Time.at(1_561_353_581) do assert_fetch_s3 url, "4afc3010757f1fd143e769f1d1dabd406476a4fc7c120e9884fd02acbb8f26c9", nil, "us-west-2" end ensure @@ -816,10 +828,10 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== ENV["AWS_SECRET_ACCESS_KEY"] = "testpass" ENV["AWS_SESSION_TOKEN"] = "testtoken" Gem.configuration[:s3_source] = { - "my-bucket" => { :provider => "env" }, + "my-bucket" => { provider: "env" }, } url = "s3://my-bucket/gems/specs.4.8.gz" - Time.stub :now, Time.at(1561353581) do + Time.stub :now, Time.at(1_561_353_581) do assert_fetch_s3 url, "935160a427ef97e7630f799232b8f208c4a4e49aad07d0540572a2ad5fe9f93c", "testtoken" end ensure @@ -829,18 +841,18 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def test_fetch_s3_url_creds url = "s3://testuser:testpass@my-bucket/gems/specs.4.8.gz" - Time.stub :now, Time.at(1561353581) do + Time.stub :now, Time.at(1_561_353_581) do assert_fetch_s3 url, "20f974027db2f3cd6193565327a7c73457a138efb1a63ea248d185ce6827d41b" end end def test_fetch_s3_instance_profile_creds Gem.configuration[:s3_source] = { - "my-bucket" => { :provider => "instance_profile" }, + "my-bucket" => { provider: "instance_profile" }, } url = "s3://my-bucket/gems/specs.4.8.gz" - Time.stub :now, Time.at(1561353581) do + Time.stub :now, Time.at(1_561_353_581) do assert_fetch_s3 url, "20f974027db2f3cd6193565327a7c73457a138efb1a63ea248d185ce6827d41b", nil, "us-east-1", '{"AccessKeyId": "testuser", "SecretAccessKey": "testpass"}' end @@ -850,11 +862,11 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def test_fetch_s3_instance_profile_creds_with_region Gem.configuration[:s3_source] = { - "my-bucket" => { :provider => "instance_profile", :region => "us-west-2" }, + "my-bucket" => { provider: "instance_profile", region: "us-west-2" }, } url = "s3://my-bucket/gems/specs.4.8.gz" - Time.stub :now, Time.at(1561353581) do + Time.stub :now, Time.at(1_561_353_581) do assert_fetch_s3 url, "4afc3010757f1fd143e769f1d1dabd406476a4fc7c120e9884fd02acbb8f26c9", nil, "us-west-2", '{"AccessKeyId": "testuser", "SecretAccessKey": "testpass"}' end @@ -864,11 +876,11 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def test_fetch_s3_instance_profile_creds_with_token Gem.configuration[:s3_source] = { - "my-bucket" => { :provider => "instance_profile" }, + "my-bucket" => { provider: "instance_profile" }, } url = "s3://my-bucket/gems/specs.4.8.gz" - Time.stub :now, Time.at(1561353581) do + Time.stub :now, Time.at(1_561_353_581) do assert_fetch_s3 url, "935160a427ef97e7630f799232b8f208c4a4e49aad07d0540572a2ad5fe9f93c", "testtoken", "us-east-1", '{"AccessKeyId": "testuser", "SecretAccessKey": "testpass", "Token": "testtoken"}' end @@ -881,7 +893,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== @fetcher = fetcher e = assert_raise Gem::RemoteFetcher::FetchError do - fetcher.fetch_s3 URI.parse(url) + fetcher.fetch_s3 Gem::URI.parse(url) end assert_match expected_message, e.message @@ -894,7 +906,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def test_fetch_s3_no_host Gem.configuration[:s3_source] = { - "my-bucket" => { :id => "testuser", :secret => "testpass" }, + "my-bucket" => { id: "testuser", secret: "testpass" }, } url = "s3://other-bucket/gems/specs.4.8.gz" @@ -904,7 +916,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== end def test_fetch_s3_no_id - Gem.configuration[:s3_source] = { "my-bucket" => { :secret => "testpass" } } + Gem.configuration[:s3_source] = { "my-bucket" => { secret: "testpass" } } url = "s3://my-bucket/gems/specs.4.8.gz" refute_fetch_s3 url, "s3_source for my-bucket missing id or secret" @@ -913,7 +925,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== end def test_fetch_s3_no_secret - Gem.configuration[:s3_source] = { "my-bucket" => { :id => "testuser" } } + Gem.configuration[:s3_source] = { "my-bucket" => { id: "testuser" } } url = "s3://my-bucket/gems/specs.4.8.gz" refute_fetch_s3 url, "s3_source for my-bucket missing id or secret" @@ -924,7 +936,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def test_observe_no_proxy_env_single_host use_ui @stub_ui do ENV["http_proxy"] = @proxy_uri - ENV["no_proxy"] = URI::parse(@server_uri).host + ENV["no_proxy"] = Gem::URI.parse(@server_uri).host fetcher = Gem::RemoteFetcher.new nil @fetcher = fetcher assert_data_from_server fetcher.fetch_path(@server_uri) @@ -934,7 +946,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def test_observe_no_proxy_env_list use_ui @stub_ui do ENV["http_proxy"] = @proxy_uri - ENV["no_proxy"] = "fakeurl.com, #{URI::parse(@server_uri).host}" + ENV["no_proxy"] = "fakeurl.com, #{Gem::URI.parse(@server_uri).host}" fetcher = Gem::RemoteFetcher.new nil @fetcher = fetcher assert_data_from_server fetcher.fetch_path(@server_uri) @@ -946,8 +958,8 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== @fetcher = fetcher assert_throws :block_called do - fetcher.request URI("http://example"), Net::HTTP::Get do |req| - assert_kind_of Net::HTTPGenericRequest, req + fetcher.request Gem::URI("http://example"), Gem::Net::HTTP::Get do |req| + assert_kind_of Gem::Net::HTTPGenericRequest, req throw :block_called end end @@ -971,31 +983,33 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== end def test_ssl_client_cert_auth_connection - ssl_server = start_ssl_server({ - :SSLVerifyClient => - OpenSSL::SSL::VERIFY_PEER | OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT }) + ssl_server = start_ssl_server( + { SSLVerifyClient: OpenSSL::SSL::VERIFY_PEER | OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT } + ) temp_ca_cert = File.join(__dir__, "ca_cert.pem") temp_client_cert = File.join(__dir__, "client.pem") with_configured_fetcher( - ":ssl_ca_cert: #{temp_ca_cert}\n" + - ":ssl_client_cert: #{temp_client_cert}\n") do |fetcher| + ":ssl_ca_cert: #{temp_ca_cert}\n" \ + ":ssl_client_cert: #{temp_client_cert}\n" + ) do |fetcher| fetcher.fetch_path("https://localhost:#{ssl_server.config[:Port]}/yaml") end end def test_do_not_allow_invalid_client_cert_auth_connection - ssl_server = start_ssl_server({ - :SSLVerifyClient => - OpenSSL::SSL::VERIFY_PEER | OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT }) + ssl_server = start_ssl_server( + { SSLVerifyClient: OpenSSL::SSL::VERIFY_PEER | OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT } + ) temp_ca_cert = File.join(__dir__, "ca_cert.pem") temp_client_cert = File.join(__dir__, "invalid_client.pem") with_configured_fetcher( - ":ssl_ca_cert: #{temp_ca_cert}\n" + - ":ssl_client_cert: #{temp_client_cert}\n") do |fetcher| + ":ssl_ca_cert: #{temp_ca_cert}\n" \ + ":ssl_client_cert: #{temp_client_cert}\n" + ) do |fetcher| assert_raise Gem::RemoteFetcher::FetchError do fetcher.fetch_path("https://localhost:#{ssl_server.config[:Port]}/yaml") end @@ -1080,7 +1094,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== end class NilLog < WEBrick::Log - def log(level, data) #Do nothing + def log(level, data) # Do nothing end end @@ -1115,8 +1129,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== @ssl_server_thread.kill.join @ssl_server_thread = nil end - utils = WEBrick::Utils # TimeoutHandler is since 1.9 - utils::TimeoutHandler.terminate if defined?(utils::TimeoutHandler.terminate) + WEBrick::Utils::TimeoutHandler.terminate end def normal_server_port @@ -1132,17 +1145,17 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== null_logger = NilLog.new server = WEBrick::HTTPServer.new({ - :Port => 0, - :Logger => null_logger, - :AccessLog => [], - :SSLEnable => true, - :SSLCACertificateFile => File.join(__dir__, "ca_cert.pem"), - :SSLCertificate => cert("ssl_cert.pem"), - :SSLPrivateKey => key("ssl_key.pem"), - :SSLVerifyClient => nil, - :SSLCertName => nil, + Port: 0, + Logger: null_logger, + AccessLog: [], + SSLEnable: true, + SSLCACertificateFile: File.join(__dir__, "ca_cert.pem"), + SSLCertificate: cert("ssl_cert.pem"), + SSLPrivateKey: key("ssl_key.pem"), + SSLVerifyClient: nil, + SSLCertName: nil, }.merge(config)) - server.mount_proc("/yaml") do |req, res| + server.mount_proc("/yaml") do |_req, res| res.body = "--- true\n" end server.mount_proc("/insecure_redirect") do |req, res| @@ -1150,14 +1163,12 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== end server.ssl_context.tmp_dh_callback = proc { TEST_KEY_DH2048 } t = Thread.new do - begin - server.start - rescue Exception => ex - puts "ERROR during server thread: #{ex.message}" - raise - ensure - server.shutdown - end + server.start + rescue StandardError => ex + puts "ERROR during server thread: #{ex.message}" + raise + ensure + server.shutdown end while server.status != :Running sleep 0.1 @@ -1174,12 +1185,12 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== def start_server(data) null_logger = NilLog.new s = WEBrick::HTTPServer.new( - :Port => 0, - :DocumentRoot => nil, - :Logger => null_logger, - :AccessLog => null_logger + Port: 0, + DocumentRoot: nil, + Logger: null_logger, + AccessLog: null_logger ) - s.mount_proc("/kill") {|req, res| s.shutdown } + s.mount_proc("/kill") {|_req, _res| s.shutdown } s.mount_proc("/yaml") do |req, res| if req["X-Captain"] res.body = req["X-Captain"] @@ -1193,7 +1204,7 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== res["Content-Type"] = "text/html" end end - s.mount_proc("/yaml.Z") do |req, res| + s.mount_proc("/yaml.Z") do |_req, res| if @enable_zip res.body = Zlib::Deflate.deflate(data) res["Content-Type"] = "text/plain" @@ -1204,13 +1215,11 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== end end th = Thread.new do - begin - s.start - rescue Exception => ex - abort "ERROR during server thread: #{ex.message}" - ensure - s.shutdown - end + s.start + rescue StandardError => ex + abort "ERROR during server thread: #{ex.message}" + ensure + s.shutdown end th[:server] = s th |