49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
|   | import ./make-test.nix ({ pkgs, ... }: | ||
|  | 
 | ||
|  | { | ||
|  |   name = "samba"; | ||
|  | 
 | ||
|  |   meta.maintainers = [ pkgs.lib.maintainers.eelco ]; | ||
|  | 
 | ||
|  |   nodes = | ||
|  |     { client = | ||
|  |         { config, pkgs, ... }: | ||
|  |         { fileSystems = pkgs.lib.mkVMOverride | ||
|  |             { "/public" = { | ||
|  |                 fsType = "cifs"; | ||
|  |                 device = "//server/public"; | ||
|  |                 options = [ "guest" ]; | ||
|  |               }; | ||
|  |             }; | ||
|  |         }; | ||
|  | 
 | ||
|  |       server = | ||
|  |         { config, pkgs, ... }: | ||
|  |         { services.samba.enable = true; | ||
|  |           services.samba.shares.public = | ||
|  |             { path = "/public"; | ||
|  |               "read only" = true; | ||
|  |               browseable = "yes"; | ||
|  |               "guest ok" = "yes"; | ||
|  |               comment = "Public samba share."; | ||
|  |             }; | ||
|  |           networking.firewall.allowedTCPPorts = [ 139 445 ]; | ||
|  |           networking.firewall.allowedUDPPorts = [ 137 138 ]; | ||
|  |         }; | ||
|  |     }; | ||
|  | 
 | ||
|  |   # client# [    4.542997] mount[777]: sh: systemd-ask-password: command not found | ||
|  | 
 | ||
|  |   testScript = | ||
|  |     ''
 | ||
|  |       $server->start; | ||
|  |       $server->waitForUnit("samba-smbd"); | ||
|  |       $server->waitForUnit("samba-nmbd"); | ||
|  |       $server->succeed("mkdir -p /public; echo bar > /public/foo"); | ||
|  | 
 | ||
|  |       $client->start; | ||
|  |       $client->waitForUnit("network.target"); | ||
|  |       $client->succeed("[[ \$(cat /public/foo) = bar ]]"); | ||
|  |     '';
 | ||
|  | }) |