mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 09:22:44 +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:
parent
8cf93c8d83
commit
fc55fecd45
@ -28,3 +28,13 @@ func PerTestOutput(enabled bool) InitOption {
|
|||||||
c.PerTestOutput = enabled
|
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 {
|
type InitConfig struct {
|
||||||
PerTestOutput bool
|
PerTestOutput bool
|
||||||
|
BufferLogs bool
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Underlier is the additional interface implemented by the per-test LogSink
|
// 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
|
type Underlier = ktesting.Underlier
|
||||||
|
|
||||||
// CleanupGracePeriod is the time that a [TContext] gets canceled before the
|
// 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.VerbosityFlagName("v"),
|
||||||
ktesting.VModuleFlagName("vmodule"),
|
ktesting.VModuleFlagName("vmodule"),
|
||||||
|
ktesting.BufferLogs(c.BufferLogs),
|
||||||
)
|
)
|
||||||
|
|
||||||
// Copy klog settings instead of making the ktesting logger
|
// Copy klog settings instead of making the ktesting logger
|
||||||
|
Loading…
Reference in New Issue
Block a user