Unverified Commit 7d9cd2a2 authored by Ryan Lahfa's avatar Ryan Lahfa Committed by GitHub
Browse files

Merge pull request #233035 from NixOS/kexec-test

parents 74848cf3 627a8838
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -514,7 +514,11 @@ class Machine:
        return "".join(output_buffer)

    def execute(
        self, command: str, check_return: bool = True, timeout: Optional[int] = 900
        self,
        command: str,
        check_return: bool = True,
        check_output: bool = True,
        timeout: Optional[int] = 900,
    ) -> Tuple[int, str]:
        self.run_callbacks()
        self.connect()
@@ -535,6 +539,9 @@ class Machine:
        assert self.shell
        self.shell.send(out_command.encode())

        if not check_output:
            return (-2, "")

        # Get the output
        output = base64.b64decode(self._next_newline_closed_block_from_shell())

+6 −5
Original line number Diff line number Diff line
@@ -8,10 +8,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
    node1 = { ... }: {
      virtualisation.vlans = [ ];
      virtualisation.memorySize = 4 * 1024;
      virtualisation.useBootLoader = true;
      virtualisation.useEFIBoot = true;
      boot.loader.systemd-boot.enable = true;
      boot.loader.efi.canTouchEfiVariables = true;
    };

    node2 = { modulesPath, ... }: {
@@ -19,6 +15,8 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
      environment.systemPackages = [ pkgs.hello ];
      imports = [
        "${modulesPath}/installer/netboot/netboot-minimal.nix"
        "${modulesPath}/testing/test-instrumentation.nix"
        "${modulesPath}/profiles/qemu-guest.nix"
      ];
    };
  };
@@ -39,7 +37,10 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
    # Kexec node1 to the toplevel of node2 via the kexec-boot script
    node1.succeed('touch /run/foo')
    node1.fail('hello')
    node1.execute('${nodes.node2.config.system.build.kexecTree}/kexec-boot', check_return=False)
    node1.execute('${nodes.node2.system.build.kexecTree}/kexec-boot', check_output=False)
    node1.connected = False
    node1.connect()
    node1.wait_for_unit("multi-user.target")
    node1.succeed('! test -e /run/foo')
    node1.succeed('hello')
    node1.succeed('[ "$(hostname)" = "node2" ]')