From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 Received: from atuin.qyliss.net (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id E9504B83CA; Fri, 26 May 2023 21:08:34 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 496) id 4BD29B8455; Fri, 26 May 2023 21:08:32 +0000 (UTC) Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) by atuin.qyliss.net (Postfix) with ESMTPS id C7B3CB83C0 for ; Fri, 26 May 2023 21:08:28 +0000 (UTC) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 58F1B5C01A0; Fri, 26 May 2023 17:08:25 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Fri, 26 May 2023 17:08:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alyssa.is; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:message-id:mime-version:reply-to:sender:subject :subject:to:to; s=fm3; t=1685135305; x=1685221705; bh=BuUeO6d82J ieXv9m1SRWnwiluovOHcCpw6ufPfwNbNU=; b=Eq2kKX2UnkFphf7IVLEtt6OzH/ bBufaJfA73w3XI12fDbJKJp7vc3Q8LPcFCp//tzqtSENlSMxw4zsG86yfjPGmgtE XQszxlm+XRZvb3I0wGFFjhEt7BcKAt+TgC57hAPILBd1wOzPPbQjLzzBlBl87qh8 sz1xrXuMqH6GSQ/suLi51NNKOBlfUhyw1OlJGvDn11sc51J96cBY3jsOrt8av78H AMf9hOoEQY80Yn4H+KlZmKRFSwZPOg97N7OCIHTgg7loAZm9PysAB1AjGqVIv+J6 NagYEjfx0OKEBV18xMnaejhRli29RgeWDkGzp1qj2ZSNblzOLjXazYN9ChwA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:message-id:mime-version:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; t=1685135305; x=1685221705; bh=BuUeO6d82JieX v9m1SRWnwiluovOHcCpw6ufPfwNbNU=; b=p6/71rowuFDZz5IEboIJOL48ulZoW H0/rLlsUSifRrcTQiqqLif6WRl3tA8eR8HV6V096/iJuP4OgyRzNQXWYjabKrY3f K1m+3Ei0jOQsXiZkXZuiRXWwKXuPSnZfdSzZwE6YnlJVOV92bOW2WPUE8GDiw0qv BPD7QHTKhlmUn7czS1DpXjTL9LkXqt2U8bbnWp41tYS+G49ej1fIr8j/Onk3ARwK LR3hLjuaJm6qREJLv8msGeJ6ZvsjQ4CJIK1IomrA4t7S2W4Kls/pWY8x1k1OwisZ qR6x/gczY6N4MdYkuJorcvAkzhC2zBV2bE9Lpwm0fMP0w919+uJIyXL5Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrfeejledgudehhecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhvfevufffkffoggfgsedtkeertdertddtnecuhfhrohhmpeetlhihshhs rgcutfhoshhsuceohhhisegrlhihshhsrgdrihhsqeenucggtffrrghtthgvrhhnpedvle etleehvdffkeeghfefgfdvtdelgfefjeejtdelffekgeegfeeutdehleehtdenucffohhm rghinhepshhpvggtthhruhhmqdhoshdrohhrghdplhhinhhugidqkhgvrhhnvghlrdhtrg hrghgvthenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhm pehhihesrghlhihsshgrrdhish X-ME-Proxy: Feedback-ID: i12284293:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 26 May 2023 17:08:24 -0400 (EDT) Received: by x220.qyliss.net (Postfix, from userid 1000) id 362A254A0; Fri, 26 May 2023 21:08:22 +0000 (UTC) From: Alyssa Ross To: devel@spectrum-os.org Subject: [PATCH] release/checks/try.nix: init Date: Fri, 26 May 2023 21:07:58 +0000 Message-Id: <20230526210757.397735-1-hi@alyssa.is> X-Mailer: git-send-email 2.37.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: WP7WVIEKK3PSPMA5BIVSR6UWWEEH7HS7 X-Message-ID-Hash: WP7WVIEKK3PSPMA5BIVSR6UWWEEH7HS7 X-MailFrom: hi@alyssa.is X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-devel.spectrum-os.org-0; header-match-devel.spectrum-os.org-1; header-match-devel.spectrum-os.org-2; header-match-devel.spectrum-os.org-3; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Ryan Lahfa X-Mailman-Version: 3.3.5 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: This is a regression test for c7f87f3 ("host/rootfs: allow growing ext partition to fail"). It's the first time we're actually doing automated tests of a Spectrum boot. For now, I'm using the NixOS test framework, but because we're not using NixOS and not setting any NixOS options, it feels to me like it doesn't actually buy us very much, so if it doesn't start adding more value as we add more (or more complex) tests, it might be simpler to just use a shell/execline script for tests. Signed-off-by: Alyssa Ross --- Documentation for reviewing patches: https://spectrum-os.org/doc/contributing/reviewing-patches.html release/checks/default.nix | 2 ++ release/checks/try.nix | 50 ++++++++++++++++++++++++++++++++++++++ release/live/default.nix | 2 +- 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 release/checks/try.nix 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..73539ef --- /dev/null +++ b/release/checks/try.nix @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: MIT +# SPDX-FileCopyrightText: 2023 Alyssa Ross + +import ../../lib/eval-config.nix ({ config, ... }: + +let + live = import ../live { inherit config; }; +in + +config.pkgs.nixosTest ({ pkgs, ... }: { + name = "try-spectrum-test"; + nodes = {}; + + testScript = '' + import shlex + import subprocess + + conf = subprocess.run([ + "${pkgs.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 + + flags = " ".join(map(shlex.quote, [ + "qemu-kvm", + "-m", "512", + "-kernel", "${live.rootfs.kernel}/${pkgs.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; }; } ) {}) -- 2.37.1