1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/rubygems/test_gem_ext_cargo_builder_unit.rb
2022-06-24 10:52:02 +09:00

75 lines
2.4 KiB
Ruby

# 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