summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2011-08-26* variable.c: Make autoload thread-safe. See #921.nahi
What's the problem? autoload is thread unsafe. When we define a constant to be autoloaded, we expect the constant construction is invariant. But current autoload implementation allows other threads to access the constant while the first thread is loading a file. What's happening inside? The current implementation uses Qundef as a marker of autoload in Constant table. Once the first thread find Qundef as a value at constant lookup, it starts loading a defined feature. Generally a loaded file overrides the Qundef in Constant table by module/class declaration at very beginning lines of the file, so other threads can see the new Module/Class object before feature loading is finished. It breaks invariant construction. How to solve? To ensure invariant constant construction, we need to override Qundef with defined Object after the feature loading. For keeping Qundef in Constant table, I expanded autoload_data struct in Module to have a slot for keeping the defined object while feature loading. And changed Module's constant lookup/update logic a little so that the slot is only visible from the thread which invokes feature loading. (== the first thread which accessed the autoload constant) Evaluation? All test passes (bootstrap test, test-all and RubySpec) and added 8 tests for threading behavior. Extra logics are executed only when Qundef is found, so no perf drop should happen except autoloading. * variable.c (rb_autoload): Prepare new autoload_data struct. * variable.c (rb_autoload_load): Load feature and update Constant table after feature loading is finished. * variable.c (rb_const_get_0): When the fetched constant is under autoloading, it returns the object only for the thread which starts autoloading. * variable.c (rb_const_defined_0): Ditto. * variable.c (rb_const_set): When the specified constant is under autoloading, it sets the object only for the thread which starts autoloading. Otherwise, simply overrides Qundef with constant override warning. * vm_insnhelper.c (vm_get_ev_const): Apply same change as rb_const_get_0 in variable.c. * test/ruby/test_autoload.rb: Added tests for threading behavior. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-26* lib/rubygems: Update to RubyGems 1.8.10. Fixes security issue indrbrain
creating ruby-format gemspecs. Fixes Gem.dir not being at the front of Gem.path to fix uninstall and cleanup commands. Fixes gem uninstall stopping on the first missing gem. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-25* time.c (strftimev): Make Time#to_s default to US-ASCII encoding buttenderlove
respect Encoding.default_internal. [ruby-core:39092] * test/ruby/test_time.rb (class TestTime): Corresponding test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-24* ext/psych/lib/psych/nodes/node.rb: default `to_yaml` encoding to betenderlove
UTF-8. * test/psych/test_encoding.rb: test yaml dump encoding. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-24* test/fileutils/test_fileutils.rb (test_chmod_symbol_mode): Solarisngoto
seems to behave the same as FreeBSD. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-24* test/ruby/test_rubyoptions.rb (test_script_from_stdin): slave ptyngoto
should be manipulated because master pty may not be a tty on some environment (e.g. Solaris). [Bug:#5222] [ruby-dev:44420] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-24* insns.def (defined): fix to checking class variable.ko1
A patch by Magnus Holm <judofyr@gmail.com>. Thanks! * test/ruby/test_variable.rb: add a test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33045 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-23* lib/rdoc: Update to RDoc 3.9.3. Fixes RDoc with `ruby -Ku`. Allowsdrbrain
HTTPS image paths to be turned into <img> tags. Prevents special markup inside <tt> from being processed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33043 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-23* lib/rubygems: Update to RubyGems 1.8.9. Fixes uninstalling multipledrbrain
gems and gem cleanup. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-23fixed tests broken by new minitest mixinryan
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-23Imported minitest 2.5.0 (r6557)ryan
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-23* thread.c (update_coverage): skip coverage count up if the currentmame
line is out of the way. rb_sourceline() is unreliable when source code is big. [ruby-dev:44413] * test/coverage/test_coverage.rb: add a test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-23* ext/zlib/zlib.c (gzfile_read_header): Ensure that each section ofnahi
gzip header is readable to avoid SEGV. * test/zlib/test_zlib.rb (test_corrupted_header): Test it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-20* iseq.c (iseq_s_disasm): fix a bug that may cause SEGV.ktsj
* test/ruby/test_method.rb (test_body): add a test for the above change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-20* ext/stringio/stringio.c (strio_read): return new string if nilnobu
is explicitly given as a buffer ([Bug #5207]), otherwise set the encoding. also removed dead code. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33010 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-19* lib/net/imap.rb (idle): raises a Net::IMAP::Error when theshugo
connection is closed. based on the patch by Hugo Barauna. [Bug #5190] [ruby-core:38930] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-19* lib/net/imap.rb (msg_att): accepts extra space before ')'.shugo
based on the patch by art lussos. [Bug #5163] [ruby-core:38820] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-17Merge branch '5172_bigdecimal_gc_issue' into trunkmrkn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-17* rational.c (nurat_coerce): Rational#coerce should converts itselfmrkn
into Complex if the argument is a Complex with non-zero imaginary part. [Bug #5020] [ruby-dev:44088] * test/ruby/test_rational.rb (test_coerce): test for the above change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-15* ext/openssl/ossl_ssl.c: Support disabling OpenSSL compression.emboss
* test/openssl/test_ssl.rb: Add a test for it. Thanks to Eric Wong for the patch. [Ruby 1.9 - Feature #5183] [ruby-core:38911] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-13* test/socket/test_socket.rb (test_connect_timeout): added a testakr
based on a patch by Eric Wong. [ruby-core:38910] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-13 * test/date/test_*.rb: added tests.tadf
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-13* ext/psych/lib/psych/core_ext.rb: Make Kernel#y private.tenderlove
[ruby-core:38913] * test/psych/test_yaml.rb: corresponding test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-12* lib/rake: Update to Rake 0.9.2.2. Prevent pollution of topleveldrbrain
namespace by Commands. Remove unused variable and debugging statement in tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-11 * lib/rdoc: Import RDoc 3.9.2. Fixes TIDYLINK for HTML output.drbrain
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32935 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-10* complex.c (nucomp_rationalize): calls rationalize of real part ifmrkn
imaginary part is exactly zero. The patch is made by Marc-Andre Lafortune. fixes [Bug #5178] [ruby-core:38885] * test/ruby/test_complex.rb (test_rationalize): add a test for the above change. * complex.c (nucomp_to_r): fix RDoc comment. The patch is made by Marc-Andre Lafortune. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-09* test/fiddle/helper.rb (libc_so, libm_so): Solaris support added.ngoto
* test/dl/test_base.rb (libc_so, libm_so): on Solaris, remove libc and libm version numbers for detecting default libc and libm. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-07* time.c (rb_strftime_alloc): raise ERANGE if width is too large.kosaki
Patch by Nobuyoshi Nakada. [Bug #4457] [ruby-dev:43285] * test/ruby/test_time.rb (class TestTime): add a test for the above change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32885 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-05* test/test_syslog.rb (TestSyslog#test_log): Do not be tooknu
specific about the log line format. Fixes #5081. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-05* test/ruby/test_object.rb: tests that respond_to? returns false.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32857 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-05* lib/xmlrpc/client.rb, lib/xmlrpc/server.rb: should useshugo
String#bytesize instead of String#size. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-05* vm_eval.c (check_funcall): try respond_to? first if redefined.nobu
[Bug #5158] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-05 * lib/rubygems: Import RubyGems 1.8.7:drbrain
Added missing require for `gem uninstall --format-executable`. The correct name of the executable being uninstalled is now displayed with --format-executable. Fixed `gem unpack uninstalled_gem` default version picker. RubyGems no longer claims a nonexistent gem can be uninstalled. `gem which` no longer claims directories are requirable files. `gem cleanup` continues cleaning up gems if one can't be uninstalled due to permissions. Issue #82. Gem repository directories are no longer created world-writable. Patch by Sakuro OZAWA. [Ruby 1.9 - Bug #4930] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-04* test/io/console/test_io_console.rb (test_noctty): daemon() onnobu
OpenBSD seems not to detach the controlling terminal, when the argument noclose is non-zero. ref: [Bug #5135] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-03Cosmetic change of Hash literal.nahi
'BindAddress: var' => ':BindAddress => var' according to other configurations. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-03* util.c, include/ruby/util.h (ruby_add_suffix): remove the function.usa
[Bug #5153] [ruby-core:38736] * io.c (argf_next_argv): remove the call of above function. * ext/-test-/add_suffix, test/-ext-/test_add_suffix.rb: remove the test extension module because this is only for testsing ruby_add_suffix(). * LEGAL: remove the mention about a part of util.c, because now we removed the part. * io.c (argf_next_argv): now the new filename is not guranteed to use, so should check the return value of rename(2). * test/ruby/test_argf.rb (TestArgf#test_inplace_rename_impossible): now we expect same result with other platforms on no_safe_rename platforms (=Windows). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-03* test/xmlrpc/webrick_testing.rb (WEBrick_Testing#start_server):shyouhei
Like r32795, bind address should be specified. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-02* encoding.c (enc_find): mistakenly remained !. [Bug #5150]nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-02* test/testunit/test_parallel.rb: pass "--ruby" option tosorah
test/testunit/tests_for_parallel/runner.rb. [Bug #5132] [ruby-dev:44303] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-02* hash.c (recursive_hash): hash value of emptied hash should benobu
equal to an empty hash. [ruby-core:38650] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-02* parse.y (rb_enc_symname2_p): :! is valid symbol. [Bug #5136]nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-01* test/net/http/test_http.rb ↵shyouhei
(TestNetHTTP_version_1_1_methods#test_timeout_during_HTTP_session): If you connect to localhost, you should listen localhost. * test/net/http/test_https.rb (TestNetHTTPS#test_timeout_during_SSL_handshake): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32806 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-01Correct RubyGems bin check on Windows. Bug #5111luislavena
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-01* test/ruby/test_process.rb (TestProcess#windows?): new method.usa
* test/ruby/test_process.rb (TestProcess#*): use above method. * test/ruby/test_process.rb (TestProcess#test_execopts_redirect): windows doesn't support FD_CLOEXEC. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-01 * test/rake/test_rake_functional.rb: Don't assume the binary name ofdrbrain
ruby is "ruby". [Ruby 1.9 - Bug #5114] * test/rake/helper.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-01* test/io/console/test_io_console.rb (TestIO_Console#test_sync):shyouhei
Skip when PTY allocation failed (that's not our failt). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-01* test/xmlrpc/test_webrick_server.rb (Test_Webrick#setup_http_server):shyouhei
XMLRPC::Client.new3(), when called without host: argument, tries to connect to a host where "localhost" resolves to. On the other hand a WEBrick::HTTPServer.new(), when called without BindAddress: argument, tries to listen all the address where getaddrinfo(AF_UNSPEC) resolves to. This is a mismatch because "localhost" might not resolve to one of those listening sockets. We would better explicitly specify "localhost" here and if failed, just skip the whole test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-01 * lib/rdoc.rb: Import RDoc 3.9.1. Fixes bugs in the RDoc::Markupdrbrain
parser. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32794 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-31* vm.c: check if cfp is valid. [Bug #5083] [ruby-dev:44208]ktsj
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32768 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-31 * lib/rdoc: Update to RDoc 3.9. Fixed `ri []`, stopdoc creating andrbrain
object reference, nodoc for class aliases, verbatim === lines. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e