Commit graph

10328 commits

Author SHA1 Message Date
nobu
d81e5593b7 test/unit.rb: no verbose in worker processes
* test/lib/test/unit.rb (Test::Unit::Parallel::Worker.launch):
  disable verbose flag in worker processes, get rid of unexpected
  output within marshaled results.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55832 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-08 05:04:36 +00:00
nobu
41d220441d deprecate TRUE,FALSE,NIL
* object.c (InitVM_Object): deprecate toplevel constants TRUE,
  FALSE, and NIL.  [Feature #12574]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-07 09:08:29 +00:00
normal
7513d54659 openssl: avoid undefined behavior on empty SSL_write
SSL_write(3ssl) manpage has this in the WARNINGS section:

       When calling SSL_write() with num=0 bytes to be sent the
       behaviour is undefined.

And indeed, the new test case demonstrates failures when
empty strings are used.  So, match the behavior of IO#write,
IO#write_nonblock, and IO#syswrite by returning zero, as the
OpenSSL::SSL::SSLSocket API already closely mimics the IO one.

* ext/openssl/ossl_ssl.c (ossl_ssl_write_internal):
  avoid undefined behavior
* test/openssl/test_pair.rb (test_write_zero): new test
  [ruby-core:76751] [Bug #12660]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-06 21:50:10 +00:00
nobu
e70df3a701 hash.c: env_name_new
* hash.c (env_enc_str_new): make string for an environment
  variable name or value.
* hash.c (env_name_new): make environment value string with the
  encoding for its name.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55819 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-05 15:39:46 +00:00
nobu
9e1b9b9c8f hash.c: set encoding
* hash.c (env_assoc): the encoding of the value should be the
  locale, as well as other methods, [], fetch, values, etc.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-04 02:54:32 +00:00
nobu
18cf70ebf6 parse.y: reg_fragment_enc_error
* parse.y (reg_fragment_enc_error): compile_error is different
  between parser and ripper.  [ruby-core:76397] [Bug #12651]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-03 12:31:25 +00:00
nobu
83cfc94563 math.c: tanh overflow
* math.c (tanh): check overflows, and return +-1.0.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-02 12:40:51 +00:00
svn
0a86f7ff71 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-01 05:55:36 +00:00
shyouhei
320ae01c5f Object#clone with freeze: false [Feature #12300]
* object.c (rb_obj_clone2): Allow Object#clone to take freeze:
	  false keyword argument to not freeze the clone.
  	  [ruby-core:75017][Feature #12300]

 	* test/ruby/test_object.rb (TestObject): test for it.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-01 05:55:35 +00:00
hsbt
11a94f2a36 * ext/json/*, test/json/json_parser_test.rb: Update json-2.0.2.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-01 03:16:30 +00:00
duerst
4abdd6c5aa * enc/iso_8859_2.c, test/ruby/enc/test_case_comprehensive.rb:
Implement non-ASCII case conversion for ISO-8859-2, by Yushiro Ishii.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-30 03:00:09 +00:00
nobu
01fb7e5b71 dtrace: wait command
* test/dtrace/helper.rb (DTrace::TestCase::READ_PROBES): wait
  the spawned command not to make a waiter thread.  fix up r55736.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-26 16:22:56 +00:00
nobu
e7440de279 test: use assert_include
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-26 13:02:33 +00:00
nobu
7b3473a13a dtrace: chomp CR
* test/dtrace/helper.rb (DTrace::TestCase::READ_PROBES): chomp CR
  by pty.  fix up r55736.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-26 12:51:50 +00:00
duerst
7b2b2869c9 * enc/windows_1257.c, test/ruby/enc/test_case_comprehensive.rb:
Implement non-ASCII case conversion for Windows-1257, by Sho Koike.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-26 07:33:18 +00:00
duerst
14dd8a17e8 * enc/windows_1250.c, test/ruby/enc/test_case_comprehensive.rb:
Implement non-ASCII case conversion for Windows-1250, by Sho Koike.
* ChangeLog: Fixed order of previous two entries.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-26 07:19:43 +00:00
duerst
aec1ac6e51 * enc/windows_1251.c, test/ruby/enc/test_case_comprehensive.rb:
Implement non-ASCII case conversion for Windows-1251, by Shunsuke Sato.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-26 06:54:18 +00:00
duerst
c8a1d8b33b * enc/windows_1251.c, test/ruby/enc/test_case_comprehensive.rb:
Implement non-ASCII case conversion for Windows-1251, by Shunsuke Sato.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-26 06:30:39 +00:00
svn
aa1bf14f9c * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-26 04:05:04 +00:00
duerst
c2b500a000 * test/ruby/enc/test_case_comprehensive.rb: Add explicit skip test for
availability of Unicode data files.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-26 04:05:03 +00:00
nobu
ceff9c8dcb dtrace: simplify
* test/dtrace/helper.rb (DTrace::TestCase::RUBYBIN): simply
  substitute basename.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-24 21:43:05 +00:00
nobu
106445d144 dtrace: suppress an empty line
* test/dtrace/helper.rb (DTrace::TestCase#trap_probe): suppress
  an extra empty line to the controlling tty by dtrace on Darwin.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-23 15:04:12 +00:00
nobu
d98dd47313 dtrace: use miniruby instead of ruby-runner
* test/dtrace/helper.rb (DTrace::TestCase#trap_probe): ruby-runner
  cannot be the target of dtrace, use miniruby instead.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-23 14:59:25 +00:00
normal
dafeebf12d webrick: filter out HTTP_PROXY for CGIHandler
* lib/webrick/httpservlet/cgihandler.rb (do_GET): delete HTTP_PROXY
* test/webrick/test_cgi.rb (test_cgi_env): new test
* test/webrick/webrick.cgi (do_GET): new endpoint to dump env
  [ruby-core:76511] [Bug #12610]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-22 16:43:12 +00:00
duerst
c6692d9410 * string.c (String#dump): Change escaping of non-ASCII characters in
UTF-8 to use upper-case four-digit hexadecimal escapes without braces
  where possible [Feature #12419].
* test/ruby/test_string.rb (test_dump): Add tests for above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-22 08:13:38 +00:00
kazu
14a145095f fix typos
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55711 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-20 15:58:59 +00:00
nobu
6882b35460 enumerator.c: Enumerator::Lazy#uniq
* enumerator.c (lazy_uniq): new method Enumerator::Lazy#uniq.
  [Feature #11090]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-20 08:44:08 +00:00
nobu
42c6a5137e enum.c: Enumerable#uniq
* enum.c (enum_uniq): new method Enumerable#uniq.
  [Feature #11090]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-20 08:39:12 +00:00
nobu
6ea002a7a2 variable.c: exclude private constants
* variable.c (rb_local_constants_i): exclude private constants
  when excluding inherited constants too.  [Bug #12345]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-19 06:39:01 +00:00
mrkn
94468b4ea5 numeric.c, complex.c: Add finite? and infinite? consistent with Float
* numeric.c (num_finite_p, num_infinite_p): Add Numeric#finite? and
  Numeric#infinite?  [Feature #12039] [ruby-core:73618]

* complex.c (rb_complex_finite_p): Add Complex#finite?

* complex.c (rb_complex_infinite_p): Add Complex#infinite?

* test/ruby/test_bignum.rb: Add test for Integer#finite? and
  Integer#infinite?

* test/ruby/test_fixnum.rb: ditto.

* test/ruby/test_rational.rb: Add test for Rational#finite? and
  Rational#infinite?

* test/ruby/test_complex.rb: Add test for Complex#finite? and
  Complex#infinite?

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-17 14:53:00 +00:00
nobu
5292b2727a util.c: do not underflow
* util.c (ruby_strtod): do not underflow only by preceeding zeros,
  which may be canceled out by the exponent.
  http://twitter.com/kazuho/status/753829998767714305

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-15 08:08:59 +00:00
hsbt
bdda54c064 * test/json/json_common_interface_test.rb: use assert_raise instead of
assert_raises.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-13 13:27:08 +00:00
hsbt
a7b5d45466 * test/lib/test/unit.rb: added test files with _test suffix for json
upstream.
* test/json: merge original test files from json upstream.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-13 13:27:07 +00:00
duerst
2ac58e6891 * enc/iso_8859_9.c, test/ruby/enc/test_case_comprehensive.rb:
Implement non-ASCII case conversion for ISO-8859-9, by Kazuki Iijima.
* enc/iso_8859_9.c: Exclude dotless i/I with dot from case-insensitive
  matching because they are not a case pair.
* test/ruby/enc/test_iso_8859.rb: Make test coverage for ISO-8859-9
  a bit more complete.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-13 09:09:47 +00:00
duerst
9f74ae4cf5 * enc/windows_1252.c, test/ruby/enc/test_case_comprehensive.rb:
Implement non-ASCII case conversion for Windows-1252, by Serina Tai.
* test/ruby/enc/test_case_comprehensive.rb: Fix order of encodings.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55665 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-13 08:21:29 +00:00
duerst
6a52a5488a * enc/iso_8859_7.c, test/ruby/enc/test_case_comprehensive.rb:
Implement non-ASCII case conversion for ISO-8859-7, by Kosuke Kurihara.
* test/ruby/enc/test_case_comprehensive.rb: Fix order of encodings.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-13 07:19:25 +00:00
ko1
d7eb7bbcce * gc.c (gc_mark_roots): should mark the VM object itself to mark
singleton class of the VM object.
  Before this patch, we only set mark bit for the VM object and
  invoke mark function separately.
  [Bug #12583]

* test/ruby/test_gc.rb: add a test.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-13 07:08:32 +00:00
duerst
e3600eaca1 * enc/iso_8859_5.c, test/ruby/enc/test_case_comprehensive.rb:
Implement non-ASCII case conversion for ISO-8859-5, by Masaru Onodera.
* test/ruby/enc/test_case_comprehensive.rb: Fix order of encodings.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-13 05:40:12 +00:00
ko1
d8c3672b01 * iseq.c (Init_ISeq): undef ISeq.translate and ISeq.load_iseq
to prevent calling super classes' methods.

  Without this patch, you can write workaround like:

    class << RubyVM::InstructionSequence
      def translate; end
      undef translate
    end

* test/ruby/test_iseq.rb: add a test.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-13 05:26:00 +00:00
duerst
336b6b1980 * enc/iso_8859_13.c, test/ruby/enc/test_case_comprehensive.rb:
Implement non-ASCII case conversion for ISO-8859-13, by Kanon Shindo.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-13 01:50:17 +00:00
duerst
19b5e818dd * enc/iso_8859_3.c, test/ruby/enc/test_case_comprehensive.rb:
Implement non-ASCII case conversion for ISO-8859-3, by Takuya Miyamoto.
* test/ruby/enc/test_case_comprehensive.rb: Extend special treatment
  for Turkic.
* enc/iso_8859_3.c: Exclude dotless i/I with dot from case-insensitive
  matching because they are not a case pair.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-13 00:02:34 +00:00
duerst
0e29256175 * test/ruby/enc/test_iso_8859.rb: Excluded dotless i/I with dot from
case-insensitive matching because they are not a case pair.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-12 23:40:26 +00:00
duerst
7c0cb4351a * revert r55642 (previous commit) because of test failure at
144148780


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-12 12:59:46 +00:00
duerst
7b66f0bae9 * enc/iso_8859_3.c, test/ruby/enc/test_case_comprehensive.rb:
Implement non-ASCII case conversion for ISO-8859-3, by Takuya Miyamoto.
* test/ruby/enc/test_case_comprehensive.rb: Extend special treatment
  for Turkic.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55642 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-12 12:33:17 +00:00
duerst
07ac66ccec * enc/iso_8859_10.c, test/ruby/enc/test_case_comprehensive.rb:
Implement non-ASCII case conversion for ISO-8859-10, by Toya Hosokawa.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-10 10:53:45 +00:00
duerst
8f0b58d36a * test/ruby/enc/test_case_comprehensive.rb: Changed testing logic in to
catch unintended modifications of characters that do not have a case
  equivalent in the respective encoding.
* enc/iso_8859_1.c, enc/iso_8859_15.c: Fixed unintended modifications of
  micro sign and y with diaeresis.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55626 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-10 10:33:51 +00:00
duerst
3a2553c356 * enc/iso_8859_4.c, test/ruby/enc/test_case_comprehensive.rb:
Implement non-ASCII case conversion for ISO-8859-4, by Kotaro Yoshida.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55624 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-10 08:05:39 +00:00
duerst
0657672a0c git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55622 b2dd03c8-39d4-4d8f-98ff-823fe69b080e 2016-07-10 07:14:34 +00:00
nobu
295f60b94d util.c: round nearly middle value
* util.c (ruby_dtoa): [EXPERIMENTAL] adjust the case that the
  Float value is close to the exact but unrepresentable middle
  value of two values in the given precision, as r55604.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-10 05:27:27 +00:00
naruse
c016898e79 * vm_args.c (setup_parameters_complex): don't raise ArgumentError
if an array is given for instance_exec with optional argument.
  [ruby-core:76300] [Bug #12568]
  https://github.com/rails/rails/pull/25699

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-07 18:59:38 +00:00