summaryrefslogtreecommitdiffstats
path: root/tests/zfs.nix
blob: 5940c4d2bc307687de45b09d18ef854ea5d85aeb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{ pkgs ? (import <nixpkgs> { })
, makeDiskoTest ? (pkgs.callPackage ./lib.nix { }).makeDiskoTest
}:
makeDiskoTest {
  disko-config = import ../example/zfs.nix;
  extraTestScript = ''
    machine.succeed("test -b /dev/zvol/zroot/zfs_testvolume");

    def assert_property(ds, property, expected_value):
        out = machine.succeed(f"zfs get -H {property} {ds} -o value").rstrip()
        assert (
            out == expected_value
        ), f"Expected {property}={expected_value} on {ds}, got: {out}"

    assert_property("zroot", "compression", "lz4")
    assert_property("zroot/zfs_fs", "compression", "lz4")
    assert_property("zroot", "com.sun:auto-snapshot", "false")
    assert_property("zroot/zfs_fs", "com.sun:auto-snapshot", "true")
    assert_property("zroot/zfs_testvolume", "volsize", "10M")
    assert_property("zroot/zfs_unmounted_fs", "mountpoint", "none")

    machine.succeed("mountpoint /mnt");
    machine.succeed("mountpoint /mnt/zfs_fs");
    machine.succeed("mountpoint /mnt/zfs_legacy_fs");
    machine.succeed("mountpoint /mnt/ext4onzfs");
  '';
}