nixosTests.containers-imperative: add tmpfiles test

(cherry picked from commit 92600a90e248aa27f2aedcce4ad309f987a390df)
This commit is contained in:
Florian Klink 2019-05-11 23:33:58 +02:00 committed by Andreas Rammhold
parent 1b7b1dbe2f
commit bc71b6eaf6
No known key found for this signature in database
GPG Key ID: 74908259861E8386

View File

@ -35,7 +35,17 @@ import ./make-test.nix ({ pkgs, ...} : {
];
};
testScript =
testScript = let
tmpfilesContainerConfig = pkgs.writeText "container-config-tmpfiles" ''
{
systemd.tmpfiles.rules = [ "d /foo - - - - -" ];
systemd.services.foo = {
serviceConfig.Type = "oneshot";
script = "ls -al /foo";
wantedBy = [ "multi-user.target" ];
};
}
''; in
''
# Make sure we have a NixOS tree (required by nixos-container create).
$machine->succeed("PAGER=cat nix-env -qa -A nixos.hello >&2");
@ -93,6 +103,15 @@ import ./make-test.nix ({ pkgs, ...} : {
$machine->succeed("nixos-container stop $id1");
$machine->succeed("nixos-container start $id1");
# Ensure tmpfiles are present
$machine->log("creating container tmpfiles");
$machine->succeed("nixos-container create tmpfiles --config-file ${tmpfilesContainerConfig}");
$machine->log("created, starting");
$machine->succeed("nixos-container start tmpfiles");
$machine->log("done starting, investigating");
$machine->succeed("echo \$(nixos-container run tmpfiles -- systemctl is-active foo.service) | grep -q active;");
$machine->succeed("nixos-container destroy tmpfiles");
# Execute commands via the root shell.
$machine->succeed("nixos-container run $id1 -- uname") =~ /Linux/ or die;