aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/nixos/tests/zfs.nix
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-12-09 18:55:19 +0000
committerMx Kookie <kookie@spacekookie.de>2020-12-09 18:55:19 +0000
commit80d90d9b204f7c17912740f9f414fe5d59f293ba (patch)
tree5f2065a06e724270610760d59d01c6888b375a46 /infra/libkookie/nixpkgs/nixos/tests/zfs.nix
parent3a31a84c7d3e589035ad08499206aac44a81f424 (diff)
parent83cbad92d73216bb0d9187c56cce0b91f9121d5a (diff)
Merge commit '83cbad92d73216bb0d9187c56cce0b91f9121d5a' into main
Diffstat (limited to 'infra/libkookie/nixpkgs/nixos/tests/zfs.nix')
-rw-r--r--infra/libkookie/nixpkgs/nixos/tests/zfs.nix35
1 files changed, 34 insertions, 1 deletions
diff --git a/infra/libkookie/nixpkgs/nixos/tests/zfs.nix b/infra/libkookie/nixpkgs/nixos/tests/zfs.nix
index 87e6c900c98e..e05cd540227a 100644
--- a/infra/libkookie/nixpkgs/nixos/tests/zfs.nix
+++ b/infra/libkookie/nixpkgs/nixos/tests/zfs.nix
@@ -18,7 +18,7 @@ let
maintainers = [ adisbladis ];
};
- machine = { pkgs, ... }: {
+ machine = { pkgs, lib, ... }: {
virtualisation.emptyDiskImages = [ 4096 ];
networking.hostId = "deadbeef";
boot.kernelPackages = kernelPackage;
@@ -26,6 +26,24 @@ let
boot.zfs.enableUnstable = enableUnstable;
environment.systemPackages = [ pkgs.parted ];
+
+ # Setup regular fileSystems machinery to ensure forceImportAll can be
+ # tested via the regular service units.
+ fileSystems = lib.mkVMOverride {
+ "/forcepool" = {
+ device = "forcepool";
+ fsType = "zfs";
+ options = [ "noauto" ];
+ };
+ };
+
+ # forcepool doesn't exist at first boot, and we need to manually test
+ # the import after tweaking the hostId.
+ systemd.services.zfs-import-forcepool.wantedBy = lib.mkVMOverride [];
+ systemd.targets.zfs.wantedBy = lib.mkVMOverride [];
+ boot.zfs.forceImportAll = true;
+ # /dev/disk/by-id doesn't get populated in the NixOS test framework
+ boot.zfs.devNodes = "/dev/disk/by-uuid";
};
testScript = ''
@@ -57,6 +75,21 @@ let
"zpool destroy rpool",
"udevadm settle",
)
+
+ with subtest("boot.zfs.forceImportAll works"):
+ machine.succeed(
+ "rm /etc/hostid",
+ "zgenhostid deadcafe",
+ "zpool create forcepool /dev/vdb1 -O mountpoint=legacy",
+ )
+ machine.shutdown()
+ machine.start()
+ machine.succeed("udevadm settle")
+ machine.fail("zpool import forcepool")
+ machine.succeed(
+ "systemctl start zfs-import-forcepool.service",
+ "mount -t zfs forcepool /tmp/mnt",
+ )
'' + extraTest;
};