ruby/test/rubygems/test_gem_ext_cargo_builder_...

66 строки
2.0 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_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