nixosTests.zfs: Refactor

This commit is contained in:
Jacek Galowicz 2020-01-28 08:54:17 +01:00
parent 059845b11d
commit 3bb2941e73

View File

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