aboutsummaryrefslogtreecommitdiffstats
path: root/client/go/script-utils/logfmt/levelflags_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'client/go/script-utils/logfmt/levelflags_test.go')
-rw-r--r--client/go/script-utils/logfmt/levelflags_test.go74
1 files changed, 74 insertions, 0 deletions
diff --git a/client/go/script-utils/logfmt/levelflags_test.go b/client/go/script-utils/logfmt/levelflags_test.go
new file mode 100644
index 00000000000..186ea2d96b0
--- /dev/null
+++ b/client/go/script-utils/logfmt/levelflags_test.go
@@ -0,0 +1,74 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// vespa logfmt command
+// Author: arnej
+
+package logfmt
+
+import (
+ "strings"
+ "testing"
+)
+
+func TestLevelFlags(t *testing.T) {
+ none := " -fatal -error -warning -info -config -event -debug -spam"
+
+ var flag flagValueForLevel
+ if flag.String() != none {
+ t.Logf("unset flag displays as '%s', expected '%s'", flag.String(), none)
+ t.Fail()
+ }
+ if flag.Type() != "level flags" {
+ t.Logf("flag type was '%s'", flag.Type())
+ t.Fail()
+ }
+ check := func(expected string, texts ...string) {
+ var target flagValueForLevel
+ // target.levels = defaultLevelFlags()
+ target.levels = defaultLevelFlags()
+ for _, text := range texts {
+ err := target.Set(text)
+ if err != nil {
+ t.Fatalf("unexpected error with level flags Set('%s'): %v", text, err)
+ }
+ }
+ got := target.String()
+ if got != expected {
+ t.Logf("expected flags [%s] but got: [%s]", expected, got)
+ t.Fail()
+ }
+ }
+ check(" +fatal +error +warning +info -config -event -debug -spam")
+ check(" -fatal -error -warning -info -config -event -debug -spam", "-all")
+ check(" +fatal +error +warning +info +config +event +debug +spam", "all")
+ check(" +fatal +error +warning +info +config +event +debug +spam", "+all")
+ check(" -fatal -error -warning -info -config -event +debug -spam", "debug")
+ check(" +fatal +error +warning +info +config +event +debug -spam", "all-spam")
+ check(" +fatal +error +warning +info +config +event +debug -spam", "all", "-spam")
+ check(" +fatal +error +warning -info -config +event -debug -spam", "+event", "-info")
+ check(" +fatal +error -warning -info -config +event -debug -spam", "+event,-info,-warning,config")
+ check(" +fatal +error -warning -info +config +event -debug -spam", "+event,-info,-warning,+config")
+ check(" +fatal +error -warning -info +config +event -debug -spam", "+event,-info", "-warning,+config")
+ check(" -fatal -error -warning -info +config -event -debug -spam", "+event", "-info", "-warning", "config")
+ check = func(expectErr string, texts ...string) {
+ var target flagValueForLevel
+ target.levels = defaultLevelFlags()
+ for _, text := range texts {
+ err := target.Set(text)
+ if err != nil {
+ if err.Error() == expectErr {
+ return
+ }
+ t.Fatalf("expected error [%s] with level flags Set('%s'), but got [%v]", expectErr, text, err)
+ }
+ }
+ t.Logf("Did not get expected error '%s' from %s", expectErr, strings.Join(texts, ","))
+ t.Fail()
+ }
+ check("not a valid level flag: 'foo'", "foo")
+ check("not a valid level flag: 'foo'", "event,foo,config")
+ check("not a valid level flag: 'foo'", "-event,-foo,-config")
+ check("not a valid level flag: 'foo'", "+event,+foo,+config")
+ check("not a valid level flag: 'foo'", "event", "foo", "config")
+ check("not a valid level flag: 'foo'", "-event", "-foo", "-config")
+ check("not a valid level flag: 'foo'", "+event", "+foo", "+config")
+}