summaryrefslogtreecommitdiff
path: root/spec
AgeCommit message (Collapse)Author
2020-03-24Show failed timesNobuyoshi Nakada
2020-03-23Try to avoid random failures on clock_getres_spec.rbTakashi Kokubun
This spec fails too often https://github.com/ruby/ruby/runs/529546249 https://github.com/ruby/ruby/runs/524933256
2020-03-22Support obj.clone(freeze: true) for freezing cloneJeremy Evans
This freezes the clone even if the receiver is not frozen. It is only for consistency with freeze: false not freezing the clone even if the receiver is frozen. Because Object#clone is now partially implemented in Ruby and not fully implemented in C, freeze: nil must be supported to provide the default behavior of only freezing the clone if the receiver is frozen. This requires modifying delegate and set, to set freeze: nil instead of freeze: true as the keyword parameter for initialize_clone. Those are the two libraries in stdlib that override initialize_clone. Implements [Feature #16175] Notes: Merged: https://github.com/ruby/ruby/pull/2969
2020-03-21Removed non-RUBY_INTEGER_UNIFICATION codeNobuyoshi Nakada
2020-03-16`Proc` made by `Hash#to_proc` should be a lambda [Bug #12671]Yusuke Endoh
Like `Symbol#to_proc` (f0b815dc670b61eba1daaa67a8613ac431d32b16)
2020-03-16hash.c: Do not use the fast path (rb_yield_values) for lambda blocksYusuke Endoh
As a semantics, Hash#each yields a 2-element array (pairs of keys and values). So, `{ a: 1 }.each(&->(k, v) { })` should raise an exception due to lambda's arity check. However, the optimization that avoids Array allocation by using rb_yield_values for blocks whose arity is more than 1 (introduced at b9d29603375d17c3d1d609d9662f50beaec61fa1 and some commits), seemed to overlook the lambda case, and wrongly allowed the code above to work. This change experimentally attempts to make it strict; now the code above raises an ArgumentError. This is an incompatible change; if the compatibility issue is bigger than our expectation, it may be reverted (until Ruby 3.0 release). [Bug #12706]
2020-03-15Enclosed version constantNobuyoshi Nakada
2020-03-15Added guard against [Bug #16497]Nobuyoshi Nakada
2020-03-15[ruby/stringio] StringIO#initialize default to the source string encodingJean Boussier
[Bug #16497] https://github.com/ruby/stringio/commit/4958a5ccab
2020-03-12Update some syslog tests to absurb the format change of FreeBSD syslogYusuke Endoh
FreeBSD ``` $ ruby -rsyslog -e 'Syslog.open("rubyspec", Syslog::LOG_PERROR) {|s| s.log(Syslog::LOG_ALERT, "Hello") }' rubyspec 78462 - - Hello ``` Linux ``` $ ruby -rsyslog -e 'Syslog.open("rubyspec", Syslog::LOG_PERROR) {|s| s.log(Syslog::LOG_ALERT, "Hello") }' rubyspec: Hello ``` https://github.com/freebsd/freebsd/commit/591ef7c8076109cff3c41f9bb50da996a34121e9
2020-03-10Added version guard for OpenSSL::ConfigNobuyoshi Nakada
2020-03-09Don't display singleton class in Method#inspect unless method defined thereJeremy Evans
Previously, if an object has a singleton class, and you call Object#method on the object, the resulting string would include the object's singleton class, even though the method was not defined in the singleton class. Change this so the we only show the singleton class if the method is defined in the singleton class. Fixes [Bug #15608] Notes: Merged: https://github.com/ruby/ruby/pull/2949 Merged-By: jeremyevans <code@jeremyevans.net>
2020-03-08Do not autosplat when calling procs that accept rest and keywordsJeremy Evans
When providing a single array to a block that takes a splat, pass the array as one argument of the splat instead of as the splat itself, even if the block also accepts keyword arguments. Previously, this behavior was only used for blocks that did not accept keywords. Implements [Feature#16166] Notes: Merged: https://github.com/ruby/ruby/pull/2502
2020-03-07Removed unnecessary `chomp`Nobuyoshi Nakada
As `String#split` with the default argument drops trailing newline as a separator, preceding `String#chomp` is futile.
2020-03-07Fix a typoKazuhiro NISHIYAMA
2020-03-05spec/ruby/core/process/exec_spec.rb: remove a guard for openbsdYusuke Endoh
openbsd current seems to behave the same as other OSs. https://rubyci.org/logs/rubyci.s3.amazonaws.com/openbsd-current/ruby-master/log/20200305T063005Z.fail.html.gz
2020-02-29Adjust typesNobuyoshi Nakada
2020-02-28Bump rake from 10.5.0 to 12.3.3 in /spec/mspec (#2942)dependabot[bot]
Bumps [rake](https://github.com/ruby/rake) from 10.5.0 to 12.3.3. - [Release notes](https://github.com/ruby/rake/releases) - [Changelog](https://github.com/ruby/rake/blob/master/History.rdoc) - [Commits](https://github.com/ruby/rake/compare/v10.5.0...v12.3.3) Signed-off-by: dependabot[bot] <support@github.com> Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2020-02-28Update to ruby/spec@41bf282Benoit Daloze
2020-02-28Update to ruby/mspec@a514ad7Benoit Daloze
2020-02-27Remove support for passing nil to IO#ungetcJeremy Evans
Fixes [Bug #13675] Notes: Merged: https://github.com/ruby/ruby/pull/2935
2020-02-23Warn non-nil `$/` [Feature #14240]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/2920
2020-02-23Warn non-nil `$\` [Feature #14240]Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/2920
2020-02-22Expand Symbol#to_proc specs to be clearerBenoit Daloze
2020-02-22Proc from Symbol needs a receiverNobuyoshi Nakada
So its arity should be -2 instead of -1. [Bug #16640] https://bugs.ruby-lang.org/issues/16640#change-84337
2020-02-19`Proc` made by `Symbol#to_proc` should be a lambda [Bug #16260]Nobuyoshi Nakada
2020-02-13spec/ruby/library/socket/constants/constants_spec.rb: skip on AndroidYusuke Endoh
IP_MAX_MEMBERSHIPS seems not to be defined on Android
2020-02-13spec/ruby/library/socket/addrinfo/getnameinfo_spec.rb: skip on AndroidYusuke Endoh
FreeBSD's GETNAMEINFO(3) says: > If a link-layer address or UNIX-domain address is passed to > getnameinfo(), its ASCII representation will be stored in host. The > string pointed to by serv will be set to the empty string if non-NULL; > flags will always be ignored. Android seems to behave like FreeBSD.
2020-02-13spec/ruby/library/etc/: skip the specs related to group on AndroidYusuke Endoh
User/group system on Android seems different from normal Linux.
2020-02-13spec/ruby/library/socket/addrinfo: skip the specs that uses SOCK_SEQPACKET ↵Yusuke Endoh
on Android SOCK_SEQPACKET seems not to be supported on Android
2020-02-13spec/ruby/library/syslog: skip the specs that use LOG_PERROR on AndroidYusuke Endoh
LOG_PERROR is defined on Android, but not implemented yet. See also f3c4e620ac612eab6370b1fb82feaa4e651542bb.
2020-02-13spec/ruby: skip the specs that use /etc/passwd on AndroidYusuke Endoh
There is no /etc/passwd on Android
2020-02-13spec/ruby/library/etc/confstr_spec.rb: skip on AndroidYusuke Endoh
There seems to be no _CS_PATH on Android.
2020-02-13spec/ruby/core/process/spawn_spec.rb: Use / instead of /tmpYusuke Endoh
because there is no /tmp on Android.
2020-02-13spec/ruby/core/process/clock_getres_spec.rb: skip on AndroidYusuke Endoh
in the same way as FreeBSD and OpenBSD. I guess that the spec makes too strong assumption.
2020-02-13spec/ruby/core/encoding/locale_charmap_spec.rb: locale_charmap is UTF-8 on ↵Yusuke Endoh
Android nl_langinfo(CODESET) always returns UTF-8 on Android, regardless to LC_ALL=C.
2020-02-13spec/ruby/core/dir/home_spec.rb: exclude AndroidYusuke Endoh
I couldn't find a robust way to get the home path except ENV["HOME"] on Android Termux.
2020-02-11Make yield in singleton class definitions in methods a SyntaxErrorJeremy Evans
This behavior was deprecated in 2.7 and scheduled to be removed in 3.0. Calling yield in a class definition outside a method is now a SyntaxError instead of a LocalJumpError, as well. Notes: Merged: https://github.com/ruby/ruby/pull/2901
2020-02-09Removed a useless guardNobuyoshi Nakada
MSpec requires Ruby 2.4 or more recent.
2020-02-09spec/ruby/core/file/utime_spec.rb: far future timestamp may be trancatedYusuke Endoh
Under some Ext4 filesystem settings, a timestamp is limited up to 0x37fffffff (2446-05-10). https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Inode_Timestamps > Therefore, timestamps should not overflow until May 2446. Actually the spec fails under one of our CI environments, like: ``` 1) File.utime allows Time instances in the far future to set mtime and atime FAILED Expected 2446 == 559444 to be truthy but was false ``` https://rubyci.org/logs/rubyci.s3.amazonaws.com/arch/ruby-master/log/20200208T180002Z.fail.html.gz
2020-02-08[DOC] Added 2.7.x to the latest stable versions [ci skip]Nobuyoshi Nakada
2020-02-06[ruby/spec] Don't care about return valuesNobuyoshi Nakada
RDoc says nothing about them. Added an example that ConditionVariable#wait can be woken up by ConditionVariable#signal, instead.
2020-02-06[ruby/spec] Just test that sleep completesNobuyoshi Nakada
2020-02-06[ruby/spec] Check by Thread#stop?Nobuyoshi Nakada
Check if threads are stopped by Thread#stop? instead of the status name.
2020-01-28Update to ruby/spec@f8a2d54Benoit Daloze
2020-01-28Update to ruby/mspec@9bce874Benoit Daloze
2020-01-28Fix some spec breakage on 2.7 related to keyword argumentsJeremy Evans
These specs were probably added in the commit to fully separate keyword arguments after the release of 2.7.0, but apparently not tested on 2.7 before hand. The enclosing ruby_version guard for these specs limits them to 2.7.
2020-01-28Run specs against the latest release of 2.4Benoit Daloze
2020-01-28Fix version guard in __dir__ specBenoit Daloze
2020-01-27Removed useless "spec"sNobuyoshi Nakada
It is not specific to particular methods that keyword option arguments are coerced to `Hash`es using `to_hash` method.