summaryrefslogtreecommitdiff
path: root/spec/ruby
AgeCommit message (Collapse)Author
2025-12-15macOS 15 is the stable version todayHiroshi SHIBATA
2025-12-15Pend some tests because these are not working with macOS 15 beta and Xcode ↵Hiroshi SHIBATA
16 beta
2025-11-29merge revision(s) c5bd4acd30320a8e180ce9fcb24acdab4e10c73a: [Backport #21666]nagachika
[PATCH] [Bug #21666] Get rid of use of unspecified values
2025-10-09Fix tests to verify basic authenticationHiroshi SHIBATA
2025-09-14merge revision(s) ce849d565bf6aae8e0179fffb04eb1f665f17347, ↵nagachika
acb29f7fa1497463ed3bdd65549ef20b61beda64: [Backport #21402] ruby2_keywords warnings: Quote non-UTF8 method names fully It used to quote only part of the method name because NUL byte in the method terminates the C string: ``` (irb)> "abcdef".encode("UTF-16LE").bytes => [97, 0, 98, 0, 99, 0, 100, 0, 101, 0, 102, 0] ``` ``` expected: /abcdef/ actual: warning: Skipping set of ruby2_keywords flag for a (method not defined in Ruby)\n". ``` Do not respect ruby2_keywords on method/proc with post arguments Previously, ruby2_keywords could be used on a method or proc with post arguments, but I don't think the behavior is desired: ```ruby def a(*c, **kw) [c, kw] end def b(*a, b) a(*a, b) end ruby2_keywords(:b) b({foo: 1}, bar: 1) ``` This changes ruby2_keywords to emit a warning and not set the flag on a method/proc with post arguments. While here, fix the ruby2_keywords specs for warnings, since they weren't testing what they should be testing. They all warned because the method didn't accept a rest argument, not because it accepted a keyword or keyword rest argument.
2025-07-20merge a revision partially 097d742a1ed53afb91e83aef01365d68b763357b: ↵nagachika
[Backport #20009]
2025-07-19merge revision(s) 097d742a1ed53afb91e83aef01365d68b763357b: [Backport #20009]nagachika
[Bug #20009] Support marshaling non-ASCII name class/module
2025-05-18merge revision(s) 3113bc8d445c4c24ed3827adfc50bb88c99b6364:nagachika
stat command is not provided on Windows
2025-05-06Check LoadError firstNobuyoshi Nakada
The message from dlerror is not our concern.
2025-05-06Added assertion strings with Xcode 16.3 betaHiroshi SHIBATA
2025-03-29merge revision(s) f69ad0e810e1fdc18dc12f77bbecfa49999ef3bf: [Backport #21094]nagachika
[Bug #21094] Update nested module names when setting temporary name
2025-03-08merge revision(s) 46b544c54955348ef1ea9692b837b061f59f91cd, ↵nagachika
d3abee739f4feb91bb9aaae33877d70c8c576db0: [Backport #21095] Prefer `uname -n` over `hostname`. (#12647) Add fallback for `hostname` if `uname` isn't available. (#12655)
2024-06-11Raise SyntaxError on invalid encoding symbol (#10967)Peter Zhu
[Bug #20280] Backport of #10014.
2024-05-30merge revision(s) be7c91db44d6b8dba8fa11ff782965b4bfa0b3c8: [Backport #20515]Takashi Kokubun
Do not pollute toplevel namespace
2024-05-29merge revision(s) 6ade36c06b7cef948099b8f5f483763498705d12: [Backport #20414]Takashi Kokubun
`Fiber#raise` recursively raises on nested resuming_fiber. (#10482) * Improve consistency of `Fiber.current.raise`.
2024-05-29Force-skip a LOAD_PATH spec for rhel_zlinuxTakashi Kokubun
2024-05-28Skip a failing spec for rhel_zlinuxTakashi Kokubun
https://rubyci.s3.amazonaws.com/rhel_zlinux/ruby-3.3/log/20240528T214850Z.fail.html.gz ``` 1) Execution variable $: default $LOAD_PATH entries until sitelibdir included have @gem_prelude_index set FAILED Expected ["/home/chkbuild/build/20240528T214850Z/mspec/lib/mspec/lib", "/home/chkbuild/build/20240528T214850Z/mspec/lib", "./ruby/tool/lib", "/home/linux1/chkbuild/tmp/build/20240528T214850Z/lib/ruby/site_ruby/3.3.0", "/home/linux1/chkbuild/tmp/build/20240528T214850Z/lib/ruby/site_ruby/3.3.0/s390x-linux", "/home/linux1/chkbuild/tmp/build/20240528T214850Z/lib/ruby/site_ruby", "/home/linux1/chkbuild/tmp/build/20240528T214850Z/lib/ruby/vendor_ruby/3.3.0", "/home/linux1/chkbuild/tmp/build/20240528T214850Z/lib/ruby/vendor_ruby/3.3.0/s390x-linux", "/home/linux1/chkbuild/tmp/build/20240528T214850Z/lib/ruby/vendor_ruby", "/home/linux1/chkbuild/tmp/build/20240528T214850Z/lib/ruby/3.3.0", "/home/linux1/chkbuild/tmp/build/20240528T214850Z/lib/ruby/3.3.0/s390x-linux"].include? "/home/chkbuild/build/20240528T214850Z/lib/ruby/site_ruby/3.3.0" to be truthy but was false /home/chkbuild/build/20240528T214850Z/rubyspec/language/predefined_spec.rb:885:in `block (2 levels) in <top (required)>' /home/chkbuild/build/20240528T214850Z/rubyspec/language/predefined_spec.rb:846:in `<top (required)>' ``` It does have /home/linux1/chkbuild/tmp/build/20240528T214850Z/lib/ruby/site_ruby/3.3.0, so it seems actually fine. It seems to be failing due to its setup issues. Skipping this until we figure out how to fix it.
2024-03-21merge revision(s) ↵NARUSE, Yui
d19d683a354530a27b4cbb049223f8dc70c75849,de1a586ecc2ee7f465f0c0a69291054136a3a819: [Backport #20250] (#10308) rb_obj_setup: do not copy RUBY_FL_SEEN_OBJ_ID [Bug #20250] We're seting up a new instance, so it never had an associated object_id. proc.c: get rid of `CLONESETUP` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [Bug #20253] All the way down to Ruby 1.9, `Proc`, `Method`, `UnboundMethod` and `Binding` always had their own specific clone and dup routine. This caused various discrepancies with how other objects behave on `dup` and `clone. [Bug #20250], [Bug #20253]. This commit get rid of `CLONESETUP` and use the the same codepath as all other types, so ensure consistency. NB: It's still not accepting the `freeze` keyword argument on `clone`. Co-Authored-By: Étienne Barrié <etienne.barrie@gmail.com>
2023-12-25Move non-portable pragmas to rubyspec.hNobuyoshi Nakada
In the extension libraries in spec/ruby/optional/capi, do not care about deprecated declarations.
2023-12-25Typofix under bootstraptest, spec and yjit directoriesHiroshi SHIBATA
2023-12-23Fix for older set versionsNobuyoshi Nakada
`Set::VERSION` was not defined in old set.rb bundled with ruby 3.2 or earlier. Also add comment for spec/mspec/tool/remove_old_guards.rb.
2023-12-23Set 1.1 now checks subclass-ness stricterNobuyoshi Nakada
2023-12-23MN: skip RUBY_DESCRIPTION spec on MN enabledKoichi Sasada
2023-12-13RubyGems 3.5+ will use vendored net-httpHiroshi SHIBATA
2023-12-07Fix keyword splat passing as regular argumentJeremy Evans
Since Ruby 3.0, Ruby has passed a keyword splat as a regular argument in the case of a call to a Ruby method where the method does not accept keyword arguments, if the method call does not contain an argument splat: ```ruby def self.f(obj) obj end def self.fs(*obj) obj[0] end h = {a: 1} f(**h).equal?(h) # Before: true; After: false fs(**h).equal?(h) # Before: true; After: false a = [] f(*a, **h).equal?(h) # Before and After: false fs(*a, **h).equal?(h) # Before and After: false ``` The fact that the behavior differs when passing an empty argument splat makes it obvious that something is not working the way it is intended. Ruby 2 always copied the keyword splat hash, and that is the expected behavior in Ruby 3. This bug is because of a missed check in setup_parameters_complex. If the keyword splat passed is not mutable, then it points to an existing object and not a new object, and therefore it must be copied. Now, there are 3 specs for the broken behavior of directly using the keyword splatted hash. Fix two specs and add a new version guard. Do not keep the specs for the broken behavior for earlier Ruby versions, in case this fix is backported. For the ruby2_keywords spec, just remove the related line, since that line is unrelated to what the spec is testing. Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2023-11-30Fix failing specMisaki Shioi
2023-11-29Do not call the inplicit convercion spec on older ruby versionsTema Bolshakov
2023-11-29Fix Array#rassoc specTema Bolshakov
2023-11-27Update to ruby/spec@c3206f6Benoit Daloze
2023-11-09IO#read always check the provided buffer is mutableJean Boussier
Otherwise you can have work in some circumstance but not in others.
2023-11-07Skip example for 07df8a5d5ee725eee00632717ea4deead5fc783bHiroshi SHIBATA
2023-11-06Fix the CI failure in OpenBSDYusuke Endoh
LibreSSL seems not to support `scrypt`. https://rubyci.s3.amazonaws.com/openbsd-current/ruby-master/log/20231105T233005Z.fail.html.gz ``` 1) OpenSSL::KDF.scrypt creates the same value with the same input ERROR NoMethodError: undefined method `scrypt' for module OpenSSL::KDF ```
2023-10-31Disable wrong testNobuyoshi Nakada
2023-10-31Missing format stringNobuyoshi Nakada
Do not use a variable as a format string. Also we usually don't expect non-ascii data in C string literals.
2023-10-30Update to ruby/spec@d56bd0fBenoit Daloze
2023-10-30Revert "OpenSSL::KDF.scrypt needs EVP_PBE_scrypt()"Benoit Daloze
This reverts commit d434765faead1583ca9008bb579067a288085b93.
2023-10-31OpenSSL::KDF.scrypt needs EVP_PBE_scrypt()Nobuyoshi Nakada
2023-10-30Update to ruby/spec@bd7017fBenoit Daloze
2023-10-26Windows: Prefer USERPROFILE over HOMEPATHLars Kanis
Enable the test commented out in ruby/ruby@d0f5dc9eac78ecade459. Extracted from GH-7033, that is for initialization at start up time and this test is unrelated to it.
2023-10-12M:N thread scheduler for RactorsKoichi Sasada
This patch introduce M:N thread scheduler for Ractor system. In general, M:N thread scheduler employs N native threads (OS threads) to manage M user-level threads (Ruby threads in this case). On the Ruby interpreter, 1 native thread is provided for 1 Ractor and all Ruby threads are managed by the native thread. From Ruby 1.9, the interpreter uses 1:1 thread scheduler which means 1 Ruby thread has 1 native thread. M:N scheduler change this strategy. Because of compatibility issue (and stableness issue of the implementation) main Ractor doesn't use M:N scheduler on default. On the other words, threads on the main Ractor will be managed with 1:1 thread scheduler. There are additional settings by environment variables: `RUBY_MN_THREADS=1` enables M:N thread scheduler on the main ractor. Note that non-main ractors use the M:N scheduler without this configuration. With this configuration, single ractor applications run threads on M:1 thread scheduler (green threads, user-level threads). `RUBY_MAX_CPU=n` specifies maximum number of native threads for M:N scheduler (default: 8). This patch will be reverted soon if non-easy issues are found. [Bug #19842]
2023-10-04BigDecimal#to_s has not changed for fraction partNobuyoshi Nakada
The test for integer part was separated at dc54574adefe.
2023-10-03[DOC] State the precision of `Process.times` as platform-definedNobuyoshi Nakada
Remove the bad example that can lead to misunderstanding as if this precision is defined in Ruby.
2023-10-03Check by integer modulo instead of float stringNobuyoshi Nakada
2023-09-30Fix failures when all network interfaces are downNobuyoshi Nakada
2023-09-12Adjust CGI spec to pass when ran in isolationAlan Wu
It failed with `NameError` because `Html3` is defined in the file that `CGI::HtmlExtension` autoloads.
2023-09-12Make Kernel#lambda raise when given non-literal blockAlan Wu
Previously, Kernel#lambda returned a non-lambda proc when given a non-literal block and issued a warning under the `:deprecated` category. With this change, Kernel#lambda will always return a lambda proc, if it returns without raising. Due to interactions with block passing optimizations, we previously had two separate code paths for detecting whether Kernel#lambda got a literal block. This change allows us to remove one path, the hack done with rb_control_frame_t::block_code introduced in 85a337f for supporting situations where Kernel#lambda returned a non-lambda proc. [Feature #19777] Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Notes: Merged: https://github.com/ruby/ruby/pull/8405
2023-09-04Update to ruby/spec@96d1072Benoit Daloze
2023-08-30BasicSocket#recv* return `nil` rather than an empty packetJean Boussier
[Bug #19012] man recvmsg(2) states: > Return Value > These calls return the number of bytes received, or -1 if an error occurred. > The return value will be 0 when the peer has performed an orderly shutdown. Not too sure how one is supposed to make the difference between a packet of size 0 and a closed connection. Notes: Merged: https://github.com/ruby/ruby/pull/6407
2023-08-26[Bug #19784] Fix behaviors against prefix with broken encodingNobuyoshi Nakada
- String#start_with? - String#delete_prefix - String#delete_prefix! Notes: Merged: https://github.com/ruby/ruby/pull/8296
2023-08-24Fix support for dynamic keys. (#8273)Samuel Williams
* Skip RBS test. Notes: Merged-By: ioquatix <samuel@codeotaku.com>