1{
2 kernelPackages ? null,
3 mkXfsFlags ? "",
4}:
5import ../make-test-python.nix (
6 { pkgs, lib, ... }:
7 {
8 name = "lvm2-vdo";
9 meta.maintainers = [ ];
10
11 nodes.machine =
12 { pkgs, lib, ... }:
13 {
14 # Minimum required size for VDO volume: 5063921664 bytes
15 virtualisation.emptyDiskImages = [ 8192 ];
16 services.lvm = {
17 boot.vdo.enable = true;
18 dmeventd.enable = true;
19 };
20 environment.systemPackages = with pkgs; [ xfsprogs ];
21 boot = lib.mkIf (kernelPackages != null) { inherit kernelPackages; };
22 };
23
24 testScript = ''
25 machine.succeed("vgcreate test_vg /dev/vdb")
26 machine.succeed("lvcreate --type vdo -n vdo_lv -L 6G -V 12G test_vg/vdo_pool_lv")
27 machine.succeed("mkfs.xfs ${mkXfsFlags} -K /dev/test_vg/vdo_lv")
28 machine.succeed("mkdir /mnt; mount /dev/test_vg/vdo_lv /mnt")
29 assert "/dev/mapper/test_vg-vdo_lv" == machine.succeed("findmnt -no SOURCE /mnt").strip()
30 machine.succeed("umount /mnt")
31 machine.succeed("vdostats")
32 machine.succeed("vgchange -a n")
33 '';
34 }
35)