diff options
Diffstat (limited to 'middleware/pkg/debug')
-rw-r--r-- | middleware/pkg/debug/debug.go | 20 | ||||
-rw-r--r-- | middleware/pkg/debug/debug_test.go | 21 |
2 files changed, 41 insertions, 0 deletions
diff --git a/middleware/pkg/debug/debug.go b/middleware/pkg/debug/debug.go new file mode 100644 index 000000000..b3c33b344 --- /dev/null +++ b/middleware/pkg/debug/debug.go @@ -0,0 +1,20 @@ +package debug + +import "strings" + +const Name = "o-o.debug." + +// IsDebug checks if name is a debugging name, i.e. starts with o-o.debug. +// it returns the empty string if it is not a debug message, otherwise it will return the +// name with o-o.debug. stripped off. Must be called with name lowercased. +func IsDebug(name string) string { + if len(name) == len(Name) { + return "" + } + name = strings.ToLower(name) + debug := strings.HasPrefix(name, Name) + if !debug { + return "" + } + return name[len(Name):] +} diff --git a/middleware/pkg/debug/debug_test.go b/middleware/pkg/debug/debug_test.go new file mode 100644 index 000000000..9b0d9ea4f --- /dev/null +++ b/middleware/pkg/debug/debug_test.go @@ -0,0 +1,21 @@ +package debug + +import ( + "strings" + "testing" +) + +func TestIsDebug(t *testing.T) { + if ok := IsDebug("o-o.debug.miek.nl."); ok != "miek.nl." { + t.Errorf("expected o-o.debug.miek.nl. to be debug") + } + if ok := IsDebug(strings.ToLower("o-o.Debug.miek.nl.")); ok != "miek.nl." { + t.Errorf("expected o-o.Debug.miek.nl. to be debug") + } + if ok := IsDebug("i-o.debug.miek.nl."); ok != "" { + t.Errorf("expected i-o.Debug.miek.nl. to be non-debug") + } + if ok := IsDebug(strings.ToLower("i-o.Debug.")); ok != "" { + t.Errorf("expected o-o.Debug. to be non-debug") + } +} |