diff --git a/base.rb b/base.rb deleted file mode 100644 index d397c1f..0000000 --- a/base.rb +++ /dev/null @@ -1,17 +0,0 @@ -require 'rubygems' -require 'uri' -require 'benchmark' -require 'yajl' -require 'yajl/json_gem' - -ITERATIONS = 10 - -def test_http(name, &block) - Benchmark.bm do |x| - x.report("testing #{name}") do - ITERATIONS.times(&block) - end - end -end - -URL = URI.parse("http://toevolve.org/test.json") diff --git a/test.rb b/test.rb new file mode 100644 index 0000000..e93c379 --- /dev/null +++ b/test.rb @@ -0,0 +1,30 @@ +require 'rubygems' +require 'uri' +require 'benchmark' +require 'yajl' +require 'yajl/json_gem' + +ITERATIONS = 1000 +TESTS = [] + +def test_http(name, &block) + TESTS << [name, block] +end + +URL = URI.parse("http://localhost/~vincentlandgraf/test.json") + +dir = File.dirname(__FILE__) + +Dir[File.join(dir, "test_*.rb")].each do |file| + require file +end + +at_exit do + Benchmark.bm(20) do |x| + for name, block in TESTS do + x.report("testing #{name}") do + ITERATIONS.times(&block) + end + end + end +end diff --git a/test_curb.rb b/test_curb.rb index e69de29..3312883 100644 --- a/test_curb.rb +++ b/test_curb.rb @@ -0,0 +1,10 @@ +require "curb" + +c = Curl::Easy.new +test_http("curb") do + c.url = URL.to_s + c.headers["X-Test"] = "test" + c.perform + data = JSON.parse(c.body_str) + raise Exception.new unless data.first["number"] != 123123 +end diff --git a/test_curl.rb b/test_curl.rb index e69de29..e68996d 100644 --- a/test_curl.rb +++ b/test_curl.rb @@ -0,0 +1,8 @@ +test_http("curl") do + header = {"X-Test" => "test"} + header_str = "" + header.each { |key, value| header_str += "-H \"#{key}: #{value}\" "} + response = `curl #{header_str} -s #{URL.to_s.inspect}` + data = JSON.parse(response) + raise Exception.new unless data.first["number"] != 123123 +end diff --git a/test_em_http.rb b/test_em_http.rb index e69de29..70f1298 100644 --- a/test_em_http.rb +++ b/test_em_http.rb @@ -0,0 +1,17 @@ +# require 'em-http' +# +# evm_count = ITERATIONS +# EventMachine.run do +# test_http("em-http") do +# http = EventMachine::HttpRequest.new(URL.to_s).get :head => {"X-Test" => "test"}, +# :timeout => 60 +# +# http.callback do +# data = JSON.parse(http.response) +# raise Exception.new unless data.first["number"] != 123123 +# evm_count -= 1 +# EventMachine.stop if evm_count <= 0 +# end +# end +# end +# \ No newline at end of file diff --git a/test_httparty.rb b/test_httparty.rb index e69de29..62e2284 100644 --- a/test_httparty.rb +++ b/test_httparty.rb @@ -0,0 +1,16 @@ +require "httparty" + +class PartyService + include HTTParty + base_uri URL.to_s + + def fetch! + data = self.class.get(URL.path, "X-Test" => "test") + raise Exception.new unless data.first["number"] != 123123 + end +end + +party_service = PartyService.new +test_http("httparty") do + party_service.fetch! +end diff --git a/test_httpclient.rb b/test_httpclient.rb index fd726c0..69b858a 100644 --- a/test_httpclient.rb +++ b/test_httpclient.rb @@ -1,4 +1,3 @@ -require 'base' require 'httpclient' client = HTTPClient.new diff --git a/test_httprb.rb b/test_httprb.rb index 27549d2..fb18db8 100644 --- a/test_httprb.rb +++ b/test_httprb.rb @@ -1,4 +1,3 @@ -require 'base' require 'httprb' test_http("httprb") do diff --git a/test_net_http.rb b/test_net_http.rb index bf5e878..ea538c6 100644 --- a/test_net_http.rb +++ b/test_net_http.rb @@ -1,4 +1,3 @@ -require 'base' require 'net/http' test_http("net/http") do diff --git a/test_patron.rb b/test_patron.rb index b65d9d5..1e9522c 100644 --- a/test_patron.rb +++ b/test_patron.rb @@ -1,4 +1,3 @@ -require 'base' require 'patron' sess = Patron::Session.new diff --git a/test_rest_client.rb b/test_rest_client.rb index a656dfa..51bd70a 100644 --- a/test_rest_client.rb +++ b/test_rest_client.rb @@ -1,4 +1,3 @@ -require 'base' require 'restclient' test_http("RestClient") do diff --git a/test_righttp.rb b/test_righttp.rb index 2d612ec..f1e99f5 100644 --- a/test_righttp.rb +++ b/test_righttp.rb @@ -1,4 +1,3 @@ -require 'base' require 'righttp' test_http("righttp") do diff --git a/test_rufus_jig.rb b/test_rufus_jig.rb index 1ea6da8..c706fa8 100644 --- a/test_rufus_jig.rb +++ b/test_rufus_jig.rb @@ -1,8 +1,7 @@ -require 'base' require 'patron' require 'rufus/jig' -h = Rufus::Jig::Http.new(URL.host, URL.port) +h = Rufus::Jig::Http.new(URL.host, URL.port, :timeout => 60) test_http("rufus-jig") do data = h.get(URL.path, "X-Test" => "test") raise Exception.new unless data.first["number"] != 123123