summaryrefslogtreecommitdiff
path: root/test/rubygems
diff options
context:
space:
mode:
authorYusuke Endoh <mame@ruby-lang.org>2020-02-12 17:33:41 +0900
committerYusuke Endoh <mame@ruby-lang.org>2020-02-12 17:33:41 +0900
commit65201c054a90c8e7beb8fe1e6d0006541ac33449 (patch)
tree7b5b93eda8dbc3a04dbd749c1c746d25966ca610 /test/rubygems
parent2090011dbd66e64916488c7b0e04e316b57d5cee (diff)
test/rubygems: Try not only /usr/bin/env but also /bin/env
RubyGems chooses available one from the two https://github.com/rubygems/rubygems/blob/20b0d609484df2b514954ba9ef890a7cbdd01d18/lib/rubygems/installer.rb#L38 So, it is good not to hard-code /usr/bin/env in tests.
Diffstat (limited to 'test/rubygems')
-rw-r--r--test/rubygems/test_gem_commands_pristine_command.rb8
-rw-r--r--test/rubygems/test_gem_installer.rb16
2 files changed, 15 insertions, 9 deletions
diff --git a/test/rubygems/test_gem_commands_pristine_command.rb b/test/rubygems/test_gem_commands_pristine_command.rb
index 4ebe1efecb..c40d32ae61 100644
--- a/test/rubygems/test_gem_commands_pristine_command.rb
+++ b/test/rubygems/test_gem_commands_pristine_command.rb
@@ -160,11 +160,9 @@ class TestGemCommandsPristineCommand < Gem::TestCase
ruby_exec = sprintf Gem.default_exec_format, 'ruby'
- if win_platform?
- assert_match %r%\A#!\s*#{ruby_exec}%, File.read(gem_exec)
- else
- assert_match %r%\A#!\s*/usr/bin/env #{ruby_exec}%, File.read(gem_exec)
- end
+ bin_env = win_platform? ? "" : %w(/usr/bin/env /bin/env).find {|f| File.executable?(f) }
+
+ assert_match %r%\A#!\s*#{bin_env} #{ruby_exec}%, File.read(gem_exec)
end
def test_execute_extensions_explicit
diff --git a/test/rubygems/test_gem_installer.rb b/test/rubygems/test_gem_installer.rb
index eaeff4a8fc..29458dbd4e 100644
--- a/test/rubygems/test_gem_installer.rb
+++ b/test/rubygems/test_gem_installer.rb
@@ -1794,9 +1794,9 @@ gem 'other', version
shebang = installer.shebang 'executable'
- env_shebang = "/usr/bin/env" unless Gem.win_platform?
+ bin_env = get_bin_env
- assert_equal("#!#{env_shebang} #{RbConfig::CONFIG['ruby_install_name']}",
+ assert_equal("#!#{bin_env} #{RbConfig::CONFIG['ruby_install_name']}",
shebang)
end
@@ -1875,10 +1875,18 @@ gem 'other', version
assert_equal "#!test", shebang
end
+ def get_bin_env
+ if win_platform?
+ ""
+ else
+ %w(/usr/bin/env /bin/env).find {|f| File.executable?(f) }
+ end
+ end
+
def test_shebang_custom_with_expands
installer = setup_base_installer
- bin_env = win_platform? ? '' : '/usr/bin/env'
+ bin_env = get_bin_env
conf = Gem::ConfigFile.new []
conf[:custom_shebang] = '1 $env 2 $ruby 3 $exec 4 $name'
@@ -1894,7 +1902,7 @@ gem 'other', version
def test_shebang_custom_with_expands_and_arguments
installer = setup_base_installer
- bin_env = win_platform? ? '' : '/usr/bin/env'
+ bin_env = get_bin_env
conf = Gem::ConfigFile.new []
conf[:custom_shebang] = '1 $env 2 $ruby 3 $exec'