7638a44fa6 
							
						 
					 
					
						
						
							
							treewide: parallel tests  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 25s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 44s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 41s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 44s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 41s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 41s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m24s 
				
			 
		
		
	 
 
	 
						
						Most tests already had no global state, however parallel was never enabled. This change enables it for all applicable tests.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-13 04:38:48 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							87b5c30ef6 
							
						 
					 
					
						
						
							
							message: relocate from container  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m22s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m2s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m28s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m21s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m9s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m29s 
				
			 
		
		
	 
 
	 
						
						This package is quite useful. This change allows it to be imported without importing container.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-09 05:18:19 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							46cd3a28c8 
							
						 
					 
					
						
						
							
							container: remove global msg  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 1m10s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m40s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m58s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m44s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 5m1s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 6m2s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m47s 
				
			 
		
		
	 
 
	 
						
						This frees all container instances of side effects.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-09-29 06:11:47 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							e55822c62f 
							
						 
					 
					
						
						
							
							container/init: reduce verbose noise  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 56s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m38s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m45s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m36s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m45s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m43s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m41s 
				
			 
		
		
	 
 
	 
						
						This makes it possible to optionally omit the identifying verbose message, for when the Op implementation can provide a much more useful message in its case, using information not yet available to the String method.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-09-28 21:51:10 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							e81a45e849 
							
						 
					 
					
						
						
							
							container/dispatcher: optional stub wait4 signal association  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m20s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m26s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m20s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m37s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m27s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m41s 
				
			 
		
		
	 
 
	 
						
						This synchronises the wait4 return after the toplevel signal call in lowlastcap_signaled_cancel_forward_error.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-09-04 20:28:49 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							3920acf8c2 
							
						 
					 
					
						
						
							
							container/stub: remove function call in handleExit  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m21s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m21s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m44s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m24s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m26s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m36s 
				
			 
		
		
	 
 
	 
						
						This gets inlined and does not cause problems usually but turns out -coverpkg uninlines it and breaks the recovery.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-09-04 19:39:12 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							19630a9593 
							
						 
					 
					
						
						
							
							container/dispatcher: remove wait4 test log  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 1m55s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 3m29s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m44s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m24s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m18s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m34s 
				
			 
		
		
	 
 
	 
						
						Turns out the reporting methods are not safe for concurrent use, despite the claim in testing.T doc comment.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-09-04 05:30:57 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							4051577d6b 
							
						 
					 
					
						
						
							
							container/stub: override goexit methods  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 1m52s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m34s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m29s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m25s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m25s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m36s 
				
			 
		
		
	 
 
	 
						
						FailNow, Fatal, Fatalf, SkipNow, Skip and Skipf must be called from the goroutine created by the test.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-09-04 04:51:49 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							1b5d20a39b 
							
						 
					 
					
						
						
							
							container/dispatcher: stub.Call initialisation helper function  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m11s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m19s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m34s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m33s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m28s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m39s 
				
			 
		
		
	 
 
	 
						
						This keeps composites analysis happy without making the test cases (too) bloated.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-09-02 04:44:08 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							49600a6f46 
							
						 
					 
					
						
						
							
							container/stub: export stub helpers  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 1m53s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m18s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 3m40s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m35s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m19s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m39s 
				
			 
		
		
	 
 
	 
						
						These are very useful in many packages containing relatively large amount of code making calls to difficult or impossible to stub functions.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-31 23:11:25 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							d7c7c69a13 
							
						 
					 
					
						
						
							
							container/dispatcher: check simple test errors via reflect  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m11s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m40s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m28s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m13s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m17s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m31s 
				
			 
		
		
	 
 
	 
						
						Again, avoids the errors package concealing unexpected behaviours.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-29 22:12:21 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							1c7e634f09 
							
						 
					 
					
						
						
							
							container/dispatcher: check test errors via reflect  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 1m51s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m40s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m17s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m23s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m21s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m33s 
				
			 
		
		
	 
 
	 
						
						Using the errors package might conceal some incorrect behaviour.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-29 02:35:24 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							8db906ee64 
							
						 
					 
					
						
						
							
							container/dispatcher: remove exit stub test log  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m18s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m15s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m1s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m30s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m11s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m30s 
				
			 
		
		
	 
 
	 
						
						Turns out testing.T does not like being called in defer.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-25 17:33:35 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							2baa2d7063 
							
						 
					 
					
						
						
							
							container/init: measure init behaviour  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m12s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m17s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m13s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m33s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m8s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m25s 
				
			 
		
		
	 
 
	 
						
						This used to be entirely done via integration tests, with almost no hope of error injection and coverage profile. These tests significantly increase confidence of future work in this area.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-24 04:52:32 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							0166833431 
							
						 
					 
					
						
						
							
							container/dispatcher: start goroutine in dispatcher  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m13s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m1s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m28s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m6s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m24s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m38s 
				
			 
		
		
	 
 
	 
						
						This allows instrumentation of calls from goroutine without relying on finalizers.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-23 21:58:40 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							1b3902df78 
							
						 
					 
					
						
						
							
							container/dispatcher: instrument each goroutine individually  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 44s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m33s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 2m35s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 3m25s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m41s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m30s 
				
			 
		
		
	 
 
	 
						
						Scheduler nondeterminism cannot be accounted for, so do this instead.
There should not be any performance penalty as these calls are optimised out for direct.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-23 11:07:16 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							ea1e3ebae9 
							
						 
					 
					
						
						
							
							container/params: pass fd instead of file  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m9s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m9s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m12s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m29s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m6s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m29s 
				
			 
		
		
	 
 
	 
						
						The file is very difficult to stub. Pass fd instead as it is the value that is actually useful.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-23 00:16:46 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							1c692bfb79 
							
						 
					 
					
						
						
							
							container/init: call lockOSThread through dispatcher  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m8s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m6s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m31s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m5s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m8s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m20s 
				
			 
		
		
	 
 
	 
						
						This degrades test performance if not stubbed out.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-22 22:24:14 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							afe23600d2 
							
						 
					 
					
						
						
							
							container/path: use syscall dispatcher  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m8s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m14s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m8s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m26s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 43s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m39s 
				
			 
		
		
	 
 
	 
						
						This allows path and mount functions to be instrumented.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-22 22:02:21 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							09d2844981 
							
						 
					 
					
						
						
							
							container/init: wrap syscall helper functions  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m7s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m8s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m59s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m26s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m6s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m26s 
				
			 
		
		
	 
 
	 
						
						This allows tests to stub all kernel behaviour, enabling measurement of all function call arguments and error injection.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-22 19:27:31 +09:00