nixos-facter: add passthru.tests
This commit is contained in:
@@ -512,6 +512,7 @@ in
|
|||||||
etebase-server = runTest ./etebase-server.nix;
|
etebase-server = runTest ./etebase-server.nix;
|
||||||
etesync-dav = runTest ./etesync-dav.nix;
|
etesync-dav = runTest ./etesync-dav.nix;
|
||||||
evcc = runTest ./evcc.nix;
|
evcc = runTest ./evcc.nix;
|
||||||
|
facter = runTest ./facter;
|
||||||
fail2ban = runTest ./fail2ban.nix;
|
fail2ban = runTest ./fail2ban.nix;
|
||||||
fakeroute = runTest ./fakeroute.nix;
|
fakeroute = runTest ./fakeroute.nix;
|
||||||
fancontrol = runTest ./fancontrol.nix;
|
fancontrol = runTest ./fancontrol.nix;
|
||||||
|
|||||||
29
nixos/tests/facter/default.nix
Normal file
29
nixos/tests/facter/default.nix
Normal 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']}"
|
||||||
|
'';
|
||||||
|
}
|
||||||
31
nixos/tests/facter/facter.json
Normal file
31
nixos/tests/facter/facter.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,6 +7,7 @@
|
|||||||
gcc,
|
gcc,
|
||||||
pkg-config,
|
pkg-config,
|
||||||
makeWrapper,
|
makeWrapper,
|
||||||
|
nixosTests,
|
||||||
stdenv,
|
stdenv,
|
||||||
systemdMinimal,
|
systemdMinimal,
|
||||||
}:
|
}:
|
||||||
@@ -61,6 +62,10 @@ buildGoModule rec {
|
|||||||
"-X github.com/numtide/nixos-facter/pkg/build.System=${stdenv.hostPlatform.system}"
|
"-X github.com/numtide/nixos-facter/pkg/build.System=${stdenv.hostPlatform.system}"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
passthru.tests = {
|
||||||
|
inherit (nixosTests) facter;
|
||||||
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Declarative hardware configuration for NixOS";
|
description = "Declarative hardware configuration for NixOS";
|
||||||
homepage = "https://github.com/numtide/nixos-facter";
|
homepage = "https://github.com/numtide/nixos-facter";
|
||||||
|
|||||||
Reference in New Issue
Block a user