mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-01 19:33:03 +00:00
4816a73bb5
--frozen is stricter than we need in Nixpkgs. If a Cargo.lock is slightly wrong, or (in my use case) if building a subproject that is not a member of the top-level workspace, but the correct Cargo.lock can be entirely resolved from the existing top-level Cargo.lock, it should be deterministic, and shouldn't cause any problems, to let cargo generate the new Cargo.lock. This should result in less need to bother upstreams about fixing their Cargo.lock files in cases where they could have been automatically fixed.
56 lines
1.3 KiB
Bash
56 lines
1.3 KiB
Bash
declare -a checkFlags
|
|
declare -a cargoTestFlags
|
|
|
|
cargoCheckHook() {
|
|
echo "Executing cargoCheckHook"
|
|
|
|
runHook preCheck
|
|
|
|
if [[ -n "${buildAndTestSubdir-}" ]]; then
|
|
pushd "${buildAndTestSubdir}"
|
|
fi
|
|
|
|
if [[ -z ${dontUseCargoParallelTests-} ]]; then
|
|
threads=$NIX_BUILD_CORES
|
|
else
|
|
threads=1
|
|
fi
|
|
|
|
if [ "${cargoCheckType}" != "debug" ]; then
|
|
cargoCheckProfileFlag="--profile ${cargoCheckType}"
|
|
fi
|
|
|
|
if [ -n "${cargoCheckNoDefaultFeatures-}" ]; then
|
|
cargoCheckNoDefaultFeaturesFlag=--no-default-features
|
|
fi
|
|
|
|
if [ -n "${cargoCheckFeatures-}" ]; then
|
|
cargoCheckFeaturesFlag="--features=${cargoCheckFeatures// /,}"
|
|
fi
|
|
|
|
argstr="${cargoCheckProfileFlag} ${cargoCheckNoDefaultFeaturesFlag} ${cargoCheckFeaturesFlag}
|
|
--target @rustHostPlatformSpec@ --offline ${cargoTestFlags}"
|
|
|
|
(
|
|
set -x
|
|
cargo test \
|
|
-j $NIX_BUILD_CORES \
|
|
${argstr} -- \
|
|
--test-threads=${threads} \
|
|
${checkFlags} \
|
|
${checkFlagsArray+"${checkFlagsArray[@]}"}
|
|
)
|
|
|
|
if [[ -n "${buildAndTestSubdir-}" ]]; then
|
|
popd
|
|
fi
|
|
|
|
echo "Finished cargoCheckHook"
|
|
|
|
runHook postCheck
|
|
}
|
|
|
|
if [ -z "${dontCargoCheck-}" ] && [ -z "${checkPhase-}" ]; then
|
|
checkPhase=cargoCheckHook
|
|
fi
|