diff options
Diffstat (limited to 'testdata')
-rw-r--r-- | testdata/testing.go | 54 | ||||
-rw-r--r-- | testdata/testing.txt | 5 |
2 files changed, 51 insertions, 8 deletions
diff --git a/testdata/testing.go b/testdata/testing.go index 9e0a018d1..4a1f67c49 100644 --- a/testdata/testing.go +++ b/testdata/testing.go @@ -4,6 +4,7 @@ package main import ( "errors" + "flag" "io" "testing" ) @@ -26,15 +27,60 @@ func TestBar(t *testing.T) { t.Log("log Bar end") } +func TestAllLowercase(t *testing.T) { + names := []string { + "alpha", + "BETA", + "gamma", + "DELTA", + } + + for _, name := range names { + t.Run(name, func(t *testing.T) { + if 'a' <= name[0] && name[0] <= 'a' { + t.Logf("expected lowercase name, and got one, so I'm happy") + } else { + t.Errorf("expected lowercase name, got %s", name) + } + }) + } +} + var tests = []testing.InternalTest{ {"TestFoo", TestFoo}, {"TestBar", TestBar}, + {"TestAllLowercase", TestAllLowercase}, } var benchmarks = []testing.InternalBenchmark{} var examples = []testing.InternalExample{} +// A fake regexp matcher that can only handle two patterns. +// Inflexible, but saves 50KB of flash and 50KB of RAM per -size full, +// and lets tests pass on cortex-m3. +func fakeMatchString(pat, str string) (bool, error) { + if pat == ".*" { + return true, nil + } + if pat == "[BD]" { + return (str[0] == 'B' || str[0] == 'D'), nil + } + println("BUG: fakeMatchString does not grok", pat) + return false, nil +} + +func main() { + testing.Init() + flag.Set("test.run", ".*/[BD]") + m := testing.MainStart(matchStringOnly(fakeMatchString /*regexp.MatchString*/), tests, benchmarks, examples) + + exitcode := m.Run() + if exitcode != 0 { + println("exitcode:", exitcode) + } +} + var errMain = errors.New("testing: unexpected use of func Main") // matchStringOnly is part of upstream, and is used below to provide a dummy deps to pass to MainStart @@ -50,11 +96,3 @@ func (f matchStringOnly) ImportPath() string { return " func (f matchStringOnly) StartTestLog(io.Writer) {} func (f matchStringOnly) StopTestLog() error { return errMain } func (f matchStringOnly) SetPanicOnExit0(bool) {} - -func main() { - m := testing.MainStart(matchStringOnly(nil), tests, benchmarks, examples) - exitcode := m.Run() - if exitcode != 0 { - println("exitcode:", exitcode) - } -} diff --git a/testdata/testing.txt b/testdata/testing.txt index 814ddff3b..ff124de14 100644 --- a/testdata/testing.txt +++ b/testdata/testing.txt @@ -12,5 +12,10 @@ failed after failed log Bar end +--- FAIL: TestAllLowercase (0.00s) + --- FAIL: TestAllLowercase/BETA (0.00s) + expected lowercase name, got BETA + --- FAIL: TestAllLowercase/DELTA (0.00s) + expected lowercase name, got DELTA FAIL exitcode: 1 |