From dcb0c42857a2ada8754d4514d4b8c4c1d67ab3f5 Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 29 Aug 2022 11:45:19 +0200 Subject: reimplement disko using the nixos type system This should make the code cleaner, more robust and errors should be clearer. we also changed the configuration format a bit. --- tests/complex.nix | 20 ++++++++++++++++++++ tests/lib.nix | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 tests/complex.nix (limited to 'tests') diff --git a/tests/complex.nix b/tests/complex.nix new file mode 100644 index 0000000..3fa861e --- /dev/null +++ b/tests/complex.nix @@ -0,0 +1,20 @@ +{ pkgs ? (import { }) +, makeDiskoTest ? (pkgs.callPackage ./lib.nix { }).makeDiskoTest +}: +makeDiskoTest { + disko-config = import ../example/complex.nix; + extraTestScript = '' + machine.succeed("test -b /dev/zroot/zfs_testvolume"); + machine.succeed("test -b /dev/md/raid1p1"); + + + machine.succeed("mountpoint /mnt"); + machine.succeed("mountpoint /mnt/zfs_fs"); + machine.succeed("mountpoint /mnt/zfs_legacy_fs"); + machine.succeed("mountpoint /mnt/ext4onzfs"); + machine.succeed("mountpoint /mnt/ext4_on_lvm"); + ''; + extraConfig = { + boot.kernelModules = [ "dm-raid" "dm-mirror" ]; + }; +} diff --git a/tests/lib.nix b/tests/lib.nix index 2ec42e6..0bcba2b 100644 --- a/tests/lib.nix +++ b/tests/lib.nix @@ -17,7 +17,7 @@ }; tsp-create = pkgs.writeScript "create" ((pkgs.callPackage ../. { }).create disko-config); tsp-mount = pkgs.writeScript "mount" ((pkgs.callPackage ../. { }).mount disko-config); - num-disks = builtins.length (builtins.filter (x: builtins.match "vd." x == [ ]) (lib.attrNames disko-config.content)); + num-disks = builtins.length (lib.attrNames disko-config.disk); in makeTest' { name = "disko"; -- cgit v1.2.3 From fd2de4ddd46ce24c10cb2ba8fbfc744acc36da03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sun, 4 Sep 2022 12:10:09 +0200 Subject: fix gpt-bios-compat example and test it. --- tests/gpt-bios-compat.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 tests/gpt-bios-compat.nix (limited to 'tests') diff --git a/tests/gpt-bios-compat.nix b/tests/gpt-bios-compat.nix new file mode 100644 index 0000000..df35335 --- /dev/null +++ b/tests/gpt-bios-compat.nix @@ -0,0 +1,10 @@ +{ pkgs ? (import { }) +, makeDiskoTest ? (pkgs.callPackage ./lib.nix { }).makeDiskoTest +}: +makeDiskoTest { + disko-config = import ../example/gpt-bios-compat.nix; + extraTestScript = '' + machine.succeed("mountpoint /mnt"); + machine.succeed("grub-install --target=i386-pc /dev/vdb"); + ''; +} -- cgit v1.2.3 From 65bd5a97f8dddaa6710df085cfd643d8eefead38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sun, 4 Sep 2022 12:44:38 +0200 Subject: add test for lvm example --- tests/default.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'tests') 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 -- cgit v1.2.3 From 68f950bf2045573b03cd0e1ceebe7131ea999873 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sun, 4 Sep 2022 13:09:10 +0200 Subject: add test for standalone nixos config --- tests/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/default.nix b/tests/default.nix index 3118624..496a935 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -20,6 +20,8 @@ let ); allTests = lib.genAttrs (allTestFilenames) (test: import (./. + "/${test}.nix") { inherit makeDiskoTest; }) // - evalTest "lvm-luks-example" ../example/config.nix; + evalTest "lvm-luks-example" ../example/config.nix // { + standalone = (pkgs.nixos [ ../example/stand-alone/configuration.nix ]).config.system.build.toplevel; + }; in allTests -- cgit v1.2.3