Merge pull request #235874 from baloo/baloo/nixosTest/lib.override-support

nixosTest: adds support for lib.extend
This commit is contained in:
Robert Hensing 2023-06-30 00:02:36 +02:00 committed by GitHub
commit e3c1e48ef8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 36 additions and 1 deletions

View file

@ -16,6 +16,7 @@ let
baseOS =
import ../eval-config.nix {
inherit lib;
system = null; # use modularly defined system
inherit (config.node) specialArgs;
modules = [ config.defaults ];

View file

@ -87,6 +87,7 @@ in {
# Testing the test driver
nixos-test-driver = {
extra-python-packages = handleTest ./nixos-test-driver/extra-python-packages.nix {};
lib-extend = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./nixos-test-driver/lib-extend.nix {};
node-name = runTest ./nixos-test-driver/node-name.nix;
};

View file

@ -0,0 +1,31 @@
{ pkgs, ... }:
let
patchedPkgs = pkgs.extend (new: old: {
lib = old.lib.extend (self: super: {
sorry_dave = "sorry dave";
});
});
testBody = {
name = "demo lib overlay";
nodes = {
machine = { lib, ... }: {
environment.etc."got-lib-overlay".text = lib.sorry_dave;
};
};
# We don't need to run an actual test. Instead we build the `machine` configuration
# and call it a day, because that already proves that `lib` is wired up correctly.
# See the attrset returned at the bottom of this file.
testScript = "";
};
inherit (patchedPkgs.testers) nixosTest runNixOSTest;
evaluationNixosTest = nixosTest testBody;
evaluationRunNixOSTest = runNixOSTest testBody;
in {
nixosTest = evaluationNixosTest.driver.nodes.machine.system.build.toplevel;
runNixOSTest = evaluationRunNixOSTest.driver.nodes.machine.system.build.toplevel;
}

View file

@ -97,7 +97,9 @@
# See doc/builders/testers.chapter.md or
# https://nixos.org/manual/nixpkgs/unstable/#tester-runNixOSTest
runNixOSTest =
let nixos = import ../../../nixos/lib {};
let nixos = import ../../../nixos/lib {
inherit lib;
};
in testModule:
nixos.runTest {
_file = "pkgs.runNixOSTest implementation";