summaryrefslogtreecommitdiff
path: root/spec
AgeCommit message (Collapse)Author
2024-03-25[rubygems/rubygems] Improve validation of `bundle plugin install` optionsCody Cutrer
Ensure only one source type is specified, and ensure options that are only relevant to git sources are only specified with git. https://github.com/rubygems/rubygems/commit/58b043215e
2024-03-22[rubygems/rubygems] Fix incorrect `bundle update --bundler` messageDavid Rodriguez
https://github.com/rubygems/rubygems/commit/146de56353
2024-03-22[Feature #20275] Remove extra backtrace entries for rescue and ensureBenoit Daloze
2024-03-20[PRISM] Enable specs in CIKevin Newton
2024-03-19Implement chilled stringsÉtienne Barrié
[Feature #20205] As a path toward enabling frozen string literals by default in the future, this commit introduce "chilled strings". From a user perspective chilled strings pretend to be frozen, but on the first attempt to mutate them, they lose their frozen status and emit a warning rather than to raise a `FrozenError`. Implementation wise, `rb_compile_option_struct.frozen_string_literal` is no longer a boolean but a tri-state of `enabled/disabled/unset`. When code is compiled with frozen string literals neither explictly enabled or disabled, string literals are compiled with a new `putchilledstring` instruction. This instruction is identical to `putstring` except it marks the String with the `STR_CHILLED (FL_USER3)` and `FL_FREEZE` flags. Chilled strings have the `FL_FREEZE` flag as to minimize the need to check for chilled strings across the codebase, and to improve compatibility with C extensions. Notes: - `String#freeze`: clears the chilled flag. - `String#-@`: acts as if the string was mutable. - `String#+@`: acts as if the string was mutable. - `String#clone`: copies the chilled flag. Co-authored-by: Jean Boussier <byroot@ruby-lang.org>
2024-03-18[rubygems/rubygems] Deprecate `bundle plugin install --local-git=`Cody Cutrer
It's the exact same implementation as --git https://github.com/rubygems/rubygems/commit/18eb2418c6
2024-03-18Update set_backtrace documentationJean Boussier
Followup: https://github.com/ruby/ruby/pull/10017 [Feature #13557]
2024-03-17[rubygems/rubygems] Ignore commented out keys in config fileDavid Rodriguez
https://github.com/rubygems/rubygems/commit/c4a8d2a930
2024-03-16Prefer the simple read/write `File` singleton methodsNobuyoshi Nakada
2024-03-14Update to ruby/spec@89175b2Benoit Daloze
2024-03-14Update to ruby/mspec@b8f8f4eBenoit Daloze
2024-03-14[Feature #20265] Remove rb_newobj_of and RB_NEWOBJ_OFPeter Zhu
2024-03-14`Exception#set_backtrace` accept arrays of `Backtrace::Location`Jean Boussier
[Feature #13557] Setting the backtrace with an array of strings is lossy. The resulting exception will return nil on `#backtrace_locations`. By accepting an array of `Backtrace::Location` instance, we can rebuild a `Backtrace` instance and have a fully functioning Exception. Co-Authored-By: Étienne Barrié <etienne.barrie@gmail.com>
2024-03-13Make `const_source_location` return the real constant as soon as definedJean Boussier
[Bug #20188] Ref: https://github.com/fxn/zeitwerk/issues/281#issuecomment-1893228355 Previously, it would only return the real constant location once the autoload was fully completed.
2024-03-07Removed unused fixtures at time examplesHiroshi SHIBATA
2024-03-06Run `binding.irb` in cleaner environment and clean the history fileNobuyoshi Nakada
2024-03-06Use include instead of equal assertion.Hiroshi SHIBATA
irb will load multiple rc files now. If developer have their rcfile on home directory or etc, equal assertion will fail with custom prompt.
2024-03-05[DOC] fix some commentscui fliter
Signed-off-by: cui fliter <imcusg@gmail.com>
2024-03-05[rubygems/rubygems] Clear generated files recursivelyNobuyoshi Nakada
On macOS, `dsymutil` utility splits debug info into .dSYM directory. Glob list of `.bundle/cache/extensions/**/*binary_c*` includes that directory but `FileUtils.rm` fails to unlink a directory. https://github.com/ruby/ruby/actions/runs/8149918901/job/22275331688#step:11:3000 ``` Operation not permitted @ apply2files - /Users/runner/work/ruby/ruby/src/tmp/2/home/.bundle/cache/extensions/arm64-darwin-22/ruby/3.4.0+0/3b02a1011c53518f911ab3a9e8c6c608/very_simple_binary-1.0/very_simple_binary_c.bundle.dSYM # ./lib/fileutils.rb:2332:in 'File.unlink' # ./lib/fileutils.rb:2332:in 'block in FileUtils::Entry_#remove_file' # ./lib/fileutils.rb:2337:in 'FileUtils::Entry_#platform_support' # ./lib/fileutils.rb:2331:in 'FileUtils::Entry_#remove_file' # ./lib/fileutils.rb:1475:in 'FileUtils.remove_file' # ./lib/fileutils.rb:1223:in 'block in FileUtils.rm' # ./lib/fileutils.rb:1222:in 'FileUtils.rm' # ./spec/bundler/install/global_cache_spec.rb:235:in 'block (3 levels) in <top (required)>' ``` https://github.com/rubygems/rubygems/commit/375c127684
2024-03-04[rubygems/rubygems] Clear `RUBY_CODESIGN` env var while running testsYuta Saito
The `RUBY_CODESIGN` environment variable is used by mkmf-generated Makefile to sign extension bundles on macOS. The variable specifies a key identifier to use for signing given by the user. However, the key is usually stored in `$HOME/Library/Keychains` directory, and the test suite creates a fake `$HOME` directory. This causes the test suite to try to find the specified key from the fake home directory, which results in a failure. https://github.com/rubygems/rubygems/commit/ddcfc65bf7
2024-03-03[Bug #20322] Fix rb_enc_interned_str_cstr null encodingThomas Marshall
The documentation for `rb_enc_interned_str_cstr` notes that `enc` can be a null pointer, but this currently causes a segmentation fault when trying to autoload the encoding. This commit fixes the issue by checking for NULL before calling `rb_enc_autoload`.
2024-03-01Add an example for fallback to shNobuyoshi Nakada
2024-02-28[PRISM] Fix version spec to account for prismKevin Newton
2024-02-27Handle zero-like imaginary part as zero in to_r (#9581)Kenta Murata
Fixes [Bug #5179]
2024-02-26Update to ruby/spec@3a510bbBenoit Daloze
2024-02-26Update to ruby/mspec@36e8ed8Benoit Daloze
2024-02-23Stop using rb_fstring publiclyPeter Zhu
rb_fstring is a private API, so we should use rb_str_to_interned_str instead, which is a public API.
2024-02-19[Bug #20280] Fix wrong testsNobuyoshi Nakada
2024-02-19[rubygems/rubygems] Use FileUtils.mkdir_pHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/af806b8dff
2024-02-16Avoid to fail with race conditionHiroshi SHIBATA
2024-02-16Try to test net-ftp examples againHiroshi SHIBATA
2024-02-16[rubygems/rubygems] bin/rubocop -aHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/f79a6a004d
2024-02-16[rubygems/rubygems] Add `gitlab:` Git source shorthandJason Garber
This new shorthand, similar to the existing `github:` shorthand, adds support for Gitlab repositories with a notable difference. Gitlab projects may be organized into projects and subprojects. An example Ruby gem exists at: https://gitlab.com/gitlab-org/analytics-section/product-analytics/gl-application-sdk-rb With the new shorthand, a user may install this gem from its repository by adding: ```ruby gem "gitlab-sdk", gitlab: "gitlab-org/analytics-section/product-analytics/gl-application-sdk-rb" ``` As with the `github:` shorthand, a supplied string with no `/` will be interpreted as `example/example`. Also in keeping with the utility of the `github:` shorthand, the new `gitlab:` shorthand also supports Merge Request URLs. ```ruby gem "gitlab-sdk", gitlab: "https://gitlab.com/gitlab-org/analytics-section/product-analytics/gl-application-sdk-rb/-/merge_requests/27" ``` The `gitlab:` gem source shortcut is modeled on the existing `github:` shortcut, so the new specs mimic the existing examples. https://github.com/rubygems/rubygems/commit/f4399018c0
2024-02-15[rubygems/rubygems] use full path for instance_evalCody Cutrer
so that __dir__ and __FILE__ will work properly from within that gemfile fragment, if eval_gemfile is given a relative path https://github.com/rubygems/rubygems/commit/d521bf9790
2024-02-15Skip failing examples at Ruby 3.2+Hiroshi SHIBATA
2024-02-15Surpressing constant redefinition warningHiroshi SHIBATA
2024-02-15Exclude net-ftp examples because it has dependency issueHiroshi SHIBATA
2024-02-15Re-enabled old bundled gemsHiroshi SHIBATA
2024-02-15ruby-spec: Accept the receiver in backtracesYusuke Endoh
2024-02-15Rename and restructured net/ftp and net/http examplesHiroshi SHIBATA
2024-02-15Move examples related core extension feature by Bigdecimal to under the ↵Hiroshi SHIBATA
library/bigdecimal
2024-02-15Surpressing constant redefinition warningHiroshi SHIBATA
2024-02-15Added new ruby/spec task for bundled gemsHiroshi SHIBATA
2024-02-15Disable to run for bundled gems in test-specHiroshi SHIBATA
2024-02-15Update the error message format in bundlerYusuke Endoh
2024-02-15ruby-spec: Accept both a backtick and a single quote in error messagesYusuke Endoh
2024-02-15Only check constant leaks by default for `make test-spec`Benoit Daloze
* See https://github.com/ruby/ruby/pull/9548
2024-02-12proc.c: get rid of `CLONESETUP`Jean Boussier
[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>
2024-02-12Skip spec failing on i686Benoit Daloze
2024-02-12Exclude a problematic spec when run in CRuby via make test-spec until fixedBenoit Daloze