Unverified Commit 3b20c993 authored by Maximilian Bosch's avatar Maximilian Bosch Committed by GitHub
Browse files

nixos/irqbalance: add nixos test (#440903)

parents 645d01ef 3f8f9b1b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -750,6 +750,7 @@ in
  iosched = runTest ./iosched.nix;
  ipget = runTest ./ipget.nix;
  ipv6 = runTest ./ipv6.nix;
  irqbalance = runTest ./irqbalance.nix;
  iscsi-multipath-root = runTest ./iscsi-multipath-root.nix;
  iscsi-root = runTest ./iscsi-root.nix;
  isolate = runTest ./isolate.nix;
+29 −0
Original line number Diff line number Diff line
{ 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
  '';
}
+4 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
  libcap_ng,
  enableSystemd ? lib.meta.availableOn stdenv.hostPlatform systemdMinimal,
  systemdMinimal,
  nixosTests,
}:

stdenv.mkDerivation rec {
@@ -48,6 +49,8 @@ stdenv.mkDerivation rec {
      --replace-fail ' $IRQBALANCE_ARGS' ""
  '';

  passthru.tests.nixos = nixosTests.irqbalance;

  meta = {
    homepage = "https://github.com/Irqbalance/irqbalance";
    changelog = lib.strings.optionalString (
@@ -57,5 +60,6 @@ stdenv.mkDerivation rec {
    license = lib.licenses.gpl2Only;
    platforms = lib.platforms.linux;
    maintainers = with lib.maintainers; [ moni ];
    mainProgram = "irqbalance";
  };
}