| 
									
										
										
										
											2016-09-30 21:24:18 +02:00
										 |  |  | import ./make-test.nix ({ pkgs, ... }: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   name = "samba"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   meta.maintainers = [ pkgs.lib.maintainers.eelco ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   nodes = | 
					
						
							|  |  |  |     { client = | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |         { pkgs, ... }: | 
					
						
							| 
									
										
										
										
											2016-09-30 21:24:18 +02:00
										 |  |  |         { fileSystems = pkgs.lib.mkVMOverride | 
					
						
							|  |  |  |             { "/public" = { | 
					
						
							|  |  |  |                 fsType = "cifs"; | 
					
						
							|  |  |  |                 device = "//server/public"; | 
					
						
							|  |  |  |                 options = [ "guest" ]; | 
					
						
							|  |  |  |               }; | 
					
						
							|  |  |  |             }; | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       server = | 
					
						
							| 
									
										
										
										
											2018-07-20 20:56:59 +00:00
										 |  |  |         { ... }: | 
					
						
							| 
									
										
										
										
											2016-09-30 21:24:18 +02:00
										 |  |  |         { 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; | 
					
						
							| 
									
										
										
										
											2017-03-01 03:16:35 +03:00
										 |  |  |       $server->waitForUnit("samba.target"); | 
					
						
							| 
									
										
										
										
											2016-09-30 21:24:18 +02:00
										 |  |  |       $server->succeed("mkdir -p /public; echo bar > /public/foo"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       $client->start; | 
					
						
							| 
									
										
										
										
											2017-03-01 03:16:35 +03:00
										 |  |  |       $client->waitForUnit("remote-fs.target"); | 
					
						
							| 
									
										
										
										
											2016-09-30 21:24:18 +02:00
										 |  |  |       $client->succeed("[[ \$(cat /public/foo) = bar ]]"); | 
					
						
							|  |  |  |     '';
 | 
					
						
							|  |  |  | }) |