| 
									
										
										
										
											2019-11-26 22:29:27 +01:00
										 |  |  | import ./make-test-python.nix ({ pkgs, lib, ... }: | 
					
						
							| 
									
										
										
										
											2018-04-07 15:06:51 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | with lib; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   name = "iftop"; | 
					
						
							|  |  |  |   meta.maintainers = with pkgs.stdenv.lib.maintainers; [ ma27 ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   nodes = { | 
					
						
							|  |  |  |     withIftop = { | 
					
						
							|  |  |  |       imports = [ ./common/user-account.nix ]; | 
					
						
							|  |  |  |       programs.iftop.enable = true; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |     withoutIftop = { | 
					
						
							|  |  |  |       imports = [ ./common/user-account.nix ]; | 
					
						
							| 
									
										
										
										
											2018-06-01 22:27:51 +02:00
										 |  |  |       environment.systemPackages = [ pkgs.iftop ]; | 
					
						
							| 
									
										
										
										
											2018-04-07 15:06:51 +02:00
										 |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   testScript = ''
 | 
					
						
							| 
									
										
										
										
											2019-11-26 22:29:27 +01:00
										 |  |  |     with subtest("machine with iftop enabled"): | 
					
						
							|  |  |  |         withIftop.wait_for_unit("default.target") | 
					
						
							|  |  |  |         # limit to eth1 (eth0 is the test driver's control interface) | 
					
						
							|  |  |  |         # and don't try name lookups | 
					
						
							|  |  |  |         withIftop.succeed("su -l alice -c 'iftop -t -s 1 -n -i eth1'") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     with subtest("machine without iftop"): | 
					
						
							|  |  |  |         withoutIftop.wait_for_unit("default.target") | 
					
						
							|  |  |  |         # check that iftop is there but user alice lacks capabilitie | 
					
						
							|  |  |  |         withoutIftop.succeed("iftop -t -s 1 -n -i eth1") | 
					
						
							|  |  |  |         withoutIftop.fail("su -l alice -c 'iftop -t -s 1 -n -i eth1'") | 
					
						
							| 
									
										
										
										
											2018-04-07 15:06:51 +02:00
										 |  |  |   '';
 | 
					
						
							|  |  |  | }) |