mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	ktesting: support capturing log output
This is a feature of the underlying k8s.io/klog/v2/ktesting which is useful also when using the Kubernetes ktesting.
This commit is contained in:
		@@ -28,3 +28,13 @@ func PerTestOutput(enabled bool) InitOption {
 | 
			
		||||
		c.PerTestOutput = enabled
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// BufferLogs controls whether log entries are captured in memory in addition
 | 
			
		||||
// to being printed. Off by default. Unit tests that want to verify that
 | 
			
		||||
// log entries are emitted as expected can turn this on and then retrieve
 | 
			
		||||
// the captured log through the Underlier LogSink interface.
 | 
			
		||||
func BufferLogs(enabled bool) InitOption {
 | 
			
		||||
	return func(c *internal.InitConfig) {
 | 
			
		||||
		c.BufferLogs = enabled
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -18,4 +18,5 @@ package internal
 | 
			
		||||
 | 
			
		||||
type InitConfig struct {
 | 
			
		||||
	PerTestOutput bool
 | 
			
		||||
	BufferLogs    bool
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -36,7 +36,8 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Underlier is the additional interface implemented by the per-test LogSink
 | 
			
		||||
// behind [TContext.Logger].
 | 
			
		||||
// behind [TContext.Logger]. Together with [initoption.BufferLogs] it can be
 | 
			
		||||
// used to capture log output in memory to check it in tests.
 | 
			
		||||
type Underlier = ktesting.Underlier
 | 
			
		||||
 | 
			
		||||
// CleanupGracePeriod is the time that a [TContext] gets canceled before the
 | 
			
		||||
@@ -245,6 +246,7 @@ func Init(tb TB, opts ...InitOption) TContext {
 | 
			
		||||
			}),
 | 
			
		||||
			ktesting.VerbosityFlagName("v"),
 | 
			
		||||
			ktesting.VModuleFlagName("vmodule"),
 | 
			
		||||
			ktesting.BufferLogs(c.BufferLogs),
 | 
			
		||||
		)
 | 
			
		||||
 | 
			
		||||
		// Copy klog settings instead of making the ktesting logger
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user