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)
|
return "".join(output_buffer)
|
||||||
|
|
||||||
def execute(
|
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]:
|
) -> Tuple[int, str]:
|
||||||
self.run_callbacks()
|
self.run_callbacks()
|
||||||
self.connect()
|
self.connect()
|
||||||
|
@ -535,6 +539,9 @@ class Machine:
|
||||||
assert self.shell
|
assert self.shell
|
||||||
self.shell.send(out_command.encode())
|
self.shell.send(out_command.encode())
|
||||||
|
|
||||||
|
if not check_output:
|
||||||
|
return (-2, "")
|
||||||
|
|
||||||
# Get the output
|
# Get the output
|
||||||
output = base64.b64decode(self._next_newline_closed_block_from_shell())
|
output = base64.b64decode(self._next_newline_closed_block_from_shell())
|
||||||
|
|
||||||
|
|
|
@ -8,10 +8,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
||||||
node1 = { ... }: {
|
node1 = { ... }: {
|
||||||
virtualisation.vlans = [ ];
|
virtualisation.vlans = [ ];
|
||||||
virtualisation.memorySize = 4 * 1024;
|
virtualisation.memorySize = 4 * 1024;
|
||||||
virtualisation.useBootLoader = true;
|
|
||||||
virtualisation.useEFIBoot = true;
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
node2 = { modulesPath, ... }: {
|
node2 = { modulesPath, ... }: {
|
||||||
|
@ -19,6 +15,8 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
||||||
environment.systemPackages = [ pkgs.hello ];
|
environment.systemPackages = [ pkgs.hello ];
|
||||||
imports = [
|
imports = [
|
||||||
"${modulesPath}/installer/netboot/netboot-minimal.nix"
|
"${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
|
# Kexec node1 to the toplevel of node2 via the kexec-boot script
|
||||||
node1.succeed('touch /run/foo')
|
node1.succeed('touch /run/foo')
|
||||||
node1.fail('hello')
|
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('! test -e /run/foo')
|
||||||
node1.succeed('hello')
|
node1.succeed('hello')
|
||||||
node1.succeed('[ "$(hostname)" = "node2" ]')
|
node1.succeed('[ "$(hostname)" = "node2" ]')
|
||||||
|
|
Loading…
Reference in a new issue