diff options
| author | Jason Lunn <jason.lunn@gmail.com> | 2026-01-15 17:07:18 -0500 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2026-01-21 07:40:48 +0000 |
| commit | c959741695d9cccd5376775596dce643b5a500a1 (patch) | |
| tree | 1bfedf16817a0863cd39720423da454f76e5eec2 | |
| parent | 3aa866ca0d95a12f933d11e9b25c17f093c212a4 (diff) | |
[ruby/rubygems] Add test
https://github.com/ruby/rubygems/commit/3d8140b289
| -rw-r--r-- | test/rubygems/test_gem_ext_builder.rb | 52 |
1 files changed, 51 insertions, 1 deletions
diff --git a/test/rubygems/test_gem_ext_builder.rb b/test/rubygems/test_gem_ext_builder.rb index 34f85e6b75..4ac386c4b4 100644 --- a/test/rubygems/test_gem_ext_builder.rb +++ b/test/rubygems/test_gem_ext_builder.rb @@ -18,7 +18,7 @@ class TestGemExtBuilder < Gem::TestCase @spec = util_spec "a" - @builder = Gem::Ext::Builder.new @spec, "" + @builder = Gem::Ext::Builder.new @spec end def teardown @@ -201,6 +201,56 @@ install: Gem.configuration.install_extension_in_lib = @orig_install_extension_in_lib end +def test_build_multiple_extensions + pend "terminates on mswin" if vc_windows? && ruby_repo? + + extension_in_lib do + @spec.extensions << "ext/Rakefile" + @spec.extensions << "ext/extconf.rb" + + ext_dir = File.join @spec.gem_dir, "ext" + + FileUtils.mkdir_p ext_dir + + extconf_rb = File.join ext_dir, "extconf.rb" + rakefile = File.join ext_dir, "Rakefile" + + File.open extconf_rb, "w" do |f| + f.write <<-'RUBY' + require 'mkmf' + + create_makefile 'a' + RUBY + end + + File.open rakefile, "w" do |f| + f.write <<-RUBY + task :default do + FileUtils.touch File.join "#{ext_dir}", 'foo' + end + RUBY + end + + ext_lib_dir = File.join ext_dir, "lib" + FileUtils.mkdir ext_lib_dir + FileUtils.touch File.join ext_lib_dir, "a.rb" + FileUtils.mkdir File.join ext_lib_dir, "a" + FileUtils.touch File.join ext_lib_dir, "a", "b.rb" + + use_ui @ui do + @builder.build_extensions + end + + assert_path_exist @spec.extension_dir + assert_path_exist @spec.gem_build_complete_path + assert_path_exist File.join @spec.gem_dir, "ext", "foo" + assert_path_exist File.join @spec.extension_dir, "gem_make.out" + assert_path_exist File.join @spec.extension_dir, "a.rb" + assert_path_exist File.join @spec.gem_dir, "lib", "a.rb" + assert_path_exist File.join @spec.gem_dir, "lib", "a", "b.rb" + end + end + def test_build_extensions_none use_ui @ui do @builder.build_extensions |
