diff options
Diffstat (limited to 'test/rubygems/test_gem_ext_ext_conf_builder.rb')
-rw-r--r-- | test/rubygems/test_gem_ext_ext_conf_builder.rb | 116 |
1 files changed, 57 insertions, 59 deletions
diff --git a/test/rubygems/test_gem_ext_ext_conf_builder.rb b/test/rubygems/test_gem_ext_ext_conf_builder.rb index 10a544cbbc..218c6f3d5e 100644 --- a/test/rubygems/test_gem_ext_ext_conf_builder.rb +++ b/test/rubygems/test_gem_ext_ext_conf_builder.rb @@ -1,21 +1,21 @@ # frozen_string_literal: true -require_relative 'helper' -require 'rubygems/ext' +require_relative "helper" +require "rubygems/ext" class TestGemExtExtConfBuilder < Gem::TestCase def setup super - @ext = File.join @tempdir, 'ext' - @dest_path = File.join @tempdir, 'prefix' + @ext = File.join @tempdir, "ext" + @dest_path = File.join @tempdir, "prefix" FileUtils.mkdir_p @ext FileUtils.mkdir_p @dest_path end def test_class_build - if java_platform? + if Gem.java_platform? pend("failing on jruby") end @@ -23,77 +23,76 @@ class TestGemExtExtConfBuilder < Gem::TestCase pend("test_class_build skipped - nmake not found") end - File.open File.join(@ext, 'extconf.rb'), 'w' do |extconf| + File.open File.join(@ext, "extconf.rb"), "w" do |extconf| extconf.puts "require 'mkmf'\ncreate_makefile 'foo'" end output = [] - result = Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext + result = Gem::Ext::ExtConfBuilder.build "extconf.rb", @dest_path, output, [], nil, @ext assert_same result, output assert_match(/^current directory:/, output[0]) - assert_match(/^#{Gem.ruby}.* extconf.rb/, output[1]) + assert_match(/^#{Regexp.quote(Gem.ruby)}.* extconf.rb/, output[1]) assert_equal "creating Makefile\n", output[2] assert_match(/^current directory:/, output[3]) - assert_contains_make_command 'clean', output[4] - assert_contains_make_command '', output[7] - assert_contains_make_command 'install', output[10] - assert_empty Dir.glob(File.join(@ext, 'siteconf*.rb')) - assert_empty Dir.glob(File.join(@ext, '.gem.*')) + assert_contains_make_command "clean", output[4] + assert_contains_make_command "", output[7] + assert_contains_make_command "install", output[10] + assert_empty Dir.glob(File.join(@ext, "siteconf*.rb")) + assert_empty Dir.glob(File.join(@ext, ".gem.*")) end def test_class_build_rbconfig_make_prog - if java_platform? + if Gem.java_platform? pend("failing on jruby") end configure_args do - - File.open File.join(@ext, 'extconf.rb'), 'w' do |extconf| + File.open File.join(@ext, "extconf.rb"), "w" do |extconf| extconf.puts "require 'mkmf'\ncreate_makefile 'foo'" end output = [] - Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext + Gem::Ext::ExtConfBuilder.build "extconf.rb", @dest_path, output, [], nil, @ext assert_equal "creating Makefile\n", output[2] - assert_contains_make_command 'clean', output[4] - assert_contains_make_command '', output[7] - assert_contains_make_command 'install', output[10] + assert_contains_make_command "clean", output[4] + assert_contains_make_command "", output[7] + assert_contains_make_command "install", output[10] end end - def test_class_build_env_MAKE - env_make = ENV.delete 'make' - ENV['make'] = nil + def test_class_build_env_make + env_make = ENV.delete "make" + ENV["make"] = nil - env_MAKE = ENV.delete 'MAKE' - ENV['MAKE'] = 'anothermake' + env_large_make = ENV.delete "MAKE" + ENV["MAKE"] = "anothermake" - if java_platform? + if Gem.java_platform? pend("failing on jruby") end - configure_args '' do - File.open File.join(@ext, 'extconf.rb'), 'w' do |extconf| + configure_args "" do + File.open File.join(@ext, "extconf.rb"), "w" do |extconf| extconf.puts "require 'mkmf'\ncreate_makefile 'foo'" end output = [] assert_raise Gem::InstallError do - Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext + Gem::Ext::ExtConfBuilder.build "extconf.rb", @dest_path, output, [], nil, @ext end assert_equal "creating Makefile\n", output[2] - assert_contains_make_command 'clean', output[4] + assert_contains_make_command "clean", output[4] end ensure - ENV['MAKE'] = env_MAKE - ENV['make'] = env_make + ENV["MAKE"] = env_large_make + ENV["make"] = env_make end def test_class_build_extconf_fail @@ -101,7 +100,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase pend("test_class_build_extconf_fail skipped - nmake not found") end - File.open File.join(@ext, 'extconf.rb'), 'w' do |extconf| + File.open File.join(@ext, "extconf.rb"), "w" do |extconf| extconf.puts "require 'mkmf'" extconf.puts "have_library 'nonexistent' or abort 'need libnonexistent'" extconf.puts "create_makefile 'foo'" @@ -110,16 +109,16 @@ class TestGemExtExtConfBuilder < Gem::TestCase output = [] error = assert_raise Gem::InstallError do - Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext + Gem::Ext::ExtConfBuilder.build "extconf.rb", @dest_path, output, [], nil, @ext end - assert_equal 'extconf failed, exit code 1', error.message + assert_equal "extconf failed, exit code 1", error.message - assert_match(/^#{Gem.ruby}.* extconf.rb/, output[1]) - assert_match(File.join(@dest_path, 'mkmf.log'), output[4]) + assert_match(/^#{Regexp.quote(Gem.ruby)}.* extconf.rb/, output[1]) + assert_match(File.join(@dest_path, "mkmf.log"), output[4]) assert_includes(output, "To see why this extension failed to compile, please check the mkmf.log which can be found here:\n") - assert_path_exist File.join @dest_path, 'mkmf.log' + assert_path_exist File.join @dest_path, "mkmf.log" end def test_class_build_extconf_success_without_warning @@ -127,7 +126,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase pend("test_class_build_extconf_fail skipped - nmake not found") end - File.open File.join(@ext, 'extconf.rb'), 'w' do |extconf| + File.open File.join(@ext, "extconf.rb"), "w" do |extconf| extconf.puts "require 'mkmf'" extconf.puts "File.open('mkmf.log', 'w'){|f| f.write('a')}" extconf.puts "create_makefile 'foo'" @@ -135,11 +134,11 @@ class TestGemExtExtConfBuilder < Gem::TestCase output = [] - Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext + Gem::Ext::ExtConfBuilder.build "extconf.rb", @dest_path, output, [], nil, @ext refute_includes(output, "To see why this extension failed to compile, please check the mkmf.log which can be found here:\n") - assert_path_exist File.join @dest_path, 'mkmf.log' + assert_path_exist File.join @dest_path, "mkmf.log" end def test_class_build_unconventional @@ -147,7 +146,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase pend("test_class_build skipped - nmake not found") end - File.open File.join(@ext, 'extconf.rb'), 'w' do |extconf| + File.open File.join(@ext, "extconf.rb"), "w" do |extconf| extconf.puts <<-'EXTCONF' include RbConfig @@ -175,12 +174,12 @@ end output = [] - Gem::Ext::ExtConfBuilder.build 'extconf.rb', @dest_path, output, [], nil, @ext + Gem::Ext::ExtConfBuilder.build "extconf.rb", @dest_path, output, [], nil, @ext - assert_contains_make_command 'clean', output[4] - assert_contains_make_command '', output[7] - assert_contains_make_command 'install', output[10] - assert_empty Dir.glob(File.join(@ext, 'siteconf*.rb')) + assert_contains_make_command "clean", output[4] + assert_contains_make_command "", output[7] + assert_contains_make_command "install", output[10] + assert_empty Dir.glob(File.join(@ext, "siteconf*.rb")) end def test_class_make @@ -189,8 +188,8 @@ end end output = [] - makefile_path = File.join(@ext, 'Makefile') - File.open makefile_path, 'w' do |makefile| + makefile_path = File.join(@ext, "Makefile") + File.open makefile_path, "w" do |makefile| makefile.puts "# π" makefile.puts "RUBYARCHDIR = $(foo)$(target_prefix)" makefile.puts "RUBYLIBDIR = $(bar)$(target_prefix)" @@ -201,30 +200,29 @@ end Gem::Ext::ExtConfBuilder.make @ext, output, @ext - assert_contains_make_command 'clean', output[1] - assert_contains_make_command '', output[4] - assert_contains_make_command 'install', output[7] + assert_contains_make_command "clean", output[1] + assert_contains_make_command "", output[4] + assert_contains_make_command "install", output[7] end def test_class_make_no_Makefile error = assert_raise Gem::InstallError do - Gem::Ext::ExtConfBuilder.make @ext, ['output'], @ext + Gem::Ext::ExtConfBuilder.make @ext, ["output"], @ext end - assert_equal 'Makefile not found', error.message + assert_equal "Makefile not found", error.message end def configure_args(args = nil) - configure_args = RbConfig::CONFIG['configure_args'] - RbConfig::CONFIG['configure_args'] = args if args + configure_args = RbConfig::CONFIG["configure_args"] + RbConfig::CONFIG["configure_args"] = args if args yield - ensure if configure_args - RbConfig::CONFIG['configure_args'] = configure_args + RbConfig::CONFIG["configure_args"] = configure_args else - RbConfig::CONFIG.delete 'configure_args' + RbConfig::CONFIG.delete "configure_args" end end end |