diff options
author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2022-06-23 11:22:36 +0200 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2022-06-24 10:52:02 +0900 |
commit | 12a5fa408bd318f8fb242e86beb225f2dcae8df9 (patch) | |
tree | f132650f5999535da69ee998956f260007afd371 /test/rubygems/test_gem_ext_cargo_builder_unit.rb | |
parent | 333754ace8ae9bc5d2dfb4aee160fcfa0f38350d (diff) |
Sync RubyGems & Bundler with upstream repo
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/6054
Diffstat (limited to 'test/rubygems/test_gem_ext_cargo_builder_unit.rb')
-rw-r--r-- | test/rubygems/test_gem_ext_cargo_builder_unit.rb | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_ext_cargo_builder_unit.rb b/test/rubygems/test_gem_ext_cargo_builder_unit.rb new file mode 100644 index 0000000000..f6712e44a1 --- /dev/null +++ b/test/rubygems/test_gem_ext_cargo_builder_unit.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true + +require_relative 'helper' +require 'rubygems/ext' + +class TestGemExtCargoBuilderUnit < Gem::TestCase + def test_cargo_command_passes_args + skip_unsupported_platforms! + spec = Gem::Specification.new 'rust_ruby_example', '0.1.0' + builder = Gem::Ext::CargoBuilder.new(spec) + command = builder.cargo_command(Dir.pwd, @tempdir, ['--all-features']) + + assert_includes command, '--all-features' + end + + def test_cargo_command_locks_in_release_profile + skip_unsupported_platforms! + spec = Gem::Specification.new 'rust_ruby_example', '0.1.0' + builder = Gem::Ext::CargoBuilder.new(spec) + builder.profile = :release + command = builder.cargo_command(Dir.pwd, @tempdir) + + assert_includes command, '--locked' + end + + def test_cargo_command_does_not_lock_in_dev_profile + skip_unsupported_platforms! + spec = Gem::Specification.new 'rust_ruby_example', '0.1.0' + builder = Gem::Ext::CargoBuilder.new(spec) + builder.profile = :dev + command = builder.cargo_command(Dir.pwd, @tempdir) + + assert_not_includes command, '--locked' + end + + def test_cargo_command_passes_respects_cargo_env_var + skip_unsupported_platforms! + old_cargo = ENV['CARGO'] + ENV['CARGO'] = 'mycargo' + spec = Gem::Specification.new 'rust_ruby_example', '0.1.0' + builder = Gem::Ext::CargoBuilder.new(spec) + command = builder.cargo_command(Dir.pwd, @tempdir) + + assert_includes command, 'mycargo' + ensure + ENV['CARGO'] = old_cargo + end + + def test_build_env_includes_rbconfig + skip_unsupported_platforms! + spec = Gem::Specification.new 'rust_ruby_example', '0.1.0' + builder = Gem::Ext::CargoBuilder.new(spec) + env = builder.build_env + + assert_equal env.fetch('RBCONFIG_RUBY_SO_NAME'), RbConfig::CONFIG['RUBY_SO_NAME'] + end + + def test_cargo_command_passes_respects_cargo_build_target + skip_unsupported_platforms! + old_cargo = ENV['CARGO_BUILD_TARGET'] + ENV['CARGO_BUILD_TARGET'] = 'x86_64-unknown-linux-gnu' + spec = Gem::Specification.new 'rust_ruby_example', '0.1.0' + builder = Gem::Ext::CargoBuilder.new(spec) + command = builder.cargo_command(Dir.pwd, @tempdir, ['--locked']) + + assert_includes command, '--target' + assert_includes command, 'x86_64-unknown-linux-gnu' + ensure + ENV['CARGO_BUILD_TARGET'] = old_cargo + end + + def skip_unsupported_platforms! + pend "jruby not supported" if java_platform? + end +end |