summary refs log tree commit diff
path: root/nixos/lib/test-driver
diff options
context:
space:
mode:
authorWill Fancher <elvishjerricco@gmail.com>2023-09-19 23:39:51 -0400
committerWill Fancher <elvishjerricco@gmail.com>2023-11-09 17:53:48 -0500
commit9a0f523372cf836662421ef2603bfb93f568f399 (patch)
tree4042aa5606ad22c0d6438c926fda715142b4709a /nixos/lib/test-driver
parentf8ba8be54b7277ee284850119dc156297633b6b3 (diff)
downloadnixpkgs-9a0f523372cf836662421ef2603bfb93f568f399.tar
nixpkgs-9a0f523372cf836662421ef2603bfb93f568f399.tar.gz
nixpkgs-9a0f523372cf836662421ef2603bfb93f568f399.tar.bz2
nixpkgs-9a0f523372cf836662421ef2603bfb93f568f399.tar.lz
nixpkgs-9a0f523372cf836662421ef2603bfb93f568f399.tar.xz
nixpkgs-9a0f523372cf836662421ef2603bfb93f568f399.tar.zst
nixpkgs-9a0f523372cf836662421ef2603bfb93f568f399.zip
systemd-stage-1: Enable backdoor in nixos tests
Diffstat (limited to 'nixos/lib/test-driver')
-rw-r--r--nixos/lib/test-driver/test_driver/machine.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/nixos/lib/test-driver/test_driver/machine.py b/nixos/lib/test-driver/test_driver/machine.py
index 529de41d892..f430321bb60 100644
--- a/nixos/lib/test-driver/test_driver/machine.py
+++ b/nixos/lib/test-driver/test_driver/machine.py
@@ -1278,3 +1278,19 @@ class Machine:
     def run_callbacks(self) -> None:
         for callback in self.callbacks:
             callback()
+
+    def switch_root(self) -> None:
+        """
+        Transition from stage 1 to stage 2. This requires the
+        machine to be configured with `testing.initrdBackdoor = true`
+        and `boot.initrd.systemd.enable = true`.
+        """
+        self.wait_for_unit("initrd.target")
+        self.execute(
+            "systemctl isolate --no-block initrd-switch-root.target 2>/dev/null >/dev/null",
+            check_return=False,
+            check_output=False,
+        )
+        self.wait_for_console_text(r"systemd\[1\]:.*Switching root\.")
+        self.connected = False
+        self.connect()