Skip to content

Commit

Permalink
k8s.io/component-base/logs: relax flagset unit tests
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
pohly committed Jan 20, 2023
1 parent ce665b2 commit 576b56a
Showing 1 changed file with 26 additions and 12 deletions.
38 changes: 26 additions & 12 deletions staging/src/k8s.io/component-base/logs/api/v1/options_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,15 @@ func TestFlagSet(t *testing.T) {
var buffer bytes.Buffer
fs.SetOutput(&buffer)
fs.PrintDefaults()
assert.Equal(t, ` --logging-format string Sets the log format. Permitted formats: "text". (default "text")
--log-flush-frequency duration Maximum number of seconds between log flushes (default 5s)
-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)
// Expected (Go 1.19, pflag v1.0.5):
// --logging-format string Sets the log format. Permitted formats: "text". (default "text")
// --log-flush-frequency duration Maximum number of seconds between log flushes (default 5s)
// -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())
})

Expand All @@ -127,14 +132,23 @@ func TestFlagSet(t *testing.T) {
var buffer bytes.Buffer
fs.SetOutput(&buffer)
fs.PrintDefaults()
assert.Equal(t, ` -log-flush-frequency value
Maximum number of seconds between log flushes (default 5s)
-logging-format value
Sets the log format. Permitted formats: "text". (default text)
-v value
number for the log level verbosity
-vmodule value
comma-separated list of pattern=N settings for file-filtered logging (only works for text log format)
// Expected (Go 1.19):
// -log-flush-frequency value
// Maximum number of seconds between log flushes (default 5s)
// -logging-format value
// Sets the log format. Permitted formats: "text". (default text)
// -v value
// number for the log level verbosity
// -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())
})

Expand Down

0 comments on commit 576b56a

Please sign in to comment.