mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
75 lines
2.4 KiB
Ruby
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
|