nixos/tests/iftop: fix non-deterministic failure (#41309)

- make sure machines are fully booted before sending commands
- test that capability setting in iftop module makes a difference

xeji b17b4423 6cd58630

Changed files
+9 -5
nixos
tests
+9 -5
nixos/tests/iftop.nix
···
nodes = {
withIftop = {
imports = [ ./common/user-account.nix ];
-
programs.iftop.enable = true;
};
withoutIftop = {
imports = [ ./common/user-account.nix ];
+
environment.systemPackages = [ pkgs.iftop ];
};
};
testScript = ''
subtest "machine with iftop enabled", sub {
-
$withIftop->start;
-
$withIftop->succeed("su -l alice -c 'iftop -t -s 1'");
+
$withIftop->waitForUnit("default.target");
+
# limit to eth1 (eth0 is the test driver's control interface)
+
# and don't try name lookups
+
$withIftop->succeed("su -l alice -c 'iftop -t -s 1 -n -i eth1'");
};
subtest "machine without iftop", sub {
-
$withoutIftop->start;
-
$withoutIftop->mustFail("su -l alice -c 'iftop -t -s 1'");
+
$withoutIftop->waitForUnit("default.target");
+
# check that iftop is there but user alice lacks capabilities
+
$withoutIftop->succeed("iftop -t -s 1 -n -i eth1");
+
$withoutIftop->fail("su -l alice -c 'iftop -t -s 1 -n -i eth1'");
};
'';
})