diff options
author | Jörg Thalheim <joerg@thalheim.io> | 2022-09-04 12:44:38 +0200 |
---|---|---|
committer | Jörg Thalheim <joerg@thalheim.io> | 2022-09-04 12:52:19 +0200 |
commit | 65bd5a97f8dddaa6710df085cfd643d8eefead38 (patch) | |
tree | 1a86003f516e0e884f758cb6f0de75b51571c7ee | |
parent | 3e48d1fd85714f7a5172bfb7e65e214d136f1de1 (diff) |
add test for lvm example
-rw-r--r-- | example/config.nix | 117 | ||||
-rw-r--r-- | tests/default.nix | 11 |
2 files changed, 72 insertions, 56 deletions
diff --git a/example/config.nix b/example/config.nix index 1a64b1c..f75ec63 100644 --- a/example/config.nix +++ b/example/config.nix @@ -1,67 +1,74 @@ # usage: nix-instantiate --eval --json --strict example/config.nix | jq . { - type = "devices"; - content = { - sda = { - type = "table"; - format = "gpt"; - partitions = [ - { - type = "partition"; - part-type = "ESP"; - start = "1MiB"; - end = "1024MiB"; - fs-type = "fat32"; - bootable = true; + lvm_vg = { + pool = { + type = "lvm_vg"; + lvs = { + root = { + type = "lv"; + size = "10G"; content = { type = "filesystem"; - format = "vfat"; - mountpoint = "/boot"; + format = "ext4"; + mountpoint = "/"; }; - } - { - type = "partition"; - part-type = "primary"; - start = "1024MiB"; - end = "100%"; - flags = [ "bios_grub" ]; + }; + home = { + type = "lv"; + size = "10G"; content = { - type = "luks"; - algo = "aes-xts..."; - name = "crypted"; - keyfile = "/tmp/secret.key"; - extraArgs = [ - "--hash sha512" - "--iter-time 5000" - ]; + type = "filesystem"; + format = "ext4"; + mountpoint = "/home"; + }; + }; + }; + }; + }; + disk = { + sda = { + device = "/dev/sda"; + content = { + type = "table"; + format = "gpt"; + partitions = [ + { + name = "boot"; + type = "partition"; + part-type = "ESP"; + start = "1MiB"; + end = "1024MiB"; + fs-type = "fat32"; + bootable = true; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + }; + } + { + name = "crypt_root"; + type = "partition"; + part-type = "primary"; + start = "1024MiB"; + end = "100%"; + flags = ["bios_grub"]; content = { - type = "lvm"; - name = "pool"; - lvs = { - root = { - type = "lv"; - size = "10G"; - mountpoint = "/"; - content = { - type = "filesystem"; - format = "ext4"; - mountpoint = "/"; - }; - }; - home = { - type = "lv"; - size = "10G"; - content = { - type = "filesystem"; - format = "ext4"; - mountpoint = "/home"; - }; - }; + type = "luks"; + name = "crypted"; + keyFile = "/tmp/secret.key"; + extraArgs = [ + "--hash sha512" + "--iter-time 5000" + ]; + content = { + type = "lvm_pv"; + vg = "pool"; }; }; - }; - } - ]; + } + ]; + }; }; }; } diff --git a/tests/default.nix b/tests/default.nix index 525f936..3118624 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -4,6 +4,14 @@ let lib = pkgs.lib; makeDiskoTest = (pkgs.callPackage ./lib.nix { inherit makeTest; }).makeDiskoTest; + + evalTest = name: configFile: let + disko-config = import configFile; + in { + "${name}-tsp-create" = pkgs.writeScript "create" ((pkgs.callPackage ../. { }).create disko-config); + "${name}-tsp-mount" = pkgs.writeScript "mount" ((pkgs.callPackage ../. { }).mount disko-config); + }; + allTestFilenames = builtins.map (lib.removeSuffix ".nix") ( builtins.filter @@ -11,6 +19,7 @@ let (lib.attrNames (builtins.readDir ./.)) ); - allTests = lib.genAttrs (allTestFilenames) (test: import (./. + "/${test}.nix") { inherit makeDiskoTest; }); + allTests = lib.genAttrs (allTestFilenames) (test: import (./. + "/${test}.nix") { inherit makeDiskoTest; }) // + evalTest "lvm-luks-example" ../example/config.nix; in allTests |