summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_ext_ext_conf_builder.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_gem_ext_ext_conf_builder.rb')
-rw-r--r--test/rubygems/test_gem_ext_ext_conf_builder.rb112
1 files changed, 57 insertions, 55 deletions
diff --git a/test/rubygems/test_gem_ext_ext_conf_builder.rb b/test/rubygems/test_gem_ext_ext_conf_builder.rb
index 70833f35cf..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,73 +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'] = 'anothermake'
+ env_make = ENV.delete "make"
+ ENV["make"] = nil
+
+ 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_large_make
+ ENV["make"] = env_make
end
def test_class_build_extconf_fail
@@ -97,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'"
@@ -106,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
@@ -123,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'"
@@ -131,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
@@ -143,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
@@ -171,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
@@ -185,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)"
@@ -197,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