Commit graph

16449 commits

Author SHA1 Message Date
Hiroshi SHIBATA
958f9d425a [rubygems/rubygems] Use capture_output instead of capture_io for test-unit
ab9c80d4cb
2021-05-12 17:24:43 +09:00
Hiroshi SHIBATA
3948be3503 [rubygems/rubygems] Use assert_path_exist and assert_path_not_exist instead of assert_path_exists and refute_path_exists
a7c93558c3
2021-05-12 17:24:43 +09:00
Hiroshi SHIBATA
81d793a921 [rubygems/rubygems] Extract assert_output to assert_empty and assert_equal with capture_output
f6759440a4
2021-05-12 17:24:43 +09:00
Hiroshi SHIBATA
183174475c [rubygems/rubygems] Use Regexp with refute_match
51fdbe53bc
2021-05-12 17:24:43 +09:00
Hiroshi SHIBATA
3c9633acfc [rubygems/rubygems] Also use capture_output instead of capture_io
229858ea56
2021-05-12 17:24:43 +09:00
Hiroshi SHIBATA
26cbda8dc9 [rubygems/rubygems] Use capture_output instead of capture_io.
ad9206d4d0
2021-05-12 17:24:43 +09:00
Koichi Sasada
5a6af44e20 skip test for debug.
test_memsize_of_iseq fails on repeat tests and it seems to difficult
to solve immediately. Now this test is skipped.

It seems that the result of `memsize_of(Object.new)` are increased.
Why...?
2021-05-12 12:57:53 +09:00
Koichi Sasada
3df7c967bb suppress warnings on repeat tests.
Constant definitions are affect on outer namespace of an anonymous
module. To define constants on the anonymous module, this patch
uses Module#class_eval(str).
2021-05-12 12:53:14 +09:00
卜部昌平
6911b4bc82 test_cdhash: refactor change class
It is now strange to test Complex in a class named Rational_Test.
2021-05-12 10:30:46 +09:00
卜部昌平
cc0dc67bbb cdhash_cmp: can also take complex
There are complex literals `123i`, which can also be a case condition.
2021-05-12 10:30:46 +09:00
卜部昌平
d0e6c6e682 cdhash_cmp: rational literals with fractions
Nobu kindly pointed out that rational literals can have fractions.
2021-05-12 10:30:46 +09:00
卜部昌平
2bc293e899 cdhash_cmp: can take rational literals
Rational literals are those integers suffixed with `r`.  They tend to
be a part of more complex expressions like `123/456r`, but in theory
they can live alone.  When such "bare" rational literals are passed to
case-when branch, we have to take care of them.  Fixes [Bug #17854]
2021-05-12 10:30:46 +09:00
Takashi Kokubun
cc1ea6e023
Run nmake check on Actions (#4487)
* Run nmake check on Actions

* Skip tests not working in mswin GitHub Actions

* Override TEMP

* Revert "Skip tests not working in mswin GitHub Actions"

This reverts commit 544d2575fc.

* Revert "Revert "Skip tests not working in mswin GitHub Actions""

This reverts commit e1f8ad7862.

* Fix timeouts

* Skip some more broken tests

* Update windows.yml

* Add a guard for rbasic_spec

* Revert "Update windows.yml"

This reverts commit bc9694b6b3.

* Skip the ensure clause

* Simplify the ensure
2021-05-11 15:18:44 -07:00
Alan Wu
39a2ba5cc5
Method cache: fix refinement entry handling
To invalidate some callable method entries, we replace the entry in the
class. Most types of method entries are on the method table of the
origin class, but refinement entries without an orig_me are housed in
the method table of the class itself. They are there because refinements
take priority over prepended methods.

By unconditionally inserting a copy of the refinement entry into the
origin class, clearing the method cache created situations where there
are refinement entry duplicates in the lookup chain, leading to infinite
loops and other problems.

Update the replacement logic to use the right class that houses the
method entry. Also, be more selective about cache invalidation when
moving refinement entries for prepend. This avoids calling
clear_method_cache_by_id_in_class() before refinement entries are in the
place it expects.

[Bug #17806]
2021-05-11 12:05:06 -04:00
Yusuke Endoh
1b61cdd5e0 test/irb/test_raise_no_backtrace_exception.rb: Set LC_MESSAGES as UTF-8 2021-05-11 19:38:06 +09:00
Takashi Kokubun
66ca6ede16 [ruby/irb] Skip test_raise_exception_with_invalid_byte_sequence
on Windows for now. It seems like we haven't figured this out yet.

ecf5a1ace1
2021-05-11 14:46:33 +09:00
Takashi Kokubun
afa70d079f
Explicitly specify encoding for another test as well
Same as e2ccc3301e
39102539/job/k8m1yrrjesxbgvtq
2021-05-10 21:41:36 -07:00
Yusuke Endoh
e2ccc3301e test/irb/test_raise_no_backtrace_exception.rb: UTF-8 is expected
... for the output of assert_in_out_err.

This will fix the following failure on many CI machines

20210511T030005Z.fail.html.gz
```
  1) Failure:
TestIRB::TestRaiseNoBacktraceException#test_raise_exception_with_different_encoding_containing_invalid_byte_sequence [/home/chkbuild/chkbuild/tmp/build/20210511T030005Z/ruby/test/irb/test_raise_no_backtrace_exception.rb:41]:
pid 221531 exit 0.

1. [1/2] Assertion for "stdout"
   | invalid byte sequence in US-ASCII.
```
2021-05-11 13:30:28 +09:00
Takashi Kokubun
bb54361057 [ruby/irb] Skip the new IRB test on Windows for now
It's not passing from the beginning
2550929220
39100747

71fc180018
2021-05-11 13:01:38 +09:00
David Rodríguez
5b0abba931 Sync bundler & rubygems 2021-05-11 11:29:41 +09:00
aycabta
774cc32b4d [ruby/irb] Treat encodings in exception correctly
4452adbe04
2021-05-11 09:32:08 +09:00
Jean Boussier
c110ade0d2
[ruby/psych] Fix custom marshalization with symbolize_names: true
ee26f26ab5
2021-05-10 19:17:32 +09:00
Hiroshi SHIBATA
ab785b28e2 [ruby/psych] Use assert_raise instead of assert_raises
e6ad12b4e1
2021-05-10 19:09:43 +09:00
Hiroshi SHIBATA
bae9a21e40 [ruby/psych] Use pend instead of skip
efd2a62c9a
2021-05-10 18:53:56 +09:00
Hiroshi SHIBATA
53c5a4bbe1 [ruby/psych] Fixed test-case for NaN
f85a008263
2021-05-10 18:53:49 +09:00
Hiroshi SHIBATA
230d559f6b [ruby/psych] Use Ractor constant for ignoreing condition
cc5f957327
2021-05-10 18:53:41 +09:00
Hiroshi SHIBATA
ce67549c50 [ruby/psych] Use test-unit instead of minitest
01e7310dd3
2021-05-10 18:53:33 +09:00
Jeremy Evans
406ae7fb03 Fix Math.cbrt(0.0) on glibc
This should return 0, but on glibc it returned NaN.

Fixes [Bug #17804]
2021-05-08 14:45:30 -07:00
Nobuyoshi Nakada
c7601fb9ed [ruby/irb] Deal with different screen sizes
7118b3322f
2021-05-08 15:29:36 +09:00
Masataka Pocke Kuwabara
de96ae9b71 [ruby/irb] Dump ancestors' methods by ls command
73edff287c
2021-05-08 14:00:40 +09:00
Hiroshi SHIBATA
f2d6fa16e1 Use assert_ractor for separating test processes 2021-05-06 19:02:10 +09:00
Jeremy Evans
33b5e179a8 [ruby/timeout] Make Timeout::Error#exception with multiple arguments not ignore arguments
This makes:

  raise(Timeout::Error.new("hello"), "world")

raise a TimeoutError instance with "world" as the message instead
of "hello", for consistency with other Ruby exception classes.

This required some internal changes to keep the tests passing.

Fixes [Bug #17812]

952154dbf9
2021-05-06 16:49:26 +09:00
Kenichi Kamiya
564ccd095a [ruby/strscan] Fix segmentation fault of StringScanner#charpos when String#byteslice returns non string value [Bug #17756] (#20)
92961cde2b
2021-05-06 16:20:38 +09:00
Hiroshi SHIBATA
822eb94563
Import from https://github.com/ruby/strscan/pull/19
* Use Gemfile instead of Gem::Specification#add_development_dependency.

* Use pend instead of skip for test-unit.
2021-05-06 16:18:58 +09:00
Kazuki Yamaguchi
364044e090 [ruby/net-http] Do not require stringio
It is not used in net/http library code since commit 15ccd0118c13
(r36473 in ruby svn trunk, 2012).

require's in test suite are also cleaned up.

996d18a43f
2021-05-06 15:58:41 +09:00
nicholas a. evans
337c0e312b
[ruby/net-imap] Move UTF7 & datetime formatting to net/imap/data_encoding
Partially implements #10.

0d43c5e856
2021-05-06 15:20:34 +09:00
nicholas a. evans
912f39b2c3
[ruby/net-imap] Update AUTH=PLAIN to be a little closer to RFC4616
* Add authzid support
* must not contain NULL chars
* improve rdoc

a587fc71b7
2021-05-06 15:20:34 +09:00
MSP-Greg
370949aad6 test/net/ftp/test_ftp.rb - fix intermittent MinGW failure
Fixes intermittent error as below:

[242/838] 5316=test_ftp
#<Thread:0x0000020aa8733f20 D:/a/ruby/ruby/src/test/net/ftp/test_ftp.rb:2532 run> terminated with exception (report_on_exception is true):
D:/a/ruby/ruby/src/tool/lib/minitest/unit.rb:199:in `assert': Expected #<Errno::ECONNRESET: An existing connection was forcibly closed by the remote host.> to be nil. (MiniTest::Assertion)
	from D:/a/ruby/ruby/src/tool/lib/test/unit/core_assertions.rb:504:in `assert'
	from D:/a/ruby/ruby/src/tool/lib/minitest/unit.rb:299:in `assert_nil'
	from D:/a/ruby/ruby/src/test/net/ftp/test_ftp.rb:430:in `ensure in block in test_list_read_timeout_exceeded'
	from D:/a/ruby/ruby/src/test/net/ftp/test_ftp.rb:431:in `block in test_list_read_timeout_exceeded'
	from D:/a/ruby/ruby/src/test/net/ftp/test_ftp.rb:2539:in `block in create_ftp_server'
D:/a/ruby/ruby/src/test/net/ftp/test_ftp.rb:426:in `write': An existing connection was forcibly closed by the remote host. (Errno::ECONNRESET)
	from D:/a/ruby/ruby/src/test/net/ftp/test_ftp.rb:426:in `print'
	from D:/a/ruby/ruby/src/test/net/ftp/test_ftp.rb:426:in `block (2 levels) in test_list_read_timeout_exceeded'
	from D:/a/ruby/ruby/src/test/net/ftp/test_ftp.rb:420:in `each'
	from D:/a/ruby/ruby/src/test/net/ftp/test_ftp.rb:420:in `each_with_index'
	from D:/a/ruby/ruby/src/test/net/ftp/test_ftp.rb:420:in `block in test_list_read_timeout_exceeded'
	from D:/a/ruby/ruby/src/test/net/ftp/test_ftp.rb:2539:in `block in create_ftp_server'
2021-05-05 08:49:16 +12:00
Yusuke Endoh
113ddf4d1d test/net/imap/test_imap.rb: wait a moment before socket is closed
to try to suppress a failure on Solaris. This is the same as
19504d115d

20210504T070007Z.fail.html.gz
```
  1) Error:
IMAPTest#test_idle_done_not_during_idle:
Errno::EINVAL: Invalid argument - connect(2) for [::1]:33839
    /export/home/chkbuild/chkbuild-sunc/tmp/build/20210504T070007Z/ruby/.ext/common/socket.rb:1214:in `__connect_nonblock'
    /export/home/chkbuild/chkbuild-sunc/tmp/build/20210504T070007Z/ruby/.ext/common/socket.rb:1214:in `connect_nonblock'
    /export/home/chkbuild/chkbuild-sunc/tmp/build/20210504T070007Z/ruby/.ext/common/socket.rb:56:in `connect_internal'
    /export/home/chkbuild/chkbuild-sunc/tmp/build/20210504T070007Z/ruby/.ext/common/socket.rb:137:in `connect'
    /export/home/chkbuild/chkbuild-sunc/tmp/build/20210504T070007Z/ruby/.ext/common/socket.rb:642:in `block in tcp'
    /export/home/chkbuild/chkbuild-sunc/tmp/build/20210504T070007Z/ruby/.ext/common/socket.rb:227:in `each'
    /export/home/chkbuild/chkbuild-sunc/tmp/build/20210504T070007Z/ruby/.ext/common/socket.rb:227:in `foreach'
    /export/home/chkbuild/chkbuild-sunc/tmp/build/20210504T070007Z/ruby/.ext/common/socket.rb:632:in `tcp'
    /export/home/chkbuild/chkbuild-sunc/tmp/build/20210504T070007Z/ruby/lib/net/imap.rb:1223:in `tcp_socket'
    /export/home/chkbuild/chkbuild-sunc/tmp/build/20210504T070007Z/ruby/lib/net/imap.rb:1180:in `initialize'
    /export/home/chkbuild/chkbuild-sunc/tmp/build/20210504T070007Z/ruby/test/net/imap/test_imap.rb:289:in `new'
    /export/home/chkbuild/chkbuild-sunc/tmp/build/20210504T070007Z/ruby/test/net/imap/test_imap.rb:289:in `test_idle_done_not_during_idle'
```
2021-05-04 19:03:26 +09:00
MSP-Greg
5a42ef496a Fix test/net/http/test_https.rb host naming for Windows 2021-05-04 08:53:58 +09:00
Nobuyoshi Nakada
14ee263505
Workaround failures on Windows 2021-05-04 00:59:29 +09:00
Yusuke Endoh
19504d115d test/net/smtp/test_smtp.rb: wait a moment before socket is closed
On Solaris, Socket.tcp seems to fail with EINVAL if the server closes
the connection immediately after accpeted. I think this is a bug of
Socket.tcp, but seems difficult to fix soon.

20210429T100007Z.fail.html.gz
```
  1) Failure:
Net::TestSMTP#test_eof_error_backtrace [/export/home/chkbuild/chkbuild-sunc/tmp/build/20210429T100007Z/ruby/test/net/smtp/test_smtp.rb:193]:
[ruby-core:78550] [Bug #13018].
[EOFError] exception expected, not #<Net::ReadTimeout: Net::ReadTimeout>.
```
2021-04-30 01:36:04 +09:00
Hiroshi SHIBATA
f985dafee7
Guard for < Ruby 3.0 2021-04-28 17:58:12 +09:00
Alexander Popov
2afbe7113a
[ruby/optparse] Add EditorConfig file
More info here: https://editorconfig.org/

For example, `ruby/ruby` has it: 05ebaee/.editorconfig

Also fix some offenses.

29402e7e0e
2021-04-28 11:56:15 +09:00
Lukas Eipert
842f00f452 [ruby/net-http] Decode user and password from env configured proxy
If someone sets an env variable defining a http_proxy, containing a
username / password with percent-encoded characters, then the resulting
base64 encoded auth header will be wrong.

For example, suppose a username is `Y\X` and the password is `R%S] ?X`.
Properly URL encoded the proxy url would be:

    http://Y%5CX:R%25S%5D%20%3FX@proxy.example:8000

The resulting proxy auth header should be: `WVxYOlIlU10gP1g=`, but the
getters defined by ruby StdLib `URI` return a username `Y%5CX` and
password `R%25S%5D%20%3FX`, resulting in `WSU1Q1g6UiUyNVMlNUQlMjAlM0ZY`.
As a result the proxy will deny the request.

Please note that this is my first contribution to the ruby ecosystem, to
standard lib especially and I am not a ruby developer.

References:

- https://gitlab.com/gitlab-org/gitlab/-/issues/289836
- https://bugs.ruby-lang.org/projects/ruby-master/repository/trunk/revisions/58461
- https://bugs.ruby-lang.org/issues/17542

e57d4f38aa
2021-04-28 11:01:23 +09:00
Yusuke Endoh
734557498f test/net/ftp/test_ftp.rb: Use RubyVM::JIT instead of RubyVM::MJIT 2021-04-28 09:10:58 +09:00
Yusuke Endoh
8e2ac2140d test/net/ftp/test_ftp.rb: reduce the size of a long response
"9" * 999999999 (about 1 GB) was too large for some CI servers.
This commit changes the size to 999999 (about 1 MB).

20210427T141707Z.fail.html.gz
20210427T145408Z.fail.html.gz
2021-04-28 03:12:48 +09:00
Yusuke Endoh
fe11031b67 test/net/ftp/test_ftp.rb: remove unused variable 2021-04-28 02:27:58 +09:00
Yusuke Endoh
99eebf8260 test/ruby/test_fiber.rb: reduce the count of object creation to cause GC
... on Solaris. This is the same as 547887138f.

20210427T160003Z.fail.html.gz
```
[ 7667/20965] TestFiber#test_fork_from_fiber/export/home/users/chkbuild/cb-gcc/tmp/build/20210427T160003Z/ruby/test/ruby/test_fiber.rb:397:in `transfer': can't alloc machine stack to fiber (1 x 139264 bytes): Not enough space (FiberError)
	from /export/home/users/chkbuild/cb-gcc/tmp/build/20210427T160003Z/ruby/test/ruby/test_fiber.rb:397:in `block (6 levels) in test_fork_from_fiber'
	from /export/home/users/chkbuild/cb-gcc/tmp/build/20210427T160003Z/ruby/test/ruby/test_fiber.rb:396:in `times'
	from /export/home/users/chkbuild/cb-gcc/tmp/build/20210427T160003Z/ruby/test/ruby/test_fiber.rb:396:in `block (5 levels) in test_fork_from_fiber'
	from /export/home/users/chkbuild/cb-gcc/tmp/build/20210427T160003Z/ruby/test/ruby/test_fiber.rb:392:in `fork'
	from /export/home/users/chkbuild/cb-gcc/tmp/build/20210427T160003Z/ruby/test/ruby/test_fiber.rb:392:in `block (4 levels) in test_fork_from_fiber'
 = 0.88 s

...

  1) Failure:
TestFiber#test_fork_from_fiber [/export/home/users/chkbuild/cb-gcc/tmp/build/20210427T160003Z/ruby/test/ruby/test_fiber.rb:409]:
[ruby-core:41456].
<0> expected but was
<1>.
```
2021-04-28 02:13:32 +09:00
Benoit Daloze
3a3b19b2bb Fix Monitor to lock per Fiber, like Mutex [Bug #17827] 2021-04-27 18:42:50 +02:00