diff options
author | Felix Lange <fjl@twurst.com> | 2016-01-20 21:13:10 +0800 |
---|---|---|
committer | Felix Lange <fjl@twurst.com> | 2016-01-21 20:37:38 +0800 |
commit | a15b02320eca04325c998d69a77ebf1e53e22808 (patch) | |
tree | 1600f513dd2e73c176968f76f80d5de7735af465 /logger/glog/glog_test.go | |
parent | 0ab8a175d812462a5233065f3c729cd67d6ccc90 (diff) | |
download | go-tangerine-a15b02320eca04325c998d69a77ebf1e53e22808.tar.gz go-tangerine-a15b02320eca04325c998d69a77ebf1e53e22808.tar.zst go-tangerine-a15b02320eca04325c998d69a77ebf1e53e22808.zip |
logger/glog: add directory context to output and vmodule matching
This change allows setting the verbosity for directory prefixes
using the syntax:
--vmodule=eth/=6
Diffstat (limited to 'logger/glog/glog_test.go')
-rw-r--r-- | logger/glog/glog_test.go | 51 |
1 files changed, 36 insertions, 15 deletions
diff --git a/logger/glog/glog_test.go b/logger/glog/glog_test.go index 0fb376e1f..30861a48d 100644 --- a/logger/glog/glog_test.go +++ b/logger/glog/glog_test.go @@ -180,7 +180,7 @@ func TestHeader(t *testing.T) { pid = 1234 Info("test") var line int - format := "I0102 15:04:05.067890 1234 glog_test.go:%d] test\n" + format := "I0102 15:04:05.067890 logger/glog/glog_test.go:%d] test\n" n, err := fmt.Sscanf(contents(infoLog), format, &line) if n != 1 || err != nil { t.Errorf("log format error: %d elements, error %s:\n%s", n, err, contents(infoLog)) @@ -253,7 +253,7 @@ func TestV(t *testing.T) { func TestVmoduleOn(t *testing.T) { setFlags() defer logging.swap(logging.newBuffers()) - logging.vmodule.Set("glog_test=2") + logging.vmodule.Set("glog_test.go=2") defer logging.vmodule.Set("") if !V(1) { t.Error("V not enabled for 1") @@ -290,22 +290,43 @@ func TestVmoduleOff(t *testing.T) { } } +var patternTests = []struct{ input, want string }{ + {"foo/bar/x.go", ".*/foo/bar/x\\.go$"}, + {"foo/*/x.go", ".*/foo(/.*)?/x\\.go$"}, + {"foo/*", ".*/foo(/.*)?/[^/]+\\.go$"}, +} + +func TestCompileModulePattern(t *testing.T) { + for _, test := range patternTests { + re, err := compileModulePattern(test.input) + if err != nil { + t.Fatalf("%s: %v", err) + } + if re.String() != test.want { + t.Errorf("mismatch for %q: got %q, want %q", test.input, re.String(), test.want) + } + } +} + // vGlobs are patterns that match/don't match this file at V=2. var vGlobs = map[string]bool{ // Easy to test the numeric match here. - "glog_test=1": false, // If -vmodule sets V to 1, V(2) will fail. - "glog_test=2": true, - "glog_test=3": true, // If -vmodule sets V to 1, V(3) will succeed. - // These all use 2 and check the patterns. All are true. - "*=2": true, - "?l*=2": true, - "????_*=2": true, - "??[mno]?_*t=2": true, - // These all use 2 and check the patterns. All are false. - "*x=2": false, - "m*=2": false, - "??_*=2": false, - "?[abc]?_*t=2": false, + "glog_test.go=1": false, // If -vmodule sets V to 1, V(2) will fail. + "glog_test.go=2": true, + "glog_test.go=3": true, // If -vmodule sets V to 1, V(3) will succeed. + + // Import path prefix matching + "logger/glog=1": false, + "logger/glog=2": true, + "logger/glog=3": true, + + // Import path glob matching + "logger/*=1": false, + "logger/*=2": true, + "logger/*=3": true, + + // These all use 2 and check the patterns. + "*=2": true, } // Test that vmodule globbing works as advertised. |