257db1dd4a
The systemd-coredump module required systemd to be built with withCoredump=true, even if the module was disabled. - allow systemd to be missing systemd-coredump if the module is disabled - switch to mkDefault for the sysctl config to allow user overrides when the module is disabled - add nixos tests for both the enabled and disabled cases
45 lines
1.2 KiB
Nix
45 lines
1.2 KiB
Nix
import ./make-test-python.nix ({ pkgs, ... }:
|
|
|
|
let
|
|
|
|
crasher = pkgs.writeCBin "crasher" "int main;";
|
|
|
|
commonConfig = {
|
|
systemd.services.crasher.serviceConfig = {
|
|
ExecStart = "${crasher}/bin/crasher";
|
|
StateDirectory = "crasher";
|
|
WorkingDirectory = "%S/crasher";
|
|
Restart = "no";
|
|
};
|
|
};
|
|
|
|
in
|
|
|
|
{
|
|
name = "systemd-coredump";
|
|
meta = with pkgs.lib.maintainers; {
|
|
maintainers = [ squalus ];
|
|
};
|
|
|
|
nodes.machine1 = { pkgs, lib, ... }: commonConfig;
|
|
nodes.machine2 = { pkgs, lib, ... }: lib.recursiveUpdate commonConfig {
|
|
systemd.coredump.enable = false;
|
|
systemd.package = pkgs.systemd.override {
|
|
withCoredump = false;
|
|
};
|
|
};
|
|
|
|
testScript = ''
|
|
with subtest("systemd-coredump enabled"):
|
|
machine1.wait_for_unit("multi-user.target")
|
|
machine1.wait_for_unit("systemd-coredump.socket")
|
|
machine1.systemctl("start crasher");
|
|
machine1.wait_until_succeeds("coredumpctl list | grep crasher", timeout=10)
|
|
machine1.fail("stat /var/lib/crasher/core")
|
|
|
|
with subtest("systemd-coredump disabled"):
|
|
machine2.systemctl("start crasher");
|
|
machine2.wait_until_succeeds("stat /var/lib/crasher/core", timeout=10)
|
|
'';
|
|
})
|