The functional2 test suite was broken in the development shell for two mostly separate reasons leading to "no such file or directory" errors: * The `BUILD_TEST_SHELL` (already containing the correct path) would always be set from the Meson option `build_test_shell`, even to the empty string if that option is not set. Skip the overwrite in this case to make the environment variable work again. * Sandboxed builds would fail to find their builder `/bin/sh`, since in the development shell busybox is not found, so no sandbox shell gets configured. Use the shell from `BUILD_TEST_SHELL` instead. (How this does not break the old functional tests remains a mystery.) Change-Id: I6a6a696424e8caaef3f9b68e3738bfd58ea0b056
29 lines
743 B
Plaintext
29 lines
743 B
Plaintext
let
|
|
contentAddressedByDefault = builtins.getEnv "NIX_TESTS_CA_BY_DEFAULT" == "1";
|
|
caArgs = if contentAddressedByDefault then {
|
|
__contentAddressed = true;
|
|
outputHashMode = "recursive";
|
|
outputHashAlgo = "sha256";
|
|
} else {};
|
|
in
|
|
|
|
rec {
|
|
path = "@path@";
|
|
|
|
system = "@system@";
|
|
|
|
shared = builtins.getEnv "_NIX_TEST_SHARED";
|
|
|
|
mkDerivation = args:
|
|
derivation ({
|
|
inherit system;
|
|
builder = "@shell@";
|
|
args = ["-e" args.builder or (builtins.toFile "builder-${args.name}.sh" ''
|
|
if [ -e "$NIX_ATTRS_SH_FILE" ]; then source $NIX_ATTRS_SH_FILE; fi;
|
|
eval "$buildCommand"
|
|
'')];
|
|
PATH = path;
|
|
} // caArgs // removeAttrs args ["builder" "meta"])
|
|
// { meta = args.meta or {}; };
|
|
}
|