mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	selftests: tc-testing: timeout on unbounded loops
In the spirit of failing early, timeout on unbounded loops that take longer than 20 ticks to complete. Such loops are to ensure that objects created are already visible so tests can proceed without any issues. If a test setup takes more than 20 ticks to see an object, there's definetely something wrong. Signed-off-by: Pedro Tammela <pctammela@mojatatu.com> Reviewed-by: Simon Horman <horms@kernel.org> Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> Link: https://lore.kernel.org/r/20231117171208.2066136-6-pctammela@mojatatu.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
		
							parent
							
								
									3f2d94a4ff
								
							
						
					
					
						commit
						4b480cfb10
					
				
					 1 changed files with 12 additions and 0 deletions
				
			
		|  | @ -40,7 +40,10 @@ class SubPlugin(TdcPlugin): | |||
|             self._ns_create() | ||||
| 
 | ||||
|         # Make sure the netns is visible in the fs | ||||
|         ticks = 20 | ||||
|         while True: | ||||
|             if ticks == 0: | ||||
|                 raise TimeoutError | ||||
|             self._proc_check() | ||||
|             try: | ||||
|                 ns = self.args.NAMES['NS'] | ||||
|  | @ -49,6 +52,7 @@ class SubPlugin(TdcPlugin): | |||
|                 break | ||||
|             except: | ||||
|                 time.sleep(0.1) | ||||
|                 ticks -= 1 | ||||
|                 continue | ||||
| 
 | ||||
|     def pre_case(self, test, test_skip): | ||||
|  | @ -127,7 +131,10 @@ class SubPlugin(TdcPlugin): | |||
|         with IPRoute() as ip: | ||||
|             ip.link('add', ifname=dev1, kind='veth', peer={'ifname': dev0, 'net_ns_fd':'/proc/1/ns/net'}) | ||||
|             ip.link('add', ifname=dummy, kind='dummy') | ||||
|             ticks = 20 | ||||
|             while True: | ||||
|                 if ticks == 0: | ||||
|                     raise TimeoutError | ||||
|                 try: | ||||
|                     dev1_idx = ip.link_lookup(ifname=dev1)[0] | ||||
|                     dummy_idx = ip.link_lookup(ifname=dummy)[0] | ||||
|  | @ -136,17 +143,22 @@ class SubPlugin(TdcPlugin): | |||
|                     break | ||||
|                 except: | ||||
|                     time.sleep(0.1) | ||||
|                     ticks -= 1 | ||||
|                     continue | ||||
|         netns.popns() | ||||
| 
 | ||||
|         with IPRoute() as ip: | ||||
|             ticks = 20 | ||||
|             while True: | ||||
|                 if ticks == 0: | ||||
|                     raise TimeoutError | ||||
|                 try: | ||||
|                     dev0_idx = ip.link_lookup(ifname=dev0)[0] | ||||
|                     ip.link('set', index=dev0_idx, state='up') | ||||
|                     break | ||||
|                 except: | ||||
|                     time.sleep(0.1) | ||||
|                     ticks -= 1 | ||||
|                     continue | ||||
| 
 | ||||
|     def _ns_create_cmds(self): | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Pedro Tammela
						Pedro Tammela