diff options
Diffstat (limited to 'release')
-rw-r--r-- | release/checks/default.nix | 2 | ||||
-rw-r--r-- | release/checks/try.nix | 51 | ||||
-rw-r--r-- | release/live/default.nix | 2 |
3 files changed, 54 insertions, 1 deletions
diff --git a/release/checks/default.nix b/release/checks/default.nix index f8a3f9b..bf26b9a 100644 --- a/release/checks/default.nix +++ b/release/checks/default.nix @@ -15,4 +15,6 @@ import ../../lib/eval-config.nix ({ ... } @ args: rustfmt = import ./rustfmt.nix args; shellcheck = import ./shellcheck.nix args; + + try = import ./try.nix args; }) diff --git a/release/checks/try.nix b/release/checks/try.nix new file mode 100644 index 0000000..62fade9 --- /dev/null +++ b/release/checks/try.nix @@ -0,0 +1,51 @@ +# SPDX-License-Identifier: MIT +# SPDX-FileCopyrightText: 2023 Alyssa Ross <hi@alyssa.is> + +import ../../lib/eval-config.nix ({ config, ... }: + +let + live = import ../live { inherit config; }; +in + +config.pkgs.nixosTest ({ stdenv, mtools, ... }: { + name = "try-spectrum-test"; + nodes = {}; + + testScript = '' + import shlex + import subprocess + + conf = subprocess.run([ + "${mtools}/bin/mcopy", + "-i", + "${live}@@1M", + "::loader/entries/spectrum.conf", + "-", + ], stdout=subprocess.PIPE) + conf.check_returncode() + + cmdline = None + for line in conf.stdout.decode('utf-8').splitlines(): + key, value = line.split(' ', 1) + if key == 'options': + cmdline = value + break + + flags = " ".join(map(shlex.quote, [ + "qemu-kvm", + "-m", "512", + "-kernel", "${live.rootfs.kernel}/${stdenv.hostPlatform.linux-kernel.target}", + "-initrd", "${live.initramfs}", + "-device", "qemu-xhci", + "-device", "usb-storage,drive=drive1,removable=true", + "-drive", "file=${live},id=drive1,format=raw,if=none,readonly=on", + "-append", f"panic=-1 {cmdline}", + ])) + + machine = create_machine({"startCommand": flags}) + + machine.start() + machine.wait_for_console_text("EXT4-fs \(sda4\): mounted filesystem") + machine.crash() + ''; +})) diff --git a/release/live/default.nix b/release/live/default.nix index b7ee036..6df73d4 100644 --- a/release/live/default.nix +++ b/release/live/default.nix @@ -48,6 +48,6 @@ stdenvNoCC.mkDerivation { enableParallelBuilding = true; - passthru = { inherit rootfs; }; + passthru = { inherit initramfs rootfs; }; } ) {}) |