1
Fork 0
mirror of https://github.com/RGBCube/hjem synced 2025-10-13 13:12:16 +00:00
This commit is contained in:
éclairevoyant 2025-09-22 13:24:21 -04:00
parent 627b34efad
commit 70711dab01
No known key found for this signature in database
GPG key ID: E3813AEAA02DB54B
3 changed files with 88 additions and 5 deletions

6
flake.lock generated
View file

@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1757487488,
"narHash": "sha256-zwE/e7CuPJUWKdvvTCB7iunV4E/+G0lKfv4kk/5Izdg=",
"lastModified": 1758277210,
"narHash": "sha256-iCGWf/LTy+aY0zFu8q12lK8KuZp7yvdhStehhyX1v8w=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ab0f3607a6c7486ea22229b92ed2d355f1482ee0",
"rev": "8eaee110344796db060382e15d3af0a9fc396e0e",
"type": "github"
},
"original": {

View file

@ -57,7 +57,7 @@
# Hjem Integration Tests
hjem-basic = import ./tests/basic.nix checkArgs;
hjem-special-args = import ./tests/special-args.nix checkArgs;
hjem-linker = import ./tests/linker.nix checkArgs;
hjem-linker = import ./tests/linker.nix {inherit inputs;} checkArgs;
hjem-xdg = import ./tests/xdg.nix checkArgs;
hjem-xdg-linker = import ./tests/xdg-linker.nix checkArgs;
});

View file

@ -1,3 +1,5 @@
{inputs}:
let
userHome = "/home/alice";
in
@ -10,7 +12,19 @@ in
inputs,
...
}: {
imports = [self.nixosModules.hjem];
imports = [
(inputs.nixpkgs + /nixos/modules/testing/test-instrumentation.nix)
(inputs.nixpkgs + /nixos/modules/profiles/base.nix)
self.nixosModules.hjem
];
boot.loader.grub = {
enable = true;
device = "/dev/vda";
forceInstall = true;
};
environment.systemPackages = [ pkgs.git ];
system.switch.enable = true;
@ -42,13 +56,69 @@ in
};
};
};
# needed to rebuild the system
system.includeBuildDependencies = true;
system.extraDependencies = [pkgs.grub2];
};
};
testScript = {nodes, ...}: let
baseSystem = nodes.node1.system.build.toplevel;
specialisations = "${baseSystem}/specialisation";
pkgs = nodes.node1.nixpkgs.pkgs;
configFile =
pkgs.writeText "configuration.nix" # nix
''
{ lib, pkgs, ... }: {
imports = [
./hardware-configuration.nix
<nixpkgs/nixos/modules/testing/test-instrumentation.nix>
<nixpkgs/nixos/modules/profiles/base.nix>
${inputs.self}/modules/nixos
];
_module.args.hjem-lib = import ${inputs.self}/lib.nix { inherit lib pkgs; };
boot.loader.grub = {
enable = true;
device = "/dev/vda";
forceInstall = true;
};
documentation.enable = false;
environment.systemPackages = [ pkgs.git ];
system.switch.enable = true;
users.groups.alice = {};
users.users.alice = {
isNormalUser = true;
home = ${userHome};
password = "";
};
hjem = {
linker = ${inputs.smfh.packages.${pkgs.system}.default};
users = {
alice = {
enable = true;
files.".config/bar" = {
text = "Hello again!!";
clobber = true;
};
};
};
};
}
'';
in ''
node1.start(allow_reboot=True)
node1.succeed("loginctl enable-linger alice")
with subtest("Activation service runs correctly"):
@ -69,5 +139,18 @@ in
node1.succeed("${specialisations}/fileGetsOverwritten/bin/switch-to-configuration test")
node1.succeed("test -L ${userHome}/.config/foo")
node1.succeed("grep \"Hello new world!\" ${userHome}/.config/foo")
with subtest("nixos-rebuild boot"):
node1.fail("test -L ${userHome}/.config/bar")
node1.succeed("nixos-generate-config")
node1.copy_from_host(
"${configFile}",
"/etc/nixos/configuration.nix",
)
node1.succeed("nixos-rebuild boot -I nixpkgs=${pkgs.path} -I nixos-config=/etc/nixos/configuration.nix >&2")
node1.reboot()
node1.succeed("test -L ${userHome}/.config/bar")
'';
}