Skip to content

Commit

Permalink
add test for the command line usage
Browse files Browse the repository at this point in the history
The flags and their defaults are part of the klog API and must not change.
  • Loading branch information
pohly committed Sep 7, 2022
1 parent 02fe323 commit a952486
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions klog_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -764,6 +764,9 @@ func TestFileSizeCheck(t *testing.T) {
}

func TestInitFlags(t *testing.T) {
defer CaptureState().Restore()
setFlags()

fs1 := flag.NewFlagSet("test1", flag.PanicOnError)
InitFlags(fs1)
fs1.Set("log_dir", "/test1")
Expand All @@ -779,6 +782,48 @@ func TestInitFlags(t *testing.T) {
}
}

func TestCommandLine(t *testing.T) {
var fs flag.FlagSet
InitFlags(&fs)

expectedFlags := ` -add_dir_header
If true, adds the file directory to the header of the log messages
-alsologtostderr
log to standard error as well as files (no effect when -logtostderr=true)
-log_backtrace_at value
when logging hits line file:N, emit a stack trace
-log_dir string
If non-empty, write log files in this directory (no effect when -logtostderr=true)
-log_file string
If non-empty, use this log file (no effect when -logtostderr=true)
-log_file_max_size uint
Defines the maximum size a log file can grow to (no effect when -logtostderr=true). Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800)
-logtostderr
log to standard error instead of files (default true)
-one_output
If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)
-skip_headers
If true, avoid header prefixes in the log messages
-skip_log_headers
If true, avoid headers when opening log files (no effect when -logtostderr=true)
-stderrthreshold value
logs at or above this threshold go to stderr when writing to files and stderr (no effect when -logtostderr=true or -alsologtostderr=false) (default 2)
-v value
number for the log level verbosity
-vmodule value
comma-separated list of pattern=N settings for file-filtered logging
`

var output bytes.Buffer
fs.SetOutput(&output)
fs.PrintDefaults()
actualFlags := output.String()

if expectedFlags != actualFlags {
t.Fatalf("Command line changed.\nExpected:\n%q\nActual:\n%q\n", expectedFlags, actualFlags)
}
}

func TestInfoObjectRef(t *testing.T) {
defer CaptureState().Restore()
setFlags()
Expand Down

0 comments on commit a952486

Please sign in to comment.