Commit graph

15017 commits

Author SHA1 Message Date
Yusuke Endoh
ee372aa873 test/zlib/test_zlib.rb: Set binmode to test output file
Seems like the test `TestZlibGzipFile#test_gzip_reader_zcat` fails when
the timestamp has `\n\n`.

38597932
```
  1) Error:
TestZlibGzipFile#test_gzip_reader_zcat:
Zlib::DataError: invalid distance too far back
    C:/projects/ruby/test/zlib/test_zlib.rb:522:in `initialize'
    C:/projects/ruby/test/zlib/test_zlib.rb:522:in `new'
    C:/projects/ruby/test/zlib/test_zlib.rb:522:in `zcat'
    C:/projects/ruby/test/zlib/test_zlib.rb:522:in `block (2 levels) in test_gzip_reader_zcat'
    C:/projects/ruby/test/zlib/test_zlib.rb:521:in `open'
    C:/projects/ruby/test/zlib/test_zlib.rb:521:in `block in test_gzip_reader_zcat'
    C:/projects/ruby/lib/tempfile.rb:358:in `create'
    C:/projects/ruby/test/zlib/test_zlib.rb:510:in `test_gzip_reader_zcat'
```

The test time is around 2021-04-08 04:40 +0900. Maybe the following time
should trigger the bug.

```
irb(main):001:0> Time.at(1617824266)
=> 2021-04-08 04:37:46 +0900
irb(main):002:0> [1617824266].pack("V")
=> "\n\nn`"
```
2021-04-08 14:26:42 +09:00
Peter Zhu
d8a13e5049 [Bug #17780] Fix Method#super_method for module alias
Method#super_method crashes for aliased module methods because they are
not defined on a class. This bug was introduced in
c60aaed185 as part of bug #17130.
2021-04-07 15:16:58 -04:00
Yusuke Endoh
fbbc37dc1d test/drb/test_drb.rb: Specify the host of DRbServer
to try fixing the following error.

20210407T063004Z.log.html.gz
```
[  605/21105] DRbTests::TestDRbSSLAry#test_06_next/home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/lib/drb/drb.rb:1138:in `method_missing': undefined method `regist' for [1, 2, "III", 4, "five", 6]:Array (NoMethodError)
	from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/lib/drb/extserv.rb:21:in `block in initialize'
	from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/.ext/common/monitor.rb:202:in `synchronize'
	from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/.ext/common/monitor.rb:202:in `mon_synchronize'
	from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/lib/drb/extserv.rb:20:in `initialize'
	from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/test/drb/ut_array_drbssl.rb:35:in `new'
	from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/test/drb/ut_array_drbssl.rb:35:in `<main>'
 = 100.05 s
```

Here is my analysis:
The test of drb used both `druby://:0` and `druby://localhost:0` for
DRbServer. However, the former listens on IPv4, and the latter does on
IPv6, depending on environments. The port 0 is automatically assigned,
but sometimes the same port is used to both because they are different
protocols (IPv4 and IPv6). In this case, their URIs are resolved to the
completely same one (`druby://localhost:port`), which confuses the
method `DRb.here?` which determines the DRbObject is remote or local.

This changeset uses `druby://localhost:0` consistently.
2021-04-07 16:34:19 +09:00
Kazuhiro NISHIYAMA
31ba817887
Try to fix Leaked file descriptor
2274767991 (step):15:118
```
Leaked file descriptor: DRbTests::TestDRbTCP#test_immediate_close: 7 : #<TCPServer:fd 7, AF_INET, 0.0.0.0, 42451>
Leaked file descriptor: DRbTests::TestDRbTCP#test_immediate_close: 9 : #<IO:fd 9>
Leaked file descriptor: DRbTests::TestDRbTCP#test_immediate_close: 10 : #<IO:fd 10>
```
2021-04-06 16:03:20 +09:00
Nobuyoshi Nakada
856a9701fd
Get rid of multibyte prefix to tmpdir 2021-04-05 21:20:51 +09:00
Nobuyoshi Nakada
4b6fa03a72
[ruby/tmpdir] Make usable chars more strict
Remove other than alphanumeric and some punctuations considered
filesystem-safe, instead of removing some unsafe chars only.

https://hackerone.com/reports/1131465

adf294bc2d
2021-04-05 21:08:57 +09:00
Nobuyoshi Nakada
4b92633043 [ruby/irb] Suppress verbose messages in the parallel test
`:VERBOSE` flag needs to be set prior to `IRB::Irb.new`.

0dbe292979
2021-04-05 14:00:21 +09:00
Yusuke Endoh
2fcae4f90a test/ruby/test_lambda.rb: Remove "warning: assigned but unused variable" 2021-04-04 15:26:09 +09:00
Nobuyoshi Nakada
64b991b0cd [ruby/rdoc] Links to document texts without "rdoc-ref:" prefix
While links to generated HTML from RDoc file needs to be prefixed
by "rdoc-ref:" currently, in case of explicit references this
seems just redundant.

Also GitHub RDoc support does not work with this prefix.

This patch lets links to such document texts (".rb", ".rdoc" and
".md" now) refer URLs generated by `RDoc::TopLevel#http_url`
without the prefix.

f18b27b69d
2021-04-03 01:22:09 +09:00
Nobuyoshi Nakada
a6948329f8 [ruby/rdoc] Clarify that dots in URL are replaced
The dots in all path components from the document root are
replaced with underscores, not only in the basename.

7a3417ea4c
2021-04-03 01:22:00 +09:00
aycabta
61e1cf23ac [ruby/rdoc] Treat emphasis tags as excluding other notations
And exclusive notations don't exclude other exclusive notations.

b8baa9a435
2021-04-03 01:21:50 +09:00
aycabta
e84d275fe6 [ruby/rdoc] Treat other tags as word boundaries
8222f85a17
2021-04-03 01:21:38 +09:00
aycabta
54aa11efa8 [ruby/rdoc] Disable other notations in <code> tags
0cd3b55210
2021-04-03 01:21:12 +09:00
aycabta
ab89c45b90 [ruby/irb] Evaluate each toplevel statement
bc1b1d8bc3
2021-04-03 01:17:08 +09:00
aycabta
254cd937c2 [ruby/irb] Add test for multiline paste
e93c9cb54d
2021-04-03 01:15:46 +09:00
aycabta
0eb1491957 [ruby/irb] Add yamatanooroti test example
279155fcee
2021-04-03 01:14:31 +09:00
aycabta
7e93917458 [ruby/reline] Reset @rest_height when clear screen
3a7019b0d5
2021-04-02 17:33:48 +09:00
Takashi Kokubun
9e336f73fb [ruby/irb] Add show_source command
108cb04352
2021-04-02 16:40:06 +09:00
Nobuyoshi Nakada
79af8ce6d7 [ruby/irb] Colorize __END__ as keyword
9b84018311
2021-04-02 10:52:53 +09:00
Koichi Sasada
ecfa8dcdba fix return from orphan Proc in lambda
A "return" statement in a Proc in a lambda like:
  `lambda{ proc{ return }.call }`
should return outer lambda block. However, the inner Proc can become
orphan Proc from the lambda block. This "return" escape outer-scope
like method, but this behavior was decieded as a bug.
[Bug #17105]

This patch raises LocalJumpError by checking the proc is orphan or
not from lambda blocks before escaping by "return".

Most of tests are written by Jeremy Evans
https://github.com/ruby/ruby/pull/4223
2021-04-02 09:25:33 +09:00
Koichi Sasada
1ac68bba4e [ruby/irb] SIGINT should raise Interrupt after IRB session
5832cfe75b
2021-04-02 01:57:44 +09:00
Nobuyoshi Nakada
ccb0b7ab7d [ruby/irb] Suppress verbose messages in the parallel test
`:VERBOSE` flag needs to be set prior to `IRB::Irb.new`.

78604682d9
2021-04-02 01:47:58 +09:00
Nobuyoshi Nakada
2a02b61fae
Use EnvUtil.under_gc_stress 2021-03-31 22:14:15 +09:00
Koichi Sasada
1fac99afda skip marking for uninitialized imemo_env.
RUBY_INTERNAL_EVENT_NEWOBJ can expose uninitialized imemo_env
objects and marking it will cause critical error. This patch
skips marking on uninitialized imemo_env.

See: 20210329T183003Z.fail.html.gz

Shortest repro-code is provided by mame-san.
2021-03-31 19:18:32 +09:00
Kazuki Yamaguchi
e2bf3659e1 [ruby/openssl] pkcs7: keep private key when duplicating PKCS7_SIGNER_INFO
ASN1_dup() will not copy the 'pkey' field of a PKCS7_SIGNER_INFO object
by design; it is a temporary field kept until the PKCS7 structure is
finalized. Let's bump reference counter of the pkey in the original
object and use it in the new object, too.

This commit also removes PKCS7#add_signer's routine to add the
content-type attribute as a signed attribute automatically. This
behavior was not documented or tested. This change should not break any
working user code since the method was completely useless without the
change above.

20ca7a27a8
2021-03-31 18:05:07 +09:00
Nobuyoshi Nakada
5cdf99f64e
mkmf: fixed install directories of header files in extension libraries [Bug #17761]
When installing an extension library which provides a header, that
header should be installed under site_ruby (or vendor_ruby when
"--vendor" option was given to extconf.rb).  However, currently
this file is about to be installed in the core include directory.
2021-03-30 23:28:49 +09:00
Samuel Williams
611e711085 Test incorrect behaviour of rb_io_wait_readable/writable. 2021-03-30 23:16:59 +13:00
Samuel Williams
92449e0e99 Fix handling of timeout accessing scheduler outside of non-blocking context. 2021-03-30 18:38:42 +13:00
Samuel Williams
af1c587546 Improve timeout tests. 2021-03-30 18:38:42 +13:00
Samuel Williams
511acba4ae Update method name and add documentation. 2021-03-30 18:38:42 +13:00
Samuel Williams
4c53dc970b Add hook for Timeout.timeout. 2021-03-30 18:38:42 +13:00
Jeremy Evans
62e66aedb0 Add more tests for defined? with method calls 2021-03-29 07:45:15 -07:00
Nobuyoshi Nakada
e8317d90b0
[ruby/optparse] Fixed error message of unparsed non-option
Close https://github.com/ruby/optparse/issues/3

94c5cf4032
2021-03-29 19:37:24 +09:00
Jeremy Evans
eca8ffaa0b
[ruby/optparse] Add OptionParser#require_exact accessor
This allows you to disable allowing abbreviations of long options
and using short options for long options.

Implements Ruby Feature #11523

dfefb2d2e2
2021-03-29 15:55:41 +09:00
aycabta
a1938ec308 [ruby/irb] Always add input method when calling Irb.new in tests
When passes input method as nil to Context.new through Irb.new,
ReidlineInputMethod.new is executed and the global internal state of Reline is
rewritten, therefore other tests are failed in the Ruby repository. This
commit changes to use TestInputMethod.

010dce9210
2021-03-29 05:10:08 +09:00
Kenichi Kamiya
9af57eeed6
[ruby/pathname] Fix segfault of Pathname#split
Fix segmentation fault of Pathname#split when File.split returns
non array value [Bug #17755]

e29b49e3b1
1db7479a74
2021-03-28 14:04:10 +09:00
Hiroshi SHIBATA
447e095413
[ruby/pathname] Support Ruby 3.0
Update test/pathname/test_pathname.rb

29645187e0
78584864de

Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2021-03-28 14:03:42 +09:00
Kenichi Kamiya
31e0382723
Keep non evaluated keys in Hash#transform_keys! [Bug #17735] 2021-03-28 09:14:57 +09:00
Kenichi Kamiya
0a544c0c35
Fix segmentation fault when Module#name returns non string value [Bug #17754]
* Add test for NoMethodError#to_s does not segfault

* Ensure no segfault even if Module#name is overridden
2021-03-28 08:47:42 +09:00
Kenichi Kamiya
aceb8c0b4b
Fix Enumerable#tally with some arguments pattern [Feature #17744]
* Add test cases for Enumerable#tally with hash argument

* Add ruby/spec for Enumerable#tally with hash argument

* Fix Enumerable#tally does not update given frozen hash

* Add test cases for Enumerable#tally with hash convertible arguments

* Fix SEGV when Enumerable#tally takes non Hash convertible

* FIx cosmetic damage enum.c
2021-03-27 12:55:46 +09:00
Nobuyoshi Nakada
8a89dd2a6c
No codesign in tests 2021-03-27 10:15:01 +09:00
Nobuyoshi Nakada
9143d21b1b
Enumerable#tally with the resulting hash [Feature #17744] 2021-03-26 16:29:21 +09:00
aycabta
ad8842c06d [ruby/irb] Cache completion files to require
612ebcb311
2021-03-25 18:54:02 +09:00
Peter Zhu
b25361f731 Change heap walking to be safe for object allocation 2021-03-24 14:31:10 -04:00
Jeremy Evans
f9f13a4f6d Ensure that caller respects the start argument
Previously, if there were ignored frames (iseq without pc), we could
go beyond the requested start frame.  This has two changes:

1) Ensure that we don't look beyond the start frame by using
last_cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(last_cfp) until the
desired start frame is reached.

2) To fix the failures caused by change 1), which occur when a
limited number of frames is requested, scan the VM stack before
allocating backtrace frames, looking for ignored frames. This
is complicated if there are ignored frames before and after
the start, in which case we need to scan until the start frame,
and then scan backwards, decrementing the start value until we
get to the point where start will result in the number of
requested frames.

This fixes a Rails test failure.  Jean Boussier was able to
to produce a failing test case outside of Rails.

Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
2021-03-24 11:15:00 -07:00
Nobuyoshi Nakada
2dcbc6ef96
[ruby/irb] fix completion test when out-of-place build 2021-03-24 16:10:27 +09:00
aycabta
89caf51d93 [ruby/reline] Suppress crashing when completer_{quote,word_break}_characters is empty
c6f1164942
2021-03-24 15:43:34 +09:00
aycabta
758f2b35f9 [ruby/reline] Support preposing and postposing for Reline.completion_proc
1f469de90c
2021-03-24 15:43:27 +09:00
aycabta
4b33d860e8 [ruby/reline] Reline.delete_text removes the current line in multiline
da90c094a1
2021-03-24 15:43:19 +09:00
aycabta
0927756e58 [ruby/irb] Complete require and require_relative
1c61178b4c
2021-03-24 15:11:41 +09:00