Skip to content

Commit

Permalink
Update the logs tests to match the actual behaviour of the command
Browse files Browse the repository at this point in the history
Signed-off-by: Richard Wall <[email protected]>
  • Loading branch information
wallrj committed Nov 7, 2024
1 parent 21f7a0d commit 066593e
Showing 1 changed file with 23 additions and 29 deletions.
52 changes: 23 additions & 29 deletions pkg/logs/logs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"context"
"errors"
"fmt"
"io"
"log"
"log/slog"
"os"
Expand Down Expand Up @@ -34,12 +35,24 @@ import (
func TestLogs(t *testing.T) {
if flags, found := os.LookupEnv("GO_CHILD_FLAG"); found {
if _, found := os.LookupEnv("GO_CHILD_SKIP_INITIALIZE"); !found {
fs := pflag.NewFlagSet("test-logs", pflag.ExitOnError)
fs := pflag.NewFlagSet("test-logs", pflag.ContinueOnError)
fs.SetOutput(io.Discard)
logs.AddFlags(fs)
fs.Parse(strings.Split(flags, " "))
if err := fs.Parse(strings.Split(flags, " ")); err != nil {
exitCode := 0
if errors.Is(err, pflag.ErrHelp) {
fmt.Fprint(os.Stdout, fs.FlagUsages())
os.Exit(exitCode)
} else {
exitCode := 1
klog.ErrorS(err, "Exiting due to error", "exit-code", exitCode)
klog.FlushAndExit(time.Second, exitCode)
}
}
if err := logs.Initialize(); err != nil {
fmt.Fprintln(os.Stderr, err.Error())
klog.FlushAndExit(time.Second, 2)
exitCode := 1
klog.ErrorS(err, "Exiting due to error", "exit-code", exitCode)
klog.FlushAndExit(time.Second, exitCode)
}
}

Expand Down Expand Up @@ -67,14 +80,9 @@ func TestLogs(t *testing.T) {
expectStderr string
}{
{
name: "help",
flags: "-h",
expectError: true,
name: "help",
flags: "-h",
expectStdout: `
pflag: help requested
`,
expectStderr: `
Usage of test-logs:
-v, --log-level Level number for the log level verbosity
--logging-format string Sets the log format. Permitted formats: "json", "text". (default "text")
--vmodule pattern=N,... comma-separated list of pattern=N settings for file-filtered logging (only works for text log format)
Expand All @@ -84,38 +92,24 @@ Usage of test-logs:
name: "unrecognized-flag",
flags: "--foo",
expectError: true,
expectStdout: `
unknown flag: --foo
`,
expectStderr: `
unknown flag: --foo
Usage of test-logs:
-v, --log-level Level number for the log level verbosity
--logging-format string Sets the log format. Permitted formats: "json", "text". (default "text")
--vmodule pattern=N,... comma-separated list of pattern=N settings for file-filtered logging (only works for text log format)
E0000 00:00:00.000000 00000 logs_test.go:000] "Exiting due to error" err="unknown flag: --foo" exit-code=1
`,
},
{
name: "v-long-form-not-available",
flags: "--v=3",
expectError: true,
expectStdout: `
unknown flag: --v
`,
expectStderr: `
unknown flag: --v
Usage of test-logs:
-v, --log-level Level number for the log level verbosity
--logging-format string Sets the log format. Permitted formats: "json", "text". (default "text")
--vmodule pattern=N,... comma-separated list of pattern=N settings for file-filtered logging (only works for text log format)
E0000 00:00:00.000000 00000 logs_test.go:000] "Exiting due to error" err="unknown flag: --v" exit-code=1
`,
},
{
name: "logging-format-unrecognized",
flags: "--logging-format=foo",
expectError: true,
expectStderr: `
Error in logging configuration: format: Invalid value: "foo": Unsupported log format
E0000 00:00:00.000000 00000 logs_test.go:000] "Exiting due to error" err="Error in logging configuration: format: Invalid value: \"foo\": Unsupported log format" exit-code=1
`,
},
{
Expand Down Expand Up @@ -301,7 +295,7 @@ E0000 00:00:00.000000 00000 logs_test.go:000] "Contextual error" err="fake-err
if test.expectError {
var target *exec.ExitError
require.ErrorAs(t, err, &target)
require.Equal(t, 2, target.ExitCode(), "Flag parsing failures should always result in exit code 2")
require.Equal(t, 1, target.ExitCode(), "Flag parsing failures should always result in exit code 1")
t.Logf("ERROR: %v", err)
} else {
require.NoError(t, err)
Expand Down

0 comments on commit 066593e

Please sign in to comment.