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)