diff options
Diffstat (limited to 'spec/ruby/core/kernel/require_spec.rb')
| -rw-r--r-- | spec/ruby/core/kernel/require_spec.rb | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/spec/ruby/core/kernel/require_spec.rb b/spec/ruby/core/kernel/require_spec.rb index e78e7176ec..19c19e5594 100644 --- a/spec/ruby/core/kernel/require_spec.rb +++ b/spec/ruby/core/kernel/require_spec.rb @@ -13,24 +13,46 @@ describe "Kernel#require" do # if this fails, update your rubygems it "is a private method" do - Kernel.should have_private_instance_method(:require) + Kernel.private_instance_methods(false).should.include?(:require) end - provided = %w[complex enumerator fiber rational thread ruby2_keywords] + it "provided features are already required" do + provided = %w[complex enumerator fiber rational thread ruby2_keywords] + ruby_version_is "4.0" do + provided += %w[set pathname] + end + ruby_version_is "4.1" do + provided += %w[monitor] + end - it "#{provided.join(', ')} are already required" do out = ruby_exe("puts $LOADED_FEATURES", options: '--disable-gems --disable-did-you-mean') features = out.lines.map { |line| File.basename(line.chomp, '.*') } - # Ignore CRuby internals - features -= %w[encdb transdb windows_1252 windows_31j] + # Ignore engine-specific internals + case RUBY_ENGINE + when "jruby" + features -= %w[java util] + else + features -= %w[encdb transdb windows_1252 windows_31] + end features.reject! { |feature| feature.end_with?('-fake') } features.sort.should == provided.sort - code = provided.map { |f| "puts require #{f.inspect}\n" }.join + requires = provided + ruby_version_is "4.0" do + if RUBY_ENGINE != "jruby" + requires = requires.map { |f| f == "pathname" ? "pathname.so" : f } + end + end + + ruby_version_is "4.1" do + requires = requires.map { |f| f == "monitor" ? "monitor.so" : f } + end + + code = requires.map { |f| "puts require #{f.inspect}\n" }.join required = ruby_exe(code, options: '--disable-gems') - required.should == "false\n" * provided.size + required.should == "false\n" * requires.size end it_behaves_like :kernel_require_basic, :require, CodeLoadingSpecs::Method.new |
