29 lines
729 B
Nix
29 lines
729 B
Nix
{
|
|
mkNixBuildTest =
|
|
{ name, expressionFile, extraMachineConfig ? {}, testScriptPre ? "", testScriptPost ? "" }:
|
|
{ lib, pkgs, ... }:
|
|
{
|
|
inherit name;
|
|
|
|
nodes.machine = {
|
|
imports = [extraMachineConfig];
|
|
nix.nixPath = ["nixpkgs=${pkgs.path}"];
|
|
nix.settings.substituters = lib.mkForce [];
|
|
virtualisation.additionalPaths = [
|
|
expressionFile
|
|
(pkgs.callPackage expressionFile {}).inputDerivation
|
|
];
|
|
};
|
|
|
|
testScript = { nodes }: ''
|
|
start_all()
|
|
|
|
${testScriptPre}
|
|
|
|
machine.succeed('nix-build --expr "let pkgs = import <nixpkgs> {}; in pkgs.callPackage ${expressionFile} {}"')
|
|
|
|
${testScriptPost}
|
|
'';
|
|
};
|
|
}
|