nixos/irqbalance: add nixos test

This commit is contained in:
h7x4
2025-09-07 13:46:57 +02:00
parent 2e5062f693
commit 4d63ee7620
3 changed files with 33 additions and 0 deletions

View File

@@ -765,6 +765,7 @@ in
invoiceplane = runTest ./invoiceplane.nix; invoiceplane = runTest ./invoiceplane.nix;
iodine = runTest ./iodine.nix; iodine = runTest ./iodine.nix;
ipv6 = runTest ./ipv6.nix; ipv6 = runTest ./ipv6.nix;
irqbalance = runTest ./irqbalance.nix;
iscsi-multipath-root = runTest ./iscsi-multipath-root.nix; iscsi-multipath-root = runTest ./iscsi-multipath-root.nix;
iscsi-root = runTest ./iscsi-root.nix; iscsi-root = runTest ./iscsi-root.nix;
isso = runTest ./isso.nix; isso = runTest ./isso.nix;

View File

@@ -0,0 +1,29 @@
{ pkgs, lib, ... }:
{
name = "irqbalance";
meta.maintainers = with lib.maintainers; [ h7x4 ];
nodes.machine =
{ config, ... }:
{
virtualisation.cores = 2;
services.irqbalance.enable = true;
systemd.services.irqbalance.serviceConfig.ExecStart = [
""
"${lib.getExe config.services.irqbalance.package} --journal --debug"
];
};
testScript = ''
machine.wait_for_unit("irqbalance.service")
machine.wait_until_succeeds("journalctl -u irqbalance.service --grep='Package 0'")
unmanaged_irq_count = machine.succeed("journalctl -u irqbalance.service -o cat --grep 'affinity is now unmanaged' | sort -u | wc -l")
# The number of unmanaged IRQs is not entirely stable, but there is likely something
# wrong if any more that 2 queues are unmanaged
assert int(unmanaged_irq_count) <= 2
'';
}

View File

@@ -9,6 +9,7 @@
libcap_ng, libcap_ng,
enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemdMinimal, enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemdMinimal,
systemdMinimal, systemdMinimal,
nixosTests,
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@@ -48,6 +49,8 @@ stdenv.mkDerivation rec {
--replace-fail ' $IRQBALANCE_ARGS' "" --replace-fail ' $IRQBALANCE_ARGS' ""
''; '';
passthru.tests.nixos = nixosTests.irqbalance;
meta = { meta = {
homepage = "https://github.com/Irqbalance/irqbalance"; homepage = "https://github.com/Irqbalance/irqbalance";
changelog = lib.strings.optionalString ( changelog = lib.strings.optionalString (