rust-cbindgen: fix test failures due to env vars (#348031)
This commit is contained in:
+56
@@ -0,0 +1,56 @@
|
||||
diff --git a/tests/profile.rs b/tests/profile.rs
|
||||
index 69433a2..596829d 100644
|
||||
--- a/tests/profile.rs
|
||||
+++ b/tests/profile.rs
|
||||
@@ -1,6 +1,7 @@
|
||||
use cbindgen::*;
|
||||
|
||||
use serial_test::serial;
|
||||
+use std::env;
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::process::Command;
|
||||
|
||||
@@ -17,7 +18,12 @@ fn build_using_lib(config: fn(Builder) -> Builder) -> tempfile::TempDir {
|
||||
.tempdir()
|
||||
.expect("Creating tmp dir failed");
|
||||
|
||||
- std::env::set_var("CARGO_EXPAND_TARGET_DIR", tmp_dir.path());
|
||||
+ unsafe {
|
||||
+ env::set_var("CARGO_EXPAND_TARGET_DIR", tmp_dir.path());
|
||||
+ env::remove_var("CARGO_BUILD_TARGET");
|
||||
+ // ^ avoid unexpected change of layout of the target directory;
|
||||
+ // ... see: https://doc.rust-lang.org/cargo/guide/build-cache.html
|
||||
+ }
|
||||
let builder = Builder::new()
|
||||
.with_config(Config::from_file(expand_dep_test_dir.join("cbindgen.toml")).unwrap())
|
||||
.with_crate(expand_dep_test_dir);
|
||||
@@ -45,6 +51,9 @@ fn build_using_bin(extra_args: &[&str]) -> tempfile::TempDir {
|
||||
Command::new(cbindgen_path)
|
||||
.current_dir(expand_dep_test_dir)
|
||||
.env("CARGO_EXPAND_TARGET_DIR", tmp_dir.path())
|
||||
+ .env_remove("CARGO_BUILD_TARGET")
|
||||
+ // ^ avoid unexpected change of layout of the target directory;
|
||||
+ // ... see: https://doc.rust-lang.org/cargo/guide/build-cache.html
|
||||
.args(extra_args)
|
||||
.output()
|
||||
.expect("build should succeed");
|
||||
@@ -87,6 +96,19 @@ fn bin_default_uses_debug_build() {
|
||||
assert_eq!(get_contents_of_dir(target_dir.path()), &["debug"]);
|
||||
}
|
||||
|
||||
+#[test]
|
||||
+fn bin_ignore_cargo_build_target_in_tests() {
|
||||
+ unsafe {
|
||||
+ env::set_var("CARGO_BUILD_TARGET", "x86_64-unknown-linux-gnu");
|
||||
+ }
|
||||
+ assert_eq!(
|
||||
+ env::var("CARGO_BUILD_TARGET"),
|
||||
+ Ok("x86_64-unknown-linux-gnu".into())
|
||||
+ );
|
||||
+ // ^ this env var should be ignored:
|
||||
+ bin_default_uses_debug_build();
|
||||
+}
|
||||
+
|
||||
#[test]
|
||||
fn bin_explicit_debug_build() {
|
||||
let target_dir = build_using_bin(&["--profile", "debug"]);
|
||||
@@ -23,6 +23,12 @@ rustPlatform.buildRustPackage rec {
|
||||
hash = "sha256-XTGHHD5Qw3mr+lkPKOXyqb0K3sEENW8Sf0n9mtrFFXI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# open PR: https://github.com/mozilla/cbindgen/pull/1010
|
||||
# see also: https://github.com/NixOS/nixpkgs/pull/298108
|
||||
./1010-fix-test-failures-due-to-CARGO_BUILD_TARGET.patch
|
||||
];
|
||||
|
||||
cargoHash = "sha256-l4FgwXdibek4BAnqjWd1rLxpEwuMNjYgvo6X3SS3fRo=";
|
||||
|
||||
buildInputs = lib.optional stdenv.hostPlatform.isDarwin Security;
|
||||
@@ -46,10 +52,6 @@ rustPlatform.buildRustPackage rec {
|
||||
"--skip test_body"
|
||||
];
|
||||
|
||||
# tests currently fail, waiting on upstream
|
||||
# Related: https://github.com/NixOS/nixpkgs/pull/348031
|
||||
doCheck = false;
|
||||
|
||||
passthru.tests = {
|
||||
inherit
|
||||
firefox-unwrapped
|
||||
|
||||
Reference in New Issue
Block a user