summaryrefslogtreecommitdiff
path: root/test/net/http/utils.rb
AgeCommit message (Collapse)Author
4 days[ruby/net-http] Fixed test case for default content-type.Hiroshi SHIBATA
I changed content-type of request to "application/octet-stream" if request didn't have content-type. https://github.com/ruby/net-http/commit/fc5870d2ac
2024-12-31[ruby/net-http] Don't double-interrupt the test HTTP serverCharles Oliver Nutter
The shutdown process here attempted to terminate the test server by interrupting it with Thread#kill, and then proceeded to close the server and join the thread. The kill does indeed interrupt the accept call, but the close call could also interrupt the thread as part of notifying blocked threads waiting on that socket call. In JRuby, where all of this can happen at the same time, it leads to the following scenario: * The server thread enters TCPServer#accept and blocks. * The main thread calls Thread#kill to interrupt the accept call. * The server thread wakes up and starts to propagate the kill. There is a slight delay between this wakeup and removing the server thread from the TCPServer's blocked threads list. * The main thread calls TCPServer#close, which sees that the server thread is still in the blocked list, so it initiates a second interrupt to raise IOError "closed in another thread" on the server thread. * As the kill is bubbling out, another check for interrupts occurs, causing it to see the new raise interrupt and propagate that instead of the active kill. * Because the server is now closed and the rescue here is empty, the server loop will endlessly attempt and fail to call accept. I was unable to determine how CRuby avoids this race. There may be code that prevents an active kill interrupt from triggering further interrupts. In order to get these tests running on JRuby, I've made the following changes: * Only kill the thread; one interrupt is sufficient to break it out of the accept call. * Ensure outside the server loop that the server gets closed. This happens within the server thread, so triggers no new interrupts. * Minor cleanup for the pattern of using @ssl_server or @server. This change avoids the race in JRuby (and possibly other parallel- threaded implementations) and does not impact the behavior of the tests. https://github.com/ruby/net-http/commit/54025b3870
2024-09-13[ruby/net-http] Prevent warningsYusuke Endoh
``` /home/chkbuild/chkbuild/tmp/build/20240913T003003Z/ruby/test/net/http/utils.rb:32: warning: assigned but unused variable - e /home/chkbuild/chkbuild/tmp/build/20240913T003003Z/ruby/test/net/http/utils.rb:61: warning: assigned but unused variable - version /home/chkbuild/chkbuild/tmp/build/20240913T003003Z/ruby/test/net/http/utils.rb:124: warning: method redefined; discarding old query ``` https://github.com/ruby/net-http/commit/6f818346ce
2024-07-30Wait for server threads to finishNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/11273
2024-07-26[ruby/net-http] Removed needless NullWriter classHiroshi SHIBATA
https://github.com/ruby/net-http/commit/ddb2a81aed
2024-07-17To avoid fd leak with fetch request for SSL serverHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/11171
2024-07-10[ruby/net-http] Removed needless warningHiroshi SHIBATA
https://github.com/ruby/net-http/commit/d867edc0fe
2024-07-10[ruby/net-http] Write log after server start, not handling requestHiroshi SHIBATA
https://github.com/ruby/net-http/commit/205bac757a
2024-07-10[ruby/net-http] Support chunked data and fixed test failure with ↵Hiroshi SHIBATA
multipart/form-data https://github.com/ruby/net-http/commit/b38c2795a9
2024-07-10[ruby/net-http] Rewrite WEBrick server with TCPServer and ↵Hiroshi SHIBATA
OpenSSL::SSL::SSLServer https://github.com/ruby/net-http/commit/b01bcf6d7f
2020-03-10Let Net::HTTP.get take request headers (#2957)Takashi Kokubun
* Let Net::HTTP.get take request headers * Add more test cases for no header usages * Add examples with request headers * Add a NEWS entry [ci skip] [Feature #16686] Notes: Merged-By: k0kubun <[email protected]>
2019-12-10test/net/http/test_https.rb (test_get_SNI_failure): stop proxy settingsYusuke Endoh
Because the test fails under HTTP proxy settings. https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20191210T000004Z.fail.html.gz ``` 1) Failure: TestNetHTTPS#test_get_SNI_failure [/export/home/users/chkbuild/cb-gcc/tmp/build/20191210T000004Z/ruby/test/net/http/test_https.rb:81]: [OpenSSL::SSL::SSLError] exception expected, not #<Net::HTTPServerException: 403 "Forbidden">. ``` The new SNI feature introduced at 54072e329c may need to be improved for HTTP proxy environment.
2016-11-29net/http: don't use OpenSSL::TestUtils from test coderhe
Make test code independent of test/openssl/utils.rb. The development of openssl library has moved to a separate repository and OpenSSL::TestUtils may be modified at any time. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-05leakchecker.rb: remove temporary measurenobu
* lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler#watcher): make watcher thread restartable. * lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler#terminate): new method to terminate watcher thread. * test/lib/leakchecker.rb (LeakChecker#find_threads): revert r46941. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16Add frozen_string_literal: false for all filesnaruse
When you change this to true, you may need to add more tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-09* test/webrick: Store log in an array.akr
* test/net/http: Ditto. * test/open-uri: Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48341 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-09* test/net/http: Examine webrick log.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-08* test/net/http/utils.rb: Don't connect to spawned serverakr
before actual test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-31Join threads.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-30* lib/webrick/server.rb: Use a pipe to detect server shutdown.akr
shutdown() or close() for listening socket is not a reliable. Actually, both doesn't work (doesn't wake up select()) on DragonFly BSD 3.6.2. * test/webrick/utils.rb: :ShutdownSocketWithoutClose is not required now to immediate server shutdown detection. This fixes fd leaks. * test/net/http/utils.rb: Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-19* test/net/http/utils.rb (spawn_server): Specify zero for port toakr
avoid reusing an allocated port. * test/net/http/test_http.rb: Don't specify port here. * test/net/http/test_https.rb: Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-09-01* lib/webrick/ssl.rb (WEBrick::Config::SSL): add new keynaruse
SSLTmpDhCallback to set SSLContext#tmp_dh_calback. * lib/webrick/ssl.rb (WEBrick::GenericServer#setup_ssl_context): follow above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36878 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-21Use 0 for webrick's port and get the actual port. [Bug #6766]naruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-20* lib/net/http.rb (Net::HTTP#transport_request): retry a idempotentnaruse
request automatically. [ruby-dev:45030] [Bug #5790] [ruby-core:41821] [Bug #5813] * lib/net/http.rb (Net::HTTP#keep_alive_timeout=): added to specify the second to reconnect the TCP connection on Keep-Alive. The default value is 2 second because current servers uses 2 sec. http://ftp-admin.blogspot.com/2009/09/keepalivetimeout2.html * lib/net/http.rb (Net::HTTP#begin_transport): reconnect TCP connection on keep-alive timeout. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34341 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-21* lib/net/http.rb (Net::HTTP.post_form): Do not ignore query part of nahi
the given URI to post. See #655. * test/net/http/test_http.rb, test/net/http/utils.rb: Test it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-28* test/net/http/utils.rb (TestNetHTTPUtils#teardown): add nil check.kosaki
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-01* lib/net/http.rb: adding support to rfc5789 patch verb.naruse
Added a Net::HTTP::Patch class which expects a message body and response body. It recycles the post method into a patch one, that will send the encoded representation to the server. Summarizing, a new class has been created, the post method extracted into send_entity, including a new argument, which defines which class to use (Post or Patch) and finally a patch method was created. [ruby-core:30426] Patched by Guilherme Silveira <guilherme.silveira AT caelum.com.br> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-03* lib/net/http.rb (Net::HTTPResponse#read_chunked): ensure to skip themame
last newline of chunk. [ruby-core:29229] * test/net/http/utils.rb: add an option for chunked response test. * test/net/http/test_http.rb: add tests for chunked response. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-29* test/net/http/test_http.rb (_test_request__file): specify encodingmame
explicitly. * test/net/http/utils.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-20* lib/net/http.rb (Net::HTTP#connect): usegotoyuzo
OpenSSL::SSL::SSLContext.build instead of SSLContext.new (default verify mode is now OpenSSL::SSL::VERIFY_PEER). * lib/net/https.rb: SSL parameters are defined by attr_accessor. * test/net/http/test_https.rb: add test for HTTPS features. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-18* test/net/http/utils.rb: split TestNetHTTPUtils module fromgotoyuzo
test/net/http/test_http.rb. and start HTTP server in each test case. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e