nixos/atop: Wait for conditions
I had intermittent test failures due to timing issues. This patch seems to have fixed them.
This commit is contained in:
parent
957272c5ad
commit
e1a8e85631
|
@ -14,7 +14,10 @@ let assertions = rec {
|
||||||
'';
|
'';
|
||||||
unit = name: state: ''
|
unit = name: state: ''
|
||||||
with subtest("Unit ${name} should be ${state}"):
|
with subtest("Unit ${name} should be ${state}"):
|
||||||
machine.require_unit_state("${name}", "${state}")
|
if "${state}" == "active":
|
||||||
|
machine.wait_for_unit("${name}")
|
||||||
|
else:
|
||||||
|
machine.require_unit_state("${name}", "${state}")
|
||||||
'';
|
'';
|
||||||
version = ''
|
version = ''
|
||||||
import re
|
import re
|
||||||
|
@ -44,9 +47,19 @@ let assertions = rec {
|
||||||
if present then
|
if present then
|
||||||
unit "atop.service" "active"
|
unit "atop.service" "active"
|
||||||
+ ''
|
+ ''
|
||||||
with subtest("atop.service should have written some data to /var/log/atop"):
|
with subtest("atop.service should write some data to /var/log/atop"):
|
||||||
files = int(machine.succeed("ls -1 /var/log/atop | wc -l"))
|
|
||||||
assert files > 0, "Expected at least 1 data file"
|
def has_data_files(last: bool) -> bool:
|
||||||
|
files = int(machine.succeed("ls -1 /var/log/atop | wc -l"))
|
||||||
|
if files == 0:
|
||||||
|
machine.log("Did not find at least one 1 data file")
|
||||||
|
if not last:
|
||||||
|
machine.log("Will retry...")
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
with machine.nested("Waiting for data files"):
|
||||||
|
retry(has_data_files)
|
||||||
'' else unit "atop.service" "inactive";
|
'' else unit "atop.service" "inactive";
|
||||||
atopRotateTimer = present:
|
atopRotateTimer = present:
|
||||||
unit "atop-rotate.timer" (if present then "active" else "inactive");
|
unit "atop-rotate.timer" (if present then "active" else "inactive");
|
||||||
|
@ -55,11 +68,21 @@ let assertions = rec {
|
||||||
unit "atopacct.service" "active"
|
unit "atopacct.service" "active"
|
||||||
+ ''
|
+ ''
|
||||||
with subtest("atopacct.service should enable process accounting"):
|
with subtest("atopacct.service should enable process accounting"):
|
||||||
machine.succeed("test -f /run/pacct_source")
|
machine.wait_until_succeeds("test -f /run/pacct_source")
|
||||||
|
|
||||||
with subtest("atopacct.service should write data to /run/pacct_shadow.d"):
|
with subtest("atopacct.service should write data to /run/pacct_shadow.d"):
|
||||||
files = int(machine.succeed("ls -1 /run/pacct_shadow.d | wc -l"))
|
|
||||||
assert files >= 1, "Expected at least 1 pacct_shadow.d file"
|
def has_data_files(last: bool) -> bool:
|
||||||
|
files = int(machine.succeed("ls -1 /run/pacct_shadow.d | wc -l"))
|
||||||
|
if files == 0:
|
||||||
|
machine.log("Did not find at least one 1 data file")
|
||||||
|
if not last:
|
||||||
|
machine.log("Will retry...")
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
with machine.nested("Waiting for data files"):
|
||||||
|
retry(has_data_files)
|
||||||
'' else unit "atopacct.service" "inactive";
|
'' else unit "atopacct.service" "inactive";
|
||||||
netatop = present:
|
netatop = present:
|
||||||
if present then
|
if present then
|
||||||
|
|
Loading…
Reference in a new issue