summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/net/http/test_http.rb85
-rw-r--r--test/net/http/utils.rb82
2 files changed, 83 insertions, 84 deletions
diff --git a/test/net/http/test_http.rb b/test/net/http/test_http.rb
index eeb046b54ba..97eed02b074 100644
--- a/test/net/http/test_http.rb
+++ b/test/net/http/test_http.rb
@@ -2,9 +2,8 @@
require 'test/unit'
require 'net/http'
-require 'webrick'
-require 'webrick/httpservlet/abstract'
require 'stringio'
+require File.expand_path("utils", File.dirname(__FILE__))
module TestNetHTTP_version_1_1_methods
@@ -264,88 +263,6 @@ module TestNetHTTP_version_1_2_methods
end
end
-
-module TestNetHTTPUtils
- def start(&block)
- new().start(&block)
- end
-
- def new
- klass = Net::HTTP::Proxy(config('proxy_host'), config('proxy_port'))
- http = klass.new(config('host'), config('port'))
- http.set_debug_output logfile()
- http
- end
-
- def config(key)
- self.class::CONFIG[key]
- end
-
- def logfile
- $DEBUG ? $stderr : NullWriter.new
- end
-
- def setup
- spawn_server
- end
-
- def teardown
- # resume global state
- Net::HTTP.version_1_2
- end
-
- def spawn_server
- return if $test_net_http_server_running
- server = WEBrick::HTTPServer.new(
- :BindAddress => config('host'),
- :Port => config('port'),
- :Logger => WEBrick::Log.new(NullWriter.new),
- :AccessLog => []
- )
- server.mount '/', Servlet
- Signal.trap(:INT) {
- server.shutdown
- }
- Thread.fork {
- server.start
- }
- n_try_max = 5
- begin
- TCPSocket.open(config('host'), config('port')).close
- rescue Errno::ECONNREFUSED
- sleep 0.2
- n_try_max -= 1
- raise 'cannot spawn server; give up' if n_try_max < 0
- retry
- end
- $test_net_http_server_running = true
- end
-
- $test_net_http = nil
- $test_net_http_data = (0...256).to_a.map {|i| i.chr }.join('') * 64
- $test_net_http_data_type = 'application/octet-stream'
-
- class Servlet < WEBrick::HTTPServlet::AbstractServlet
- def do_GET(req, res)
- res['Content-Type'] = $test_net_http_data_type
- res.body = $test_net_http_data
- end
-
- # echo server
- def do_POST(req, res)
- res['Content-Type'] = req['Content-Type']
- res.body = req.body
- end
- end
-
- class NullWriter
- def <<(s) end
- def puts(*args) end
- def print(*args) end
- def printf(*args) end
- end
-end
-
class TestNetHTTP_version_1_1 < Test::Unit::TestCase
CONFIG = {
'host' => '127.0.0.1',
diff --git a/test/net/http/utils.rb b/test/net/http/utils.rb
new file mode 100644
index 00000000000..aec1967a74c
--- /dev/null
+++ b/test/net/http/utils.rb
@@ -0,0 +1,82 @@
+require 'webrick'
+require 'webrick/httpservlet/abstract'
+
+module TestNetHTTPUtils
+ def start(&block)
+ new().start(&block)
+ end
+
+ def new
+ klass = Net::HTTP::Proxy(config('proxy_host'), config('proxy_port'))
+ http = klass.new(config('host'), config('port'))
+ http.set_debug_output logfile()
+ http
+ end
+
+ def config(key)
+ self.class::CONFIG[key]
+ end
+
+ def logfile
+ $DEBUG ? $stderr : NullWriter.new
+ end
+
+ def setup
+ spawn_server
+ end
+
+ def teardown
+ @server.shutdown
+ until @server.status == :Stop
+ sleep 0.1
+ end
+ # resume global state
+ Net::HTTP.version_1_2
+ end
+
+ def spawn_server
+ @server = WEBrick::HTTPServer.new(
+ :BindAddress => config('host'),
+ :Port => config('port'),
+ :Logger => WEBrick::Log.new(NullWriter.new),
+ :AccessLog => [],
+ :ShutdownSocketWithoutClose => true,
+ :ServerType => Thread
+ )
+ @server.mount('/', Servlet)
+ @server.start
+ n_try_max = 5
+ begin
+ TCPSocket.open(config('host'), config('port')).close
+ rescue Errno::ECONNREFUSED
+ sleep 0.2
+ n_try_max -= 1
+ raise 'cannot spawn server; give up' if n_try_max < 0
+ retry
+ end
+ end
+
+ $test_net_http = nil
+ $test_net_http_data = (0...256).to_a.map {|i| i.chr }.join('') * 64
+ $test_net_http_data_type = 'application/octet-stream'
+
+ class Servlet < WEBrick::HTTPServlet::AbstractServlet
+ def do_GET(req, res)
+ res['Content-Type'] = $test_net_http_data_type
+ res.body = $test_net_http_data
+ end
+
+ # echo server
+ def do_POST(req, res)
+ res['Content-Type'] = req['Content-Type']
+ res.body = req.body
+ end
+ end
+
+ class NullWriter
+ def <<(s) end
+ def puts(*args) end
+ def print(*args) end
+ def printf(*args) end
+ end
+end