mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-10-31 14:41:27 +00:00
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 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
|
||||
{ key = "no-manual"; documentation.nixos.enable = false; }
|
||||
{ key = "qemu"; system.build.qemu = qemu; }
|
||||
] ++ optional minimal ../modules/testing/minimal-kernel.nix;
|
||||
] ++ optional minimal ../modules/testing/minimal-kernel.nix
|
||||
++ extraConfigurations;
|
||||
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;
|
||||
|
||||
let
|
||||
|
@ -22243,6 +22243,57 @@ with pkgs;
|
||||
);
|
||||
}).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; };
|
||||
|
||||
nixdoc = callPackage ../tools/nix/nixdoc {};
|
||||
|
Loading…
Reference in New Issue
Block a user