summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHiroshi SHIBATA <hsbt@ruby-lang.org>2024-11-15 15:13:51 +0900
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2024-11-15 17:50:24 +0900
commita6f25023ac85d066652a0d27473af698aa75e465 (patch)
tree40cddbb0fe51d720bf89f3259268f98bf47ae48b
parent5bd0dfbf2e47ac5ec44e49b91e9ae5f96767e47f (diff)
Port test_warn_zeitwerk.rb to RSpec example
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/12098
-rw-r--r--spec/bundler/bundled_gems_spec.rb19
-rw-r--r--tool/bundler/test_gems.rb3
-rw-r--r--tool/test_for_warn_bundled_gems/.gitignore1
-rw-r--r--tool/test_for_warn_bundled_gems/README.md3
-rwxr-xr-xtool/test_for_warn_bundled_gems/test.sh5
-rw-r--r--tool/test_for_warn_bundled_gems/test_warn_zeitwerk.rb15
6 files changed, 22 insertions, 24 deletions
diff --git a/spec/bundler/bundled_gems_spec.rb b/spec/bundler/bundled_gems_spec.rb
index 4764ed0501..679cb114c6 100644
--- a/spec/bundler/bundled_gems_spec.rb
+++ b/spec/bundler/bundled_gems_spec.rb
@@ -223,6 +223,25 @@ RSpec.describe "bundled_gems.rb" do
# $GEM_HOME/gems/childprocess-5.0.0/lib/childprocess.rb:7: warning:
end
+ it "Show warning with zeitwerk" do
+ libpath = Dir[Spec::Path.base_system_gem_path.join("gems/{zeitwerk}-*/lib")].map(&:to_s).first
+ code = <<-RUBY
+ $LOAD_PATH.unshift("#{libpath}")
+ require "zeitwerk"
+ loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
+ loader.setup
+
+ require 'ostruct'
+ RUBY
+ create_file("script.rb", code)
+ create_file("Gemfile", "source 'https://rubygems.org'")
+ bundle "exec ruby script.rb"
+
+ expect(err).to include(/ostruct was loaded from (.*) from Ruby 3.5.0/)
+ # TODO: We should assert caller location like below:
+ # test_warn_zeitwerk.rb:15: 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/bundler/test_gems.rb b/tool/bundler/test_gems.rb
index bb7d4edb9a..caa1662b59 100644
--- a/tool/bundler/test_gems.rb
+++ b/tool/bundler/test_gems.rb
@@ -13,3 +13,6 @@ gem "rake", "~> 13.1"
gem "builder", "~> 3.2"
gem "rb_sys"
gem "rubygems-generate_index", "~> 1.1"
+
+# for bundled_gems_spec.rb
+gem "zeitwerk", "~> 2.7" \ No newline at end of file
diff --git a/tool/test_for_warn_bundled_gems/.gitignore b/tool/test_for_warn_bundled_gems/.gitignore
deleted file mode 100644
index a9a5aecf42..0000000000
--- a/tool/test_for_warn_bundled_gems/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-tmp
diff --git a/tool/test_for_warn_bundled_gems/README.md b/tool/test_for_warn_bundled_gems/README.md
deleted file mode 100644
index dc2d2a6cb9..0000000000
--- a/tool/test_for_warn_bundled_gems/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-This directory contains tests for the bundled gems warning under the Bundler.
-
-see [test.sh](./test.sh) for details.
diff --git a/tool/test_for_warn_bundled_gems/test.sh b/tool/test_for_warn_bundled_gems/test.sh
deleted file mode 100755
index c924d7388a..0000000000
--- a/tool/test_for_warn_bundled_gems/test.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-echo "* Show warning with zeitwerk"
-ruby test_warn_zeitwerk.rb
-echo
diff --git a/tool/test_for_warn_bundled_gems/test_warn_zeitwerk.rb b/tool/test_for_warn_bundled_gems/test_warn_zeitwerk.rb
deleted file mode 100644
index 2076af0408..0000000000
--- a/tool/test_for_warn_bundled_gems/test_warn_zeitwerk.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-require "bundler"
-Bundler::Definition.no_lock = true
-
-require "bundler/inline"
-
-gemfile do
- source "https://rubygems.org"
- gem "zeitwerk", require: false
-end
-
-require "zeitwerk"
-loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
-loader.setup
-
-require 'csv'