| 
									
										
										
										
											2018-04-07 15:06:51 +02:00
										 |  |  | import ./make-test.nix ({ pkgs, lib, ... }: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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 = ''
 | 
					
						
							|  |  |  |     subtest "machine with iftop enabled", sub { | 
					
						
							| 
									
										
										
										
											2018-06-01 22:27:51 +02:00
										 |  |  |       $withIftop->waitForUnit("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'"); | 
					
						
							| 
									
										
										
										
											2018-04-07 15:06:51 +02:00
										 |  |  |     }; | 
					
						
							|  |  |  |     subtest "machine without iftop", sub { | 
					
						
							| 
									
										
										
										
											2018-06-01 22:27:51 +02:00
										 |  |  |       $withoutIftop->waitForUnit("default.target"); | 
					
						
							|  |  |  |       # check that iftop is there but user alice lacks capabilities | 
					
						
							|  |  |  |       $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
										 |  |  |     }; | 
					
						
							|  |  |  |   '';
 | 
					
						
							|  |  |  | }) |