2020-12-20 20:18:54 +00:00
|
|
|
# Tests the contents attribute of nixos/lib/make-disk-image.nix
|
|
|
|
# including its user, group, and mode attributes.
|
|
|
|
{
|
|
|
|
system ? builtins.currentSystem,
|
|
|
|
config ? { },
|
|
|
|
pkgs ? import ../.. { inherit system config; },
|
|
|
|
}:
|
|
|
|
|
|
|
|
with import ../lib/testing-python.nix { inherit system pkgs; };
|
|
|
|
with pkgs.lib;
|
|
|
|
|
|
|
|
with import common/ec2.nix { inherit makeTest pkgs; };
|
|
|
|
|
|
|
|
let
|
|
|
|
config =
|
|
|
|
(import ../lib/eval-config.nix {
|
|
|
|
inherit system;
|
|
|
|
modules = [
|
|
|
|
../modules/testing/test-instrumentation.nix
|
|
|
|
../modules/profiles/qemu-guest.nix
|
|
|
|
{
|
|
|
|
fileSystems."/".device = "/dev/disk/by-label/nixos";
|
|
|
|
boot.loader.grub.device = "/dev/vda";
|
|
|
|
boot.loader.timeout = 0;
|
|
|
|
}
|
|
|
|
];
|
|
|
|
}).config;
|
|
|
|
image =
|
|
|
|
(import ../lib/make-disk-image.nix {
|
|
|
|
inherit pkgs config;
|
|
|
|
lib = pkgs.lib;
|
|
|
|
format = "qcow2";
|
2023-03-31 21:51:38 +00:00
|
|
|
contents = [
|
|
|
|
{
|
|
|
|
source = pkgs.writeText "testFile" "contents";
|
|
|
|
target = "/testFile";
|
|
|
|
user = "1234";
|
|
|
|
group = "5678";
|
|
|
|
mode = "755";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
source = ./.;
|
|
|
|
target = "/testDir";
|
|
|
|
}
|
|
|
|
];
|
2020-12-20 20:18:54 +00:00
|
|
|
})
|
|
|
|
+ "/nixos.qcow2";
|
|
|
|
|
|
|
|
in
|
|
|
|
makeEc2Test {
|
|
|
|
name = "image-contents";
|
|
|
|
inherit image;
|
|
|
|
userData = null;
|
|
|
|
script = ''
|
|
|
|
machine.start()
|
2023-03-31 21:51:38 +00:00
|
|
|
# Test that if contents includes a file, it is copied to the target.
|
2020-12-20 20:18:54 +00:00
|
|
|
assert "content" in machine.succeed("cat /testFile")
|
|
|
|
fileDetails = machine.succeed("ls -l /testFile")
|
|
|
|
assert "1234" in fileDetails
|
|
|
|
assert "5678" in fileDetails
|
|
|
|
assert "rwxr-xr-x" in fileDetails
|
2023-03-31 21:51:38 +00:00
|
|
|
|
|
|
|
# Test that if contents includes a directory, it is copied to the target.
|
|
|
|
dirList = machine.succeed("ls /testDir")
|
|
|
|
assert "image-contents.nix" in dirList
|
2020-12-20 20:18:54 +00:00
|
|
|
'';
|
|
|
|
}
|