forked from mirrors/nixpkgs
Merge pull request #233035 from NixOS/kexec-test
This commit is contained in:
commit
7d9cd2a23e
|
@ -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())
|
||||
|
||||
|
|
|
@ -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" ]')
|
||||
|
|
Loading…
Reference in a new issue