summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2024-11-15 14:52:13 +0900
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2024-11-15 17:50:24 +0900
commit5bd0dfbf2e47ac5ec44e49b91e9ae5f96767e47f (patch)
tree1403b77523146c60e609fa07af012049ca9eca78
parent5395afd42239255ff5fb76f74c5de505af60e7d6 (diff)
Port test_warn_bootsnap_and_gem.rb to RSpec example
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/12098
-rw-r--r--spec/bundler/bundled_gems_spec.rb30
-rwxr-xr-xtool/test_for_warn_bundled_gems/test.sh4
-rw-r--r--tool/test_for_warn_bundled_gems/test_warn_bootsnap_and_gem.rb14
3 files changed, 30 insertions, 18 deletions
diff --git a/spec/bundler/bundled_gems_spec.rb b/spec/bundler/bundled_gems_spec.rb
index 66e90a11a5..4764ed0501 100644
--- a/spec/bundler/bundled_gems_spec.rb
+++ b/spec/bundler/bundled_gems_spec.rb
@@ -193,6 +193,36 @@ RSpec.describe "bundled_gems.rb" do
# test_warn_bootsnap_rubyarchdir_gem.rb:14: warning: ...
end
+ it "Show warning with bootsnap and some gem in Gemfile" do
+ build_lib "childprocess", "5.0.0" do |s|
+ # bootsnap expand required feature to full path
+ # require 'logger'
+ rubylibpath = File.expand_path(File.join(__dir__, "..", "..", "lib"))
+ s.write "lib/childprocess.rb", "require '#{rubylibpath}/logger'"
+ end
+
+ script <<-RUBY
+ gemfile do
+ source "https://rubygems.org"
+ # gem "bootsnap", require: false
+ path "#{lib_path}" do
+ gem "childprocess", "5.0.0"
+ end
+ end
+
+ # require 'bootsnap'
+ # Bootsnap.setup(cache_dir: 'tmp/cache')
+
+ # bootsnap expand required feature to full path
+ # require 'childprocess'
+ require Gem.loaded_specs["childprocess"].full_gem_path + '/lib/childprocess'
+ RUBY
+
+ expect(err).to include(/logger was loaded from (.*) from Ruby 3.5.0/)
+ # TODO: We should assert caller location like below:
+ # $GEM_HOME/gems/childprocess-5.0.0/lib/childprocess.rb:7: warning:
+ end
+
it "Don't show warning fiddle/import when fiddle on Gemfile" do
build_lib "fiddle", "1.0.0" do |s|
s.write "lib/fiddle.rb", "puts 'fiddle'"
diff --git a/tool/test_for_warn_bundled_gems/test.sh b/tool/test_for_warn_bundled_gems/test.sh
index fe9ea00f5d..c924d7388a 100755
--- a/tool/test_for_warn_bundled_gems/test.sh
+++ b/tool/test_for_warn_bundled_gems/test.sh
@@ -3,7 +3,3 @@
echo "* Show warning with zeitwerk"
ruby test_warn_zeitwerk.rb
echo
-
-echo "* Show warning with bootsnap and some gem in Gemfile"
-ruby test_warn_bootsnap_and_gem.rb
-echo
diff --git a/tool/test_for_warn_bundled_gems/test_warn_bootsnap_and_gem.rb b/tool/test_for_warn_bundled_gems/test_warn_bootsnap_and_gem.rb
deleted file mode 100644
index 00fd7709e9..0000000000
--- a/tool/test_for_warn_bundled_gems/test_warn_bootsnap_and_gem.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-require "bundler"
-Bundler::Definition.no_lock = true
-
-require "bundler/inline"
-
-gemfile do
- source "https://rubygems.org"
- gem "bootsnap", require: false
- gem "childprocess", "5.0.0", require: false # Has undeclared logger dependency
-end
-
-ENV["BOOTSNAP_CACHE_DIR"] ||= "tmp/cache/bootsnap"
-require "bootsnap/setup"
-require "childprocess"