diff --git a/test/configuration.nix b/test/configuration.nix index b7970dd..39fd166 100644 --- a/test/configuration.nix +++ b/test/configuration.nix @@ -112,7 +112,31 @@ }; }; + commonPaths = [ + { + type = "bind"; + src = "/var/tmp"; + write = true; + } + ]; + apps = { + "cat.gensokyo.extern.bash.linger-timeout" = { + name = "hakurei-check-linger-timeout"; + identity = 9999; + share = pkgs.bash; + packages = [ pkgs.bash ]; + command = '' + sleep infinity & disown + exit + ''; + wait_delay = 1; + enablements = { + wayland = false; + pulse = false; + }; + }; + "cat.gensokyo.extern.foot.noEnablements" = { name = "ne-foot"; identity = 1; diff --git a/test/test.py b/test/test.py index 537b4b1..ae4dfda 100644 --- a/test/test.py +++ b/test/test.py @@ -103,6 +103,15 @@ if denyOutput != "hsu: uid 1001 is not in the hsurc file\n": if denyOutputVerbose != "hsu: uid 1001 is not in the hsurc file\nhakurei: *cannot obtain uid from setuid wrapper: current user is not in the hsurc file\n": raise Exception(f"unexpected deny verbose output:\n{denyOutputVerbose}") +# Verify timeout behaviour: +machine.succeed('sudo -u alice -i hakurei-check-linger-timeout > /var/tmp/linger-stdout 2> /var/tmp/linger-stderr') +linger_stdout = machine.succeed("cat /var/tmp/linger-stdout") +linger_stderr = machine.succeed("cat /var/tmp/linger-stderr") +if linger_stdout != "": + raise Exception(f"unexpected stdout: {linger_stdout}") +if linger_stderr != "init: timeout exceeded waiting for lingering processes\n": + raise Exception(f"unexpected stderr: {linger_stderr}") + check_offset = 0