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'