summaryrefslogtreecommitdiff
path: root/test/rubygems/test_rubygems.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_rubygems.rb')
-rw-r--r--test/rubygems/test_rubygems.rb39
1 files changed, 22 insertions, 17 deletions
diff --git a/test/rubygems/test_rubygems.rb b/test/rubygems/test_rubygems.rb
index 739a9985b0..ec195b65cd 100644
--- a/test/rubygems/test_rubygems.rb
+++ b/test/rubygems/test_rubygems.rb
@@ -1,30 +1,32 @@
-require_relative 'helper'
+# frozen_string_literal: true
+
+require_relative "helper"
class GemTest < Gem::TestCase
def test_rubygems_normal_behaviour
- _ = Gem::Util.popen(*ruby_with_rubygems_in_load_path, '-e', "'require \"rubygems\"'", { :err => [:child, :out] }).strip
+ _ = Gem::Util.popen(*ruby_with_rubygems_in_load_path, "-e", "'require \"rubygems\"'", { err: [:child, :out] }).strip
assert $?.success?
end
def test_operating_system_other_exceptions
- pend "does not apply to truffleruby" if RUBY_ENGINE == 'truffleruby'
+ pend "does not apply to truffleruby" if RUBY_ENGINE == "truffleruby"
path = util_install_operating_system_rb <<-RUBY
intentionally_not_implemented_method
RUBY
- output = Gem::Util.popen(*ruby_with_rubygems_and_fake_operating_system_in_load_path(path), '-e', "'require \"rubygems\"'", { :err => [:child, :out] }).strip
+ output = Gem::Util.popen(*ruby_with_rubygems_and_fake_operating_system_in_load_path(path), "-e", "'require \"rubygems\"'", { err: [:child, :out] }).strip
assert !$?.success?
- assert_includes output, "undefined local variable or method `intentionally_not_implemented_method'"
- assert_includes output, "Loading the rubygems/defaults/operating_system.rb file caused an error. " \
+ assert_match(/undefined local variable or method [`']intentionally_not_implemented_method'/, output)
+ assert_includes output, "Loading the #{operating_system_rb_at(path)} file caused an error. " \
"This file is owned by your OS, not by rubygems upstream. " \
"Please find out which OS package this file belongs to and follow the guidelines from your OS to report " \
"the problem and ask for help."
end
def test_operating_system_customizing_default_dir
- pend "does not apply to truffleruby" if RUBY_ENGINE == 'truffleruby'
- pend "loads a custom defaults/jruby file that gets in the middle" if RUBY_ENGINE == 'jruby'
+ pend "does not apply to truffleruby" if RUBY_ENGINE == "truffleruby"
+ pend "loads a custom defaults/jruby file that gets in the middle" if RUBY_ENGINE == "jruby"
# On a non existing default dir, there should be no gems
@@ -38,9 +40,9 @@ class GemTest < Gem::TestCase
output = Gem::Util.popen(
*ruby_with_rubygems_and_fake_operating_system_in_load_path(path),
- '-e',
+ "-e",
"require \"rubygems\"; puts Gem::Specification.stubs.map(&:full_name)",
- { :err => [:child, :out] }
+ { err: [:child, :out] }
).strip
begin
assert_empty output
@@ -53,19 +55,22 @@ class GemTest < Gem::TestCase
def util_install_operating_system_rb(content)
dir_lib = Dir.mktmpdir("test_operating_system_lib", @tempdir)
- dir_lib_arg = File.join dir_lib
+ dir_lib_arg = File.join dir_lib, "lib"
+
+ operating_system_rb = operating_system_rb_at(dir_lib_arg)
- dir_lib_rubygems_defaults_arg = File.join dir_lib_arg, "lib", "rubygems", "defaults"
- FileUtils.mkdir_p dir_lib_rubygems_defaults_arg
+ FileUtils.mkdir_p File.dirname(operating_system_rb)
- operating_system_rb = File.join dir_lib_rubygems_defaults_arg, "operating_system.rb"
+ File.open(operating_system_rb, "w") {|f| f.write content }
- File.open(operating_system_rb, 'w') {|f| f.write content }
+ dir_lib_arg
+ end
- File.join dir_lib_arg, "lib"
+ def operating_system_rb_at(dir)
+ File.join dir, "rubygems", "defaults", "operating_system.rb"
end
def ruby_with_rubygems_and_fake_operating_system_in_load_path(operating_system_path)
- [Gem.ruby, "-I", operating_system_path, "-I" , $LOAD_PATH.find {|p| p == File.dirname($LOADED_FEATURES.find {|f| f.end_with?("/rubygems.rb") }) }]
+ [Gem.ruby, "-I", operating_system_path, "-I", $LOAD_PATH.find {|p| p == File.dirname($LOADED_FEATURES.find {|f| f.end_with?("/rubygems.rb") }) }]
end
end