mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
d7ffd3fea4
Signed-off-by: Takuya Noguchi <takninnovationresearch@gmail.com>
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
|