From 4b1a16ac0bd10c4273c4b928ee4b8d306265a552 Mon Sep 17 00:00:00 2001 From: Henri Menke Date: Mon, 27 Apr 2026 16:04:36 +0200 Subject: [PATCH] nixos/vnstat: add NixOS test --- nixos/tests/all-tests.nix | 1 + nixos/tests/vnstat.nix | 26 ++++++++++++++++++++++++++ pkgs/by-name/vn/vnstat/package.nix | 3 +++ 3 files changed, 30 insertions(+) create mode 100644 nixos/tests/vnstat.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 56b81080e417..f321b6872c5a 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -1844,6 +1844,7 @@ in }; virtualbox = handleTestOn [ "x86_64-linux" ] ./virtualbox.nix { }; vm-variant = handleTest ./vm-variant.nix { }; + vnstat = runTest ./vnstat.nix; vscode-remote-ssh = handleTestOn [ "x86_64-linux" ] ./vscode-remote-ssh.nix { }; vscodium = import ./vscodium.nix { inherit runTest; }; vsftpd = runTest ./vsftpd.nix; diff --git a/nixos/tests/vnstat.nix b/nixos/tests/vnstat.nix new file mode 100644 index 000000000000..eae44e1a92d3 --- /dev/null +++ b/nixos/tests/vnstat.nix @@ -0,0 +1,26 @@ +{ lib, ... }: +{ + name = "vnstat"; + meta.maintainers = with lib.maintainers; [ hmenke ]; + + containers.machine = { + services.vnstat = { + enable = true; + settings = { + AlwaysAddNewInterfaces = 1; + }; + }; + }; + + testScript = '' + start_all() + + machine.wait_for_unit("vnstat.service") + + machine.succeed("vnstat --iflist") + machine.fail("vnstat -i dummy0") + machine.succeed("ip link add dummy0 type dummy") + machine.succeed("ip link set dummy0 up") + machine.wait_until_succeeds("vnstat -i dummy0", timeout=10) + ''; +} diff --git a/pkgs/by-name/vn/vnstat/package.nix b/pkgs/by-name/vn/vnstat/package.nix index 30c88749b3e8..136d6c43b4be 100644 --- a/pkgs/by-name/vn/vnstat/package.nix +++ b/pkgs/by-name/vn/vnstat/package.nix @@ -7,6 +7,7 @@ ncurses, sqlite, check, + nixosTests, }: stdenv.mkDerivation (finalAttrs: { @@ -40,6 +41,8 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; + passthru.tests = { inherit (nixosTests) vnstat; }; + meta = { description = "Console-based network statistics utility for Linux"; longDescription = ''