From c0ff85fd243f0e6cb3f5d4d0d61ad33cc893108f Mon Sep 17 00:00:00 2001 From: Linnnus Date: Wed, 2 Oct 2024 20:08:01 +0200 Subject: Expose max-idle-time via NixOS module --- nix/test-socket-usage.nix | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'nix/test-socket-usage.nix') diff --git a/nix/test-socket-usage.nix b/nix/test-socket-usage.nix index 25aa5fc..409dd68 100644 --- a/nix/test-socket-usage.nix +++ b/nix/test-socket-usage.nix @@ -1,3 +1,8 @@ +let + # Normally the max-idle time would probably be a little longer than this, but + # I don't want to drag out this test for 10 minutes. + max-idle-secs = 20; +in { name = "socket-usage"; @@ -16,6 +21,8 @@ } ]; + max-idle-time = "${toString max-idle-secs}s"; + # The secret to be used when authenticating event's signature. secret-path = toString (pkgs.writeText "secret.txt" "mysecret"); }; @@ -69,6 +76,8 @@ }; testScript = '' + import time + machine.start() with subtest("Proper (lazy) socket activation"): @@ -87,6 +96,13 @@ exit_code, _ = machine.systemctl("is-active webhook-listener.service --quiet") assert exit_code == 0, "Event should be active" + with subtest("Service should exit after idle time"): + # Give it a little buffer to avoid false negatives. + time.sleep(${toString max-idle-secs} + 5) + + exit_code, _ = machine.systemctl("is-active webhook-listener.service --quiet") + assert exit_code == 3, "Event should be inactive" + # TODO: Send an invalid request (subtest). ''; } -- cgit v1.2.3