 e2372502d3
			
		
	
	
		e2372502d3
		
	
	
	
	
		
			
			The motivation for this change is the following: As gnu-netcat, e. g. does not support ipv6, it is not suitable as default netcat. This commit also fixes all obvious build issues caused by this change.
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| # Test whether hibernation from partition works.
 | |
| 
 | |
| import ./make-test.nix (pkgs: {
 | |
|   name = "hibernate";
 | |
| 
 | |
|   nodes = {
 | |
|     machine = { config, lib, pkgs, ... }: with lib; {
 | |
|       virtualisation.emptyDiskImages = [ config.virtualisation.memorySize ];
 | |
| 
 | |
|       systemd.services.backdoor.conflicts = [ "sleep.target" ];
 | |
| 
 | |
|       swapDevices = mkOverride 0 [ { device = "/dev/vdb"; } ];
 | |
| 
 | |
|       networking.firewall.allowedTCPPorts = [ 4444 ];
 | |
| 
 | |
|       systemd.services.listener.serviceConfig.ExecStart = "${pkgs.netcat}/bin/nc -l 4444";
 | |
|     };
 | |
| 
 | |
|     probe = { config, lib, pkgs, ...}: {
 | |
|       environment.systemPackages = [ pkgs.netcat ];
 | |
|     };
 | |
|   };
 | |
| 
 | |
|   # 9P doesn't support reconnection to virtio transport after a hibernation.
 | |
|   # Therefore, machine just hangs on any Nix store access.
 | |
|   # To work around it we run a daemon which listens to a TCP connection and
 | |
|   # try to connect to it as a test.
 | |
| 
 | |
|   testScript =
 | |
|     ''
 | |
|       $machine->waitForUnit("multi-user.target");
 | |
|       $machine->succeed("mkswap /dev/vdb");
 | |
|       $machine->succeed("swapon -a");
 | |
|       $machine->startJob("listener");
 | |
|       $machine->succeed("systemctl hibernate &");
 | |
|       $machine->waitForShutdown;
 | |
|       $machine->start;
 | |
|       $probe->waitForUnit("network.target");
 | |
|       $probe->waitUntilSucceeds("echo test | nc machine 4444");
 | |
|     '';
 | |
| 
 | |
| })
 |