Add pkgs.nixosTest
This commit is contained in:
parent
9871fe3564
commit
cdca66d7e8
|
@ -1,4 +1,13 @@
|
||||||
{ system, pkgs, minimal ? false, config ? {} }:
|
{ system
|
||||||
|
, # Use a minimal kernel?
|
||||||
|
minimal ? false
|
||||||
|
, # Ignored
|
||||||
|
config ? null
|
||||||
|
# Nixpkgs, for qemu, lib and more
|
||||||
|
, pkgs
|
||||||
|
, # NixOS configuration to add to the VMs
|
||||||
|
extraConfigurations ? []
|
||||||
|
}:
|
||||||
|
|
||||||
with pkgs.lib;
|
with pkgs.lib;
|
||||||
with import ../lib/qemu-flags.nix { inherit pkgs; };
|
with import ../lib/qemu-flags.nix { inherit pkgs; };
|
||||||
|
@ -28,7 +37,8 @@ rec {
|
||||||
../modules/testing/test-instrumentation.nix # !!! should only get added for automated test runs
|
../modules/testing/test-instrumentation.nix # !!! should only get added for automated test runs
|
||||||
{ key = "no-manual"; documentation.nixos.enable = false; }
|
{ key = "no-manual"; documentation.nixos.enable = false; }
|
||||||
{ key = "qemu"; system.build.qemu = qemu; }
|
{ key = "qemu"; system.build.qemu = qemu; }
|
||||||
] ++ optional minimal ../modules/testing/minimal-kernel.nix;
|
] ++ optional minimal ../modules/testing/minimal-kernel.nix
|
||||||
|
++ extraConfigurations;
|
||||||
extraArgs = { inherit nodes; };
|
extraArgs = { inherit nodes; };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,13 @@
|
||||||
{ system, pkgs, minimal ? false, config ? {} }:
|
{ system
|
||||||
|
, pkgs
|
||||||
|
# Use a minimal kernel?
|
||||||
|
, minimal ? false
|
||||||
|
# Ignored
|
||||||
|
, config ? null
|
||||||
|
# Modules to add to each VM
|
||||||
|
, extraConfigurations ? [] }:
|
||||||
|
|
||||||
with import ./build-vms.nix { inherit system pkgs minimal config; };
|
with import ./build-vms.nix { inherit system pkgs minimal extraConfigurations; };
|
||||||
with pkgs;
|
with pkgs;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
|
@ -22243,6 +22243,57 @@ with pkgs;
|
||||||
);
|
);
|
||||||
}).config.system.build;
|
}).config.system.build;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Run a NixOS VM network test.
|
||||||
|
*
|
||||||
|
* This is equivalent to import ./make-test.nix from the NixOS manual
|
||||||
|
* For details see https://nixos.org/nixos/manual/index.html#sec-nixos-tests
|
||||||
|
*
|
||||||
|
* Parameter:
|
||||||
|
* A NixOS VM test network, or path to it. Example:
|
||||||
|
*
|
||||||
|
* { lib, ... }:
|
||||||
|
* { name = "my-test";
|
||||||
|
* nodes = {
|
||||||
|
* machine-1 = someNixOSConfiguration;
|
||||||
|
* machine-2 = ...;
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* Result:
|
||||||
|
* A derivation that runs the VM test.
|
||||||
|
*
|
||||||
|
* For the interaction between Nixpkgs and NixOS configuration
|
||||||
|
* consult the pkgs.nixos function documentation.
|
||||||
|
*/
|
||||||
|
nixosTest =
|
||||||
|
let
|
||||||
|
/* The nixos/lib/testing.nix module, preapplied with arguments that
|
||||||
|
* make sense for this evaluation of Nixpkgs.
|
||||||
|
*/
|
||||||
|
nixosTesting =
|
||||||
|
(import ../../nixos/lib/testing.nix {
|
||||||
|
inherit (pkgs.stdenv.hostPlatform) system;
|
||||||
|
inherit pkgs;
|
||||||
|
extraConfigurations = [(
|
||||||
|
{ lib, ... }: {
|
||||||
|
config.nixpkgs.pkgs = lib.mkDefault pkgs;
|
||||||
|
}
|
||||||
|
)];
|
||||||
|
});
|
||||||
|
in
|
||||||
|
test:
|
||||||
|
let
|
||||||
|
loadedTest = if builtins.typeOf test == "path"
|
||||||
|
then import test
|
||||||
|
else test;
|
||||||
|
calledTest = if pkgs.lib.isFunction loadedTest
|
||||||
|
then callPackage loadedTest {}
|
||||||
|
else loadedTest;
|
||||||
|
in
|
||||||
|
nixosTesting.makeTest calledTest;
|
||||||
|
|
||||||
nixui = callPackage ../tools/package-management/nixui { node_webkit = nwjs_0_12; };
|
nixui = callPackage ../tools/package-management/nixui { node_webkit = nwjs_0_12; };
|
||||||
|
|
||||||
nixdoc = callPackage ../tools/nix/nixdoc {};
|
nixdoc = callPackage ../tools/nix/nixdoc {};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user