Commit graph

9543 commits

Author SHA1 Message Date
duerst
ad619e02c4 implement String/Symbol#casecmp? including Unicode case folding
* string.c: Implement String#casecmp? and Symbol#casecmp? by using
  String#downcase :fold for Unicode case folding. This does not include
  options such as :turkic, because these currently cannot be combined
  with the :fold option. This implements feature #12786.

* test/ruby/test_string.rb/test_symbol.rb: Tests for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-28 08:37:32 +00:00
usa
8e7e71d63e Give a chance to complete server.accept
* test/net/ftp/test_ftp.rb (test_tls_connect_timeout): get rid of a test error on Windows.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-28 03:14:07 +00:00
nobu
70d8e6cf22 object.c: no TypeError at special const dup
* object.c (rb_obj_dup): no longer raise a TypeError for special
  constants, and return itself instead.  [Feature#12979]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-27 11:07:27 +00:00
nobu
6b88dd2698 file.c: home directory from system
* file.c (rb_default_home_dir): resolve home directory from the
  system database when HOME is not set.  [Feature #12695]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-26 11:37:01 +00:00
shugo
473d0d3211 net/ftp: support timeout for TLS handshake.
Net::FTP inherits ssl_socket_connect from Net::Protocol to implement timeout.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-26 09:29:11 +00:00
nobu
631dde2572 round-down
* numeric.c (round_half_down, int_round_half_down): support
  round-down mode.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-25 06:28:00 +00:00
nobu
e83c344645 marshal.c: fix infinite recursion
* marshal.c (check_userdump_arg): marshal_dump should not return
  an instance of the same class, otherwise it causes infinite
  recursion.  [ruby-core:78289] [Bug #12974]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-24 11:07:12 +00:00
nobu
4aefcbc532 test_fileutils.rb: fix deadlock
* test/fileutils/test_fileutils.rb (assert_output_lines): ensure
  that write pipe is closed, not the reader thread to deadlock
  when an exception raised in the given block.
  [ruby-core:78053] [Bug #12910]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-24 03:01:59 +00:00
nobu
e6efdb7bfd test_fileutils.rb: Use primary group too
* test/fileutils/test_fileutils.rb (TestFileUtils#setup): Use
  primary group as well as supplementary groups.  based on the
  patch by Vít Ondruch at [ruby-core:78053].  [Bug #12910]

It might happen in certain environments (systemd-nspawn) that
process has no supplementary groups, but primary groups should be
enough to pass most of the tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-23 11:30:02 +00:00
shugo
c0652defae rescue Errno::EPROTOTYPE in FTPTest#test_list_read_timeout_exceeded.
Errno::EPROTOTYPE is sometimes raised on Mac OS X 10.10.
[ruby-core:78066] [Bug #12914]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-23 05:26:18 +00:00
shugo
2411cab586 Don't encode to UTF-8 if it's unnecessary.
If the file system encoding is ISO-8851-1 or if the encoding of the target
string is invalid, don't encode to UTF-8.  [ruby-core:78271] [Bug#12972]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-23 04:40:40 +00:00
shugo
e50266f299 Add a new optinal argument pathname to FTP#stat.
Based on the patch by soleboxy.
[Fix GH-1478] [ruby-core:78240] [Feature #12965]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-23 00:03:27 +00:00
shugo
d59bfb2d06 Add BufferedSSLSocket#send.
SSLSocket#send is not defined, so use #write instead.  flags and dest are
ignored.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-22 05:17:45 +00:00
nobu
3c93545a16 Revert r56856
* parse.y: tCHAR can be concatenated.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-21 22:45:26 +00:00
shugo
30cc5ce4bd Add new options open_timeout and read_timeout to Net::FTP.new.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-21 10:38:31 +00:00
nobu
b2270a36e7 numeric.c: refine error message
* numeric.c (rb_num_get_rounding_option): refine error message at
  invalid rounding mode.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-21 02:17:29 +00:00
shugo
fb8628ecda remote_address should be called on @bare_sock.
Because @sock.remote_address fails if @sock is an SSLSocket.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-20 01:49:25 +00:00
shugo
77403c88cd Expand abbreviated option names.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-19 07:02:32 +00:00
shugo
fc446ac016 Move certificates to test/net/fixtures/.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-19 02:37:39 +00:00
shugo
eb8c73adbc Support TLS and hash styles options for Net::FTP.new.
If the :ssl options is specified, the control connection is protected with
TLS in the manner described in RFC 4217.  Data connections are also
protected with TLS unless the :private_data_connection is set to false.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-19 02:29:23 +00:00
nobu
f6e77b9d35 logger.rb: fix next rotate time
* lib/logger.rb (Logger::LogDevice#initialize): calculate next
  rotate time based on the mtime of the last existing file.
  [ruby-dev:49881] [Bug #12948]

Author: Tsukasa Oishi <tsukasa.oishi@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56815 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-16 06:59:42 +00:00
nobu
2b80941e95 test/logger/test_logdevice.rb: heredoc styles
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-16 06:59:41 +00:00
nobu
13969a2b5d test_flip.rb: r56316
* test/ruby/test_flip.rb (test_input_line_number_range): test for
  r56316.  [ruby-core:78162] [Bug #12947]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-16 05:25:53 +00:00
kazu
9f350bd713 Fix regexp and typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-15 15:04:56 +00:00
shugo
af36e316d7 ftp.rb: use Addrinfo interfaces
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-15 08:16:45 +00:00
headius
30dcac0494 * test/thread/test_queue.rb: Give up to ten seconds for threads to
reach expected state before proceeding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-14 19:39:21 +00:00
headius
c56fa0e2b7 * test/ruby/test_module.rb: Method tables are not guaranteed to be
ordered.
* test/ruby/test_struct.rb: Ditto.
* test/ruby/test_thread.rb: Thread locals are not guaranteed to be
ordered.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-14 19:27:24 +00:00
nobu
8bc277f1d2 vm_eval.c: fstring instance_eval
* vm_eval.c (singleton_class_for_eval): enable fstring singleton
  class for instance_eval.  [ruby-core:78116] [Bug #12930]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-14 05:17:55 +00:00
nobu
7ab8dcebbf error.c: redefined backtrace
* error.c (rb_get_backtrace): honor redefined Exception#backtrace
  method.  [ruby-core:78097] [Bug #12925]

* eval.c (setup_exception): rescue exceptions during backtrace
  setup.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-13 05:25:54 +00:00
nobu
d432839cbd error.c: rb_get_backtrace
* error.c (rb_get_backtrace): move from eval_error.c to call
  exc_backtrace directly.  [ruby-core:78097] [Bug #12925]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-13 05:25:53 +00:00
nobu
c62ab010c8 test_fstring.rb: fix exception
* test/-ext-/string/test_fstring.rb (test_singleton_class): fix
  expected exception class.  [ruby-dev:49867] [Bug #12923]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-12 13:24:23 +00:00
nobu
ee160e68f9 class.c: no fstring singleton class
* class.c (singleton_class_of): prohibit fstrings from creating
  singleton classes.
  temporary measure for [ruby-dev:49867] [Bug #12923]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-12 09:43:05 +00:00
nobu
2c0d3e2a2e symbol/noninterned_name.rb
* test/-ext-/symbol/noninterned_name.rb: split from
  test_inadvertent_creation.rb.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-12 08:16:58 +00:00
nobu
54bc0a446d range.c: check loading
* range.c (range_loader): check loading values if the data came
  from an initialized range object. [ruby-core:78067] [Bug #12915]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-11 11:52:03 +00:00
nobu
e41ebc50dc rational.c: check load
* rational.c (nurat_loader, nurat_marshal_load): check if loading
  values are Integer.  [ruby-core:78071] [Bug #12918]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-11 07:26:14 +00:00
nobu
9996945af9 vm_eval.c: fix refined method when prepended
* vm_eval.c (vm_call0_body): refined module should not be skipped
  as prepended.  [ruby-core:78073] [Bug #12920]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-10 14:18:52 +00:00
nobu
1a7aba1b47 range.c: check if range modifiable
* range.c (range_modify): frozen object cannot be modified.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-10 10:39:51 +00:00
nobu
25aeeca5b7 test_files.rb: sample size
* test/ripper/test_files.rb (assert_parse_files): extract at least
  one sample.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-10 07:47:43 +00:00
nobu
5564a498e1 test_files.rb: separate tests
* test/ripper/test_files.rb (assert_parse_files): separate tests
  for each directories.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-10 06:45:57 +00:00
shugo
aaf3f205e8 Extend timeout for RubyCI chkbuild on Debian 8.2 x86_64.
On that machine, TestQueue#test_thr_kill often fails as follows:

      1) Failure:
    TestQueue#test_thr_kill [/home/hsbt/chkbuild/tmp/build/20161109T213002Z/ruby/test/thread/test_queue.rb:155]:
    only 171/250 done in 30 seconds.

Even if it passes, it takes about 30 seconds:

    [11160/16832] TestQueue#test_thr_kill = 29.80 s

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-10 02:23:58 +00:00
nobu
fb7e6e1039 test_process.rb: fix pgroup test
* test/ruby/test_process.rb (TestProcess#test_execopts_pgroup):
  use dynamically assigned pid for the process group, instead of a
  magic number 2.  [ruby-core:78051] [Bug #12909]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-10 00:49:17 +00:00
a_matsuda
39edad0380 Fix undefined method 'dump' for nil:NilClass (NoMethodError)
Patch by: Dmitry Vorotilin <d.vorotilin@gmail.com> (@route)
Signed-off-by: Akira Matsuda <ronnie@dio.jp>

closes #1475

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56681 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-08 20:25:44 +00:00
nobu
5f25ecd4b3 test_optimization.rb: for r56208
* test/ruby/test_optimization.rb (test_tailcall_condition_block):
  test for r56208.  [ruby-core:78015] [Bug #12905]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-07 07:45:18 +00:00
shugo
233fa910d1 Extend Net::HTTP#open_timeout for chkbuild on Solaris 10s.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-07 06:57:14 +00:00
shugo
2a8ba4bd64 Just check that interruption doesn't cause SEGV.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-07 02:10:00 +00:00
usa
e8ffc63c02 * test/ruby/test_optimization.rb (test_tailcall_interrupted_by_sigint):
ignore on Windows because we cannot handle signaled status of child
  ruby process on this platform.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-06 15:35:01 +00:00
shugo
fd9f38348c confirm that status.termsig is not nil.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56642 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-06 15:33:10 +00:00
shugo
90bf4a8edb * test/ruby/test_optimization.rb (test_tailcall_interrupted_by_sigint):
send SIGKILL if the child process doesn't die within 1 second.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-06 14:41:39 +00:00
nobu
d2101310db include and prepend check no args
* eval.c (rb_mod_include, rb_mod_prepend): check if arguments are
  given, as well as Kernel#extend.  [ruby-dev:49854] [Bug #12887]
  [Fix GH-1470]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56631 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-06 05:42:53 +00:00
shugo
8a2bd2b7f0 * test/rinda/test_rinda.rb (test_make_socket_ipv6_multicast,
test_make_socket_ipv6_multicast_hops): skip if IPv6 multicast
  address is not available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-06 03:04:33 +00:00