diff options
author | Florian Klink <flokli@flokli.de> | 2020-11-19 01:59:07 +0100 |
---|---|---|
committer | Florian Klink <flokli@flokli.de> | 2020-11-19 16:56:46 +0100 |
commit | f6832971f5111039e365d70048fe55b3a291cfe5 (patch) | |
tree | a1823f66422b0670afa793fd2f825e715c6d1392 /nixos/tests/systemd.nix | |
parent | 5d45f269aac3a89550c39ee90bbcf70c711b84dd (diff) | |
download | nixpkgs-f6832971f5111039e365d70048fe55b3a291cfe5.tar nixpkgs-f6832971f5111039e365d70048fe55b3a291cfe5.tar.gz nixpkgs-f6832971f5111039e365d70048fe55b3a291cfe5.tar.bz2 nixpkgs-f6832971f5111039e365d70048fe55b3a291cfe5.tar.lz nixpkgs-f6832971f5111039e365d70048fe55b3a291cfe5.tar.xz nixpkgs-f6832971f5111039e365d70048fe55b3a291cfe5.tar.zst nixpkgs-f6832971f5111039e365d70048fe55b3a291cfe5.zip |
nixosTests.systemd: increase accounting coverage
For now, testing IO Accounting is skipped, as it seems to be either broken, or hard to reproduce in a VM.
Diffstat (limited to 'nixos/tests/systemd.nix')
-rw-r--r-- | nixos/tests/systemd.nix | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/nixos/tests/systemd.nix b/nixos/tests/systemd.nix index dfa16eecfad..390a1bd30f9 100644 --- a/nixos/tests/systemd.nix +++ b/nixos/tests/systemd.nix @@ -82,6 +82,10 @@ import ./make-test-python.nix ({ pkgs, ... }: { "systemd-run --pty --property=Type=oneshot --property=DynamicUser=yes --property=User=iamatest whoami" ) + with subtest("regression test for https://bugs.freedesktop.org/show_bug.cgi?id=77507"): + retcode, output = machine.execute("systemctl status testservice1.service") + assert retcode in [0, 3] # https://bugs.freedesktop.org/show_bug.cgi?id=77507 + # Regression test for https://github.com/NixOS/nixpkgs/issues/35268 with subtest("file system with x-initrd.mount is not unmounted"): machine.succeed("mountpoint -q /test-x-initrd-mount") @@ -122,17 +126,6 @@ import ./make-test-python.nix ({ pkgs, ... }: { machine.wait_for_unit("multi-user.target") assert "fq_codel" in machine.succeed("sysctl net.core.default_qdisc") - # Test cgroup accounting is enabled - with subtest("systemd cgroup accounting is enabled"): - machine.wait_for_unit("multi-user.target") - assert "yes" in machine.succeed( - "systemctl show testservice1.service -p IOAccounting" - ) - - retcode, output = machine.execute("systemctl status testservice1.service") - assert retcode in [0, 3] # https://bugs.freedesktop.org/show_bug.cgi?id=77507 - assert "CPU:" in output - # Test systemd is configured to manage a watchdog with subtest("systemd manages hardware watchdog"): machine.wait_for_unit("multi-user.target") @@ -168,5 +161,25 @@ import ./make-test-python.nix ({ pkgs, ... }: { machine.succeed("systemctl status systemd-cryptsetup@luks1.service") machine.succeed("mkdir -p /tmp/luks1") machine.succeed("mount /dev/mapper/luks1 /tmp/luks1") + + # Do some IP traffic + output_ping = machine.succeed( + "systemd-run --wait -- /run/wrappers/bin/ping -c 1 127.0.0.1 2>&1" + ) + + with subtest("systemd reports accounting data on system.slice"): + output = machine.succeed("systemctl status system.slice") + assert "CPU:" in output + assert "Memory:" in output + + assert "IP:" in output + assert "0B in, 0B out" not in output + + assert "IO:" in output + assert "0B read, 0B written" not in output + + with subtest("systemd per-unit accounting works"): + assert "IP traffic received: 84B" in output_ping + assert "IP traffic sent: 84B" in output_ping ''; }) |