k8s.io/component-base/logs: relax flagset unit tests

A full string comparison might fail when the underlying libraries change how
they format the help text. A regex match is less strict, but still makes some
assumptions about the implementation.
This commit is contained in:
Patrick Ohly 2023-01-18 14:45:54 +01:00
parent 8251a63269
commit 4add08dcce

View File

@ -109,10 +109,15 @@ func TestFlagSet(t *testing.T) {
var buffer bytes.Buffer var buffer bytes.Buffer
fs.SetOutput(&buffer) fs.SetOutput(&buffer)
fs.PrintDefaults() fs.PrintDefaults()
assert.Equal(t, ` --logging-format string Sets the log format. Permitted formats: "text". (default "text") // Expected (Go 1.19, pflag v1.0.5):
--log-flush-frequency duration Maximum number of seconds between log flushes (default 5s) // --logging-format string Sets the log format. Permitted formats: "text". (default "text")
-v, --v Level number for the log level verbosity // --log-flush-frequency duration Maximum number of seconds between log flushes (default 5s)
--vmodule pattern=N,... comma-separated list of pattern=N settings for file-filtered logging (only works for text log format) // -v, --v Level number for the log level verbosity
// --vmodule pattern=N,... comma-separated list of pattern=N settings for file-filtered logging (only works for text log format)
assert.Regexp(t, `.*--logging-format.*default.*text.*
.*--log-flush-frequency.*default 5s.*
.*-v.*--v.*
.*--vmodule.*pattern=N.*
`, buffer.String()) `, buffer.String())
}) })
@ -127,14 +132,23 @@ func TestFlagSet(t *testing.T) {
var buffer bytes.Buffer var buffer bytes.Buffer
fs.SetOutput(&buffer) fs.SetOutput(&buffer)
fs.PrintDefaults() fs.PrintDefaults()
assert.Equal(t, ` -log-flush-frequency value // Expected (Go 1.19):
Maximum number of seconds between log flushes (default 5s) // -log-flush-frequency value
-logging-format value // Maximum number of seconds between log flushes (default 5s)
Sets the log format. Permitted formats: "text". (default text) // -logging-format value
-v value // Sets the log format. Permitted formats: "text". (default text)
number for the log level verbosity // -v value
-vmodule value // number for the log level verbosity
comma-separated list of pattern=N settings for file-filtered logging (only works for text log format) // -vmodule value
// comma-separated list of pattern=N settings for file-filtered logging (only works for text log format)
assert.Regexp(t, `.*-log-flush-frequency.*
.*default 5s.*
.*-logging-format.*
.*default.*text.*
.*-v.*
.*
.*-vmodule.*
.*
`, buffer.String()) `, buffer.String())
}) })