Commit graph

8884 commits

Author SHA1 Message Date
nobu
83cd51e3fe variable.c: Module#deprecate_constant
* variable.c (rb_const_get_0): warn deprecated constant reference.
* variable.c (rb_mod_deprecate_constant): mark constants to be
  warned as deprecated.  [Feature #11398]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-30 04:20:00 +00:00
nobu
bcba951320 load.c: avoid segfault when 'throw' occurs in the middle of rb_load_file_str
How can a 'throw' happen while the current thread is reading a Ruby source file
from disk and parsing it? It can happen if another thread calls Thread#raise,
and passes an Exception object which responds to #exception, and the custom #exception
method calls Kernel#throw.

In practice, this is most likely to happen if you combine the use of autoload and
Timeout.timeout.

An extra check is required to avoid a segfault in this case.

* load.c (rb_load_internal0): extra check before returning TAG_RAISE when a
  non-local transfer of control happens while loading and parsing a Ruby source file.
  [ruby-core:70169] [Bug #11404]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-30 01:42:35 +00:00
nobu
b729e9278f test_pair.rb: thread leak
* test/openssl/test_pair.rb (test_ecdh_callback): join client
  thread before closing sockets.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-29 12:45:32 +00:00
nobu
621bf532fc test_pair.rb: thread leak
* test/openssl/test_pair.rb (test_ecdh_callback): fix thread leak.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-29 12:41:09 +00:00
nobu
184cf1f710 test_hash.rb: suppress warnings
* test/ruby/test_hash.rb (test_label_syntax): pass assertion
  message and suppress warnings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-29 12:35:42 +00:00
nobu
149dadf368 vm_eval.c: set method_missing_reason
* vm_eval.c (send_internal): set method_missing_reason before
  invoking overriding method_missing method so that the default
  method_missing can achieve it properly.
  [ruby-core:68515] [Bug #10969]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-29 06:25:21 +00:00
nobu
48f9012df9 hash.c: fix symbol hash
* hash.c (rb_sym_hash): return same value as rb_any_hash() of
  Symbol.  [Bug #9381]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-29 05:54:21 +00:00
nobu
efc7a3a712 hash.c: fix float hash
* hash.c (rb_any_hash): fix Float hash.  rb_dbl_hash() returns a
  Fixnum, but not a long.  [Bug #9381]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-29 05:53:35 +00:00
usa
8e613749f4 * test/ruby/test_io.rb (TestIO#test_open_flag_binary): typo of method name (test method itself, and calling method).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-29 05:32:38 +00:00
nobu
4de35bafbc test_hash.rb: add assertions
* test/ruby/test_hash.rb (test_wrapper_of_special_const): test
  other special obejcts.  [Bug #9381]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-29 05:06:32 +00:00
naruse
9ca6e62229 open the path instead of tempfile object
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-29 04:10:19 +00:00
naruse
6a5dda00d8 * io.c (rb_io_extract_modeenc): add option parameter `flags'
to append extra oflags to normal mode.
  [Feature #11253] [ruby-core:69539]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-29 01:39:14 +00:00
normal
83fc43f800 test/rubygems/test_gem_remote_fetcher.rb: pre-generate test key
OpenSSL::PKey::DH.new(2048) takes forever, and we pre-generate
test keys for other SSL-using tests anyways.

* test/rubygems/test_gem_remote_fetcher.rb: pre-generate test key
  [ruby-core:70151] [Bug #11397]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-28 20:02:38 +00:00
nobu
34b2e084e6 test/unit.rb: show signal
* test/lib/test/unit.rb (Test::Unit::Parallel::Worker#died): show
  terminated signal when a worker died.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-27 23:48:09 +00:00
tenderlove
dc9ca079bb * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): raise a more
helpful exception when verifying the peer connection and an
  anonymous cipher has been selected. [ruby-core:68330] [Bug #10910]
  Thanks to Chris Sinjakli <chris@sinjakli.co.uk> for the patch.

* test/openssl/test_ssl.rb (class OpenSSL): test for change

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-27 18:29:17 +00:00
nobu
21d35a4d44 test/unit.rb: suppress warnings
* test/lib/test/unit.rb (MiniTest::Unit::TestCase.test_order): get
  rid of warnings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-27 12:00:10 +00:00
nobu
bd8bb810c7 test/unit.rb: --test-order option
* test/lib/test/unit.rb (setup_options): add --test-order option
  to override the test order.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-27 07:28:36 +00:00
usa
08be34a969 commit miss
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-27 03:22:28 +00:00
tenderlove
86ff702957 * ext/openssl/ossl_ssl.c (ossl_call_servername_cb): set the ssl context
object returned by the servername callback on to the socket as an
  instance variable.  If the callback allocated a new context object
  and didn't keep a reference to it, it could be GC'd out from under
  the socket object.

* test/openssl/test_ssl.rb (class OpenSSL): test for change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-26 01:29:02 +00:00
tenderlove
2de804b4d5 * test/openssl/test_ssl.rb (class OpenSSL): add test coverage around
OpenSSL::SSL::SSLContext#servername_cb

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-26 01:09:31 +00:00
hsbt
91092bd0e4 * test/rubygems/test_gem_remote_fetcher.rb: backport rubygems upstream
change for OpenSSL key length. see detail to
  https://github.com/rubygems/rubygems/pull/1290

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-25 23:49:35 +00:00
tenderlove
b380c987e1 * ext/openssl/lib/openssl/pkey.rb: implement DEFAULT_512 and
DEFAULT_1024 constants in Ruby.

* ext/openssl/lib/openssl/ssl.rb (module OpenSSL): Ask PKey for the
  default DH callback since it aleady must check whether openssl has
  been compiled with DH support.

* ext/openssl/ossl_pkey_dh.c (OSSL_PKEY_BN): Remove C definitions of
  DEFAULT_512 and DEFAULT_1024

* ext/openssl/ossl_pkey_dh.c (Init_ossl_dh): ditto

* test/openssl/test_pkey_dh.rb (class OpenSSL): add test to ensure the
  Ruby definitions are the same as the C definitions were.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-25 23:35:49 +00:00
tenderlove
486e6e02c2 * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): support
specifically setting the tmp_dh_callback to nil.

* ext/openssl/ossl_ssl.c (Init_ossl_ssl): ditto

* test/openssl/test_pair.rb (module OpenSSL): add a test

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-25 23:16:49 +00:00
tenderlove
ab9cd02f25 * test/openssl/test_pair.rb: add a test ensuring that the default DH
callback is used when no DH callback is specified.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-25 21:23:22 +00:00
nobu
8101cc3de4 string.c: fill the terminator
* string.c (str_replace_shared_without_enc): fill the terminator
  of embedded strings in wide char encodings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-25 02:05:34 +00:00
ngoto
6f8d3709da * test/rinda/test_rinda.rb (RingIPv6#prepare_ipv6): prevent to use
IPv6 loopback interface for
  Rinda::TestRingFinger#test_make_socket_ipv6_multicast and
  Rinda::TestRingFinger#test_make_socket_ipv6_multicast_hops.
  The tests are skipped if there are no IPv6 devices other than the
  loopback device. [Bug #11394] [ruby-dev:49199]

* test/rinda/test_rinda.rb (test_make_socket_ipv6_multicast): ditto
  for Rinda::TestRingServer#test_make_socket_ipv6_multicast.
   
* test/rinda/test_rinda.rb (test_ring_server_ipv6_multicast): ditto
  for Rinda::TestRingServer#test_ring_server_ipv6_multicast.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51362 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-24 11:29:49 +00:00
nobu
4ab69ebbd7 string.c: pool only bare strings in fstring
* string.c (fstr_update_callback): pool bare strings only.
* string.c (rb_fstring): return the original string with sharing a
  fstring if it has extra attributes, not the fstring itself.
  [ruby-dev:49188] [Bug #11386]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-24 07:38:37 +00:00
nobu
4e58f21f79 Add tests for File.extname
* file.c (rb_file_s_extname): [DOC] add an example.
* test/ruby/test_path.rb (test_extname): add tests.  [Fix GH-978]
  * path starts with dot ('.a.rb')
  * path includes dir name ('a/b/d/test.rb')
  * path includes dir name and dir name starts with dot
    ('.a/b/d/test.rb')

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-24 07:35:38 +00:00
nobu
dfec9d9788 parse.y: pop cmdarg
* parse.y (lambda_body): pop cmdarg stack for lookahead
  token.  [ruby-core:70067] [Bug #11380]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-23 00:05:30 +00:00
tenderlove
5326593a8b * ext/openssl/ossl_ssl.c: add ECDH callback support. [Feature #11356]
* test/openssl/test_pair.rb: test for ECDH callback support

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-22 18:34:45 +00:00
tenderlove
bc6e55c084 * ext/openssl/ossl_ssl.c: add ALPN support. [Feature #9390]
* ext/openssl/extconf.rb: detect ALPN support in OpenSSL

* test/openssl/test_ssl.rb: test for ALPN

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-22 18:31:42 +00:00
nobu
61d807ccfa string.c: fix coderange of reverse
* string.c (rb_str_reverse): reversed string is not a substring,
  and should not set coderange of the original string.
  [ruby-dev:49189] [Bug #11387]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-22 14:44:20 +00:00
usa
2f5897e6b6 * test/webrick/test_utils.rb (TestWEBrickUtils#test_nested_timeout_outer): seems
to be too short for mswin CI.  fixed occasional failure introduced at r51235.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-22 09:04:57 +00:00
hsbt
1931f5e62e * test/ruby/test_range.rb: Add test case for Range#end with
exclude_end true case. [fix GH-968] Pach by @yui-knk

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-22 06:48:53 +00:00
naruse
30223e7f68 suppress warnings
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51328 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-21 23:24:02 +00:00
ko1
46215c1e90 * gc.c (internal_object_p): Now a singleton classes appear by
ObjectSpace.each_object. [Bug #11360]
* test/ruby/test_objectspace.rb: add a test about it.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51320 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-21 19:04:56 +00:00
hsbt
155f3845be * test/ruby/test_range.rb: Add test for Range#hash
[fix GH-969] Patch by @yui-knk

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-21 11:32:38 +00:00
normal
04b7a80131 test/socket/test_nonblock.rb: increase buffer sizes to OpenBSD limits
* test/socket/test_nonblock.rb: increase buffer sizes to
  OpenBSD limits.  Thanks to Jeremy Evans <code@jeremyevans.net>
  [ruby-core:70058]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51310 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-21 08:17:48 +00:00
nobu
65273e9041 test_process.rb: split a test
* test/ruby/test_process.rb (test_execopts_popen): split into 3
  tests, no other redirections, stdio, and other fds.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-21 04:28:03 +00:00
normal
3661dae19c test/ruby/test_process.rb: test thread+sigs work after failed exec
Preparation for possible upcoming changes to timer thread.  We need
to ensure signal handling and thread scheduling works after an exec
failure.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-18 01:29:25 +00:00
normal
1d9cf30d39 test/socket/test_nonblock: use smaller buffer for sendmsg
OpenBSD's limit is less than 128.

* test/socket/test_nonblock: use smaller buffer for sendmsg
  Patch-by: Jeremy Evans <code@jeremyevans.net>
  [ruby-core:70016] [Bug #11364]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-17 22:21:37 +00:00
normal
d4454d0123 io.c (argf_read_nonblock): support `exception: false'
This is a preparation for [ruby-core:69892]
("io.c: avoid kwarg parsing in C API")
since I noticed ARGF.read_nonblock did not properly catch up to
the `exception: false' change.

* io.c (argf_read_nonblock): support `exception: false'
  (io_nonblock_eof): new function
  (io_read_nonblock): use io_nonblock_eof
  (argf_getpartial): accept kwargs hash for `exception: false'
* test/ruby/test_argf.rb (test_read_nonblock): new test
  [ruby-core:70000] [Feature #11358]
* NEWS: add item for ARGF.read_nonblock

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-17 18:02:53 +00:00
nobu
13b3abb227 test_range.rb: add Range#new test
* test/ruby/test_range.rb (test_first_last): Add test for
  `Range.new`.  [Fix GH-971]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-17 06:37:05 +00:00
nobu
e2a87e8bc3 test_range.rb: add Range#last assertions
* test/ruby/test_range.rb (test_first_last): Add assertions to
  test of `Range#last` with exclude_end true case.  [Fix GH-970]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51276 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-17 06:36:42 +00:00
normal
3e5c21f7cb remove unnecessary enumerator requires
* lib/rinda/tuplespace.rb: remove enumerator require
* test/pathname/test_pathname.rb: ditto

Related to https://bugs.ruby-lang.org/issues/10902
but not a complete fix.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-17 00:59:02 +00:00
nobu
aab3599dae vm.c: fix mark with rewinding cfp
* vm.c (m_core_hash_merge_ptr): copy the arguments to the machine
  stack before rewinding the control frame pointer and leaving the
  arguments outside valid region of the value stack.
  [ruby-core:69969] [Bug #11352]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51263 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-16 05:18:40 +00:00
ngoto
66a36e9b13 * test/ruby/test_process.rb (test_exec_close_reserved_fd): test for
[Bug #11353]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-15 16:39:25 +00:00
ngoto
7a1413a768 * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):
use RUBY (= EnvUtil.rubybin)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-15 14:44:06 +00:00
nobu
28c42b4c25 encoding.c: drop dummy encoding flag
* encoding.c (enc_autoload): drop dummy encoding flag from
  the loaded encoding index.  this flag is used only in this
  source.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-15 07:55:08 +00:00
nobu
daf7b1e479 -test-/string: move
* ext/-test-/string/extconf.rb: move "-test-/string/string.so" to
  "-test-/string.so".

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-15 03:56:17 +00:00