summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2024-11-14 17:27:42 +0900
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2024-11-15 08:16:03 +0900
commitb44272fcb456bb723d3dfa3b3736a05a2cbf30b2 (patch)
tree8d75154ccda8a3c429579d32a3223ae04ccef7c3
parent31bdffb5b987e3086b7954f3fc164872f2075918 (diff)
Port test_warn_bundled_gems.rb to RSpec example
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/12086
-rw-r--r--lib/bundled_gems.rb6
-rw-r--r--spec/bundler/bundled_gems_spec.rb25
-rwxr-xr-xtool/test_for_warn_bundled_gems/test.sh4
-rw-r--r--tool/test_for_warn_bundled_gems/test_warn_bundled_gems.rb13
4 files changed, 30 insertions, 18 deletions
diff --git a/lib/bundled_gems.rb b/lib/bundled_gems.rb
index ed7b8e278a..6a20f51958 100644
--- a/lib/bundled_gems.rb
+++ b/lib/bundled_gems.rb
@@ -52,7 +52,11 @@ module Gem::BUNDLED_GEMS
WARNED = {} # unfrozen
conf = ::RbConfig::CONFIG
- LIBDIR = (conf["rubylibdir"] + "/").freeze
+ if !File.exist?(conf["rubylibdir"])
+ LIBDIR = (File.expand_path(File.join(__dir__, "..", "lib")) + "/").freeze
+ else
+ LIBDIR = (conf["rubylibdir"] + "/").freeze
+ end
ARCHDIR = (conf["rubyarchdir"] + "/").freeze
dlext = [conf["DLEXT"], "so"].uniq
DLEXT = /\.#{Regexp.union(dlext)}\z/
diff --git a/spec/bundler/bundled_gems_spec.rb b/spec/bundler/bundled_gems_spec.rb
new file mode 100644
index 0000000000..7cc830e2c8
--- /dev/null
+++ b/spec/bundler/bundled_gems_spec.rb
@@ -0,0 +1,25 @@
+require "bundled_gems"
+
+RSpec.describe "bundled_gems.rb" do
+ def script(code, options = {})
+ options[:artifice] ||= "compact_index"
+ ruby("require 'bundler/inline'\n\n" + code, options)
+ end
+
+ it "Show warning require and LoadError" do
+ script <<-RUBY
+ gemfile do
+ source "https://rubygems.org"
+ end
+
+ begin
+ require "csv"
+ rescue LoadError
+ end
+ require "ostruct"
+ RUBY
+
+ expect(err).to include(/csv was loaded from (.*) from Ruby 3.4.0/)
+ expect(err).to include(/ostruct was loaded from (.*) from Ruby 3.5.0/)
+ end
+end
diff --git a/tool/test_for_warn_bundled_gems/test.sh b/tool/test_for_warn_bundled_gems/test.sh
index a21f2f14b6..b528bd4ff5 100755
--- a/tool/test_for_warn_bundled_gems/test.sh
+++ b/tool/test_for_warn_bundled_gems/test.sh
@@ -1,9 +1,5 @@
#!/bin/bash
-echo "* Show warning require and LoadError"
-ruby test_warn_bundled_gems.rb
-echo
-
echo "* Show warning when bundled gems called as dependency"
ruby test_warn_dependency.rb
echo
diff --git a/tool/test_for_warn_bundled_gems/test_warn_bundled_gems.rb b/tool/test_for_warn_bundled_gems/test_warn_bundled_gems.rb
deleted file mode 100644
index a8f065a6b0..0000000000
--- a/tool/test_for_warn_bundled_gems/test_warn_bundled_gems.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-require "bundler"
-Bundler::Definition.no_lock = true
-
-require "bundler/inline"
-
-gemfile do
- source "https://rubygems.org"
-end
-
-Object.send(:remove_const, :Bundler)
-
-require "mutex_m"
-require "rss"