From ebe3ae4d4d4668f3f47a30f10592714df1c9b803 Mon Sep 17 00:00:00 2001 From: Max Hausch Date: Wed, 24 Feb 2021 09:32:22 +0100 Subject: [PATCH] buildRustPackage: Add cargoTestFlags This makes it possible to pass flags to `cargo test`, which is needed if a crate is compiled with custom feature flags. --- doc/languages-frameworks/rust.section.md | 7 +++++++ pkgs/build-support/rust/hooks/cargo-check-hook.sh | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md index 48510b37add3..a3f0238bf3a1 100644 --- a/doc/languages-frameworks/rust.section.md +++ b/doc/languages-frameworks/rust.section.md @@ -193,6 +193,13 @@ rustPlatform.buildRustPackage { Please note that the code will be compiled twice here: once in `release` mode for the `buildPhase`, and again in `debug` mode for the `checkPhase`. +Test flags, e.g., `--features xxx/yyy`, can be passed to `cargo test` via the +`cargoTestFlags` attribute. + +Another attribute, called `checkFlags`, is used to pass arguments to the test +binary itself, as stated +(here)[https://doc.rust-lang.org/cargo/commands/cargo-test.html]. + #### Tests relying on the structure of the `target/` directory Some tests may rely on the structure of the `target/` directory. Those tests diff --git a/pkgs/build-support/rust/hooks/cargo-check-hook.sh b/pkgs/build-support/rust/hooks/cargo-check-hook.sh index 82e669af3a08..bc913c6ab074 100644 --- a/pkgs/build-support/rust/hooks/cargo-check-hook.sh +++ b/pkgs/build-support/rust/hooks/cargo-check-hook.sh @@ -1,4 +1,5 @@ declare -a checkFlags +declare -a cargoTestFlags cargoCheckHook() { echo "Executing cargoCheckHook" @@ -15,7 +16,7 @@ cargoCheckHook() { threads=1 fi - argstr="--${cargoCheckType} --target @rustTargetPlatformSpec@ --frozen"; + argstr="--${cargoCheckType} --target @rustTargetPlatformSpec@ --frozen ${cargoTestFlags}"; ( set -x