nixpkgs/nixos/tests/zfs.nix

87 lines
2 KiB
Nix
Raw Normal View History

{ system ? builtins.currentSystem,
config ? {},
pkgs ? import ../.. { inherit system config; }
}:
2017-11-13 18:56:03 +00:00
with import ../lib/testing.nix { inherit system pkgs; };
2017-11-13 18:56:03 +00:00
let
2019-10-27 12:53:36 +00:00
makeTest = import ./make-test-python.nix;
2017-11-13 18:56:03 +00:00
makeZfsTest = name:
{ kernelPackage ? pkgs.linuxPackages_latest
, enableUnstable ? false
, extraTest ? ""
}:
makeTest {
name = "zfs-" + name;
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ adisbladis ];
};
machine = { pkgs, ... }:
2017-11-13 18:56:03 +00:00
{
virtualisation.emptyDiskImages = [ 4096 ];
networking.hostId = "deadbeef";
boot.kernelPackages = kernelPackage;
boot.supportedFilesystems = [ "zfs" ];
boot.zfs.enableUnstable = enableUnstable;
environment.systemPackages = with pkgs; [
parted
];
};
testScript = ''
2019-10-27 12:53:36 +00:00
machine.succeed("modprobe zfs")
machine.succeed("zpool status")
2017-11-13 18:56:03 +00:00
2019-10-27 12:53:36 +00:00
machine.succeed("ls /dev")
2017-11-13 18:56:03 +00:00
2019-10-27 12:53:36 +00:00
machine.succeed(
2017-11-13 18:56:03 +00:00
"mkdir /tmp/mnt",
"udevadm settle",
"parted --script /dev/vdb mklabel msdos",
"parted --script /dev/vdb -- mkpart primary 1024M -1s",
"udevadm settle",
"zpool create rpool /dev/vdb1",
"zfs create -o mountpoint=legacy rpool/root",
"mount -t zfs rpool/root /tmp/mnt",
"udevadm settle",
"umount /tmp/mnt",
"zpool destroy rpool",
"udevadm settle"
2019-10-27 12:53:36 +00:00
)
2017-11-13 18:56:03 +00:00
'' + extraTest;
};
in {
stable = makeZfsTest "stable" { };
unstable = makeZfsTest "unstable" {
enableUnstable = true;
extraTest = ''
2019-10-27 12:53:36 +00:00
machine.succeed(
"echo password | zpool create -o altroot=\"/tmp/mnt\" -O encryption=aes-256-gcm -O keyformat=passphrase rpool /dev/vdb1",
2017-11-13 18:56:03 +00:00
"zfs create -o mountpoint=legacy rpool/root",
"mount -t zfs rpool/root /tmp/mnt",
"udevadm settle",
"umount /tmp/mnt",
"zpool destroy rpool",
"udevadm settle"
2019-10-27 12:53:36 +00:00
)
2017-11-13 18:56:03 +00:00
'';
};
installer = (import ./installer.nix { }).zfsroot;
}