nixos-facter: add passthru.tests

This commit is contained in:
Jörg Thalheim
2025-10-09 16:53:07 +01:00
parent b7f40d25eb
commit 3bed74c089
4 changed files with 66 additions and 0 deletions

View File

@@ -512,6 +512,7 @@ in
etebase-server = runTest ./etebase-server.nix;
etesync-dav = runTest ./etesync-dav.nix;
evcc = runTest ./evcc.nix;
facter = runTest ./facter;
fail2ban = runTest ./fail2ban.nix;
fakeroute = runTest ./fakeroute.nix;
fancontrol = runTest ./fancontrol.nix;

View File

@@ -0,0 +1,29 @@
{ lib, pkgs, ... }:
{
name = "facter";
meta = with lib.maintainers; {
maintainers = [ mic92 ];
};
nodes.machine = {
hardware.facter.reportPath = ./facter.json;
environment.systemPackages = [ pkgs.nixos-facter ];
};
testScript = ''
from pprint import pprint
machine.wait_for_unit("multi-user.target")
with subtest("Run nixos-facter and verify it produces valid JSON"):
import json
# Run nixos-facter and check it produces valid output
output = machine.succeed("nixos-facter")
# Parse JSON to verify it's valid
report = json.loads(output)
pprint(report)
assert "version" in report, "Expected version field in nixos-facter output"
assert "system" in report, "Expected system field in nixos-facter output"
assert report["version"] == 1, f"Expected version 1, got {report['version']}"
'';
}

View File

@@ -0,0 +1,31 @@
{
"version": 1,
"system": "x86_64-linux",
"virtualisation": "kvm",
"hardware": {
"bios": {
"smbios_version": 520
},
"cpu": [
{
"architecture": "x86_64",
"vendor_name": "AuthenticAMD",
"family": 25,
"model": 33
}
],
"system": {
"form_factor": "desktop"
}
},
"smbios": {
"bios": {
"vendor": "SeaBIOS",
"version": "test"
},
"system": {
"manufacturer": "QEMU",
"product": "Standard PC"
}
}
}

View File

@@ -7,6 +7,7 @@
gcc,
pkg-config,
makeWrapper,
nixosTests,
stdenv,
systemdMinimal,
}:
@@ -61,6 +62,10 @@ buildGoModule rec {
"-X github.com/numtide/nixos-facter/pkg/build.System=${stdenv.hostPlatform.system}"
];
passthru.tests = {
inherit (nixosTests) facter;
};
meta = {
description = "Declarative hardware configuration for NixOS";
homepage = "https://github.com/numtide/nixos-facter";