@@ -34,9 +34,13 @@ var benchmarks = []testing.InternalBenchmark{}
 var examples = []testing.InternalExample{}
 
 func main() {
-	m := testing.MainStart(nil, tests, benchmarks, examples)
+	m := testing.MainStart(testdeps{}, tests, benchmarks, examples)
 	exitcode := m.Run()
 	if exitcode != 0 {
 		println("exitcode:", exitcode)
 	}
 }
+
+type testdeps struct{}
+
+func (testdeps) MatchString(pat, str string) (bool, error) { return true, nil }
package main

// TODO: also test the verbose version.

import (
	"testing"
)

func TestFoo(t *testing.T) {
	t.Log("log Foo.a")
	t.Log("log Foo.b")
}

func TestBar(t *testing.T) {
	t.Log("log Bar")
	t.Log("log g\nh\ni\n")
	t.Run("Bar1", func(t *testing.T) {})
	t.Run("Bar2", func(t *testing.T) {
		t.Log("log Bar2\na\nb\nc")
		t.Error("failed")
		t.Log("after failed")
	})
	t.Run("Bar3", func(t *testing.T) {})
	t.Log("log Bar end")
}

var tests = []testing.InternalTest{
	{"TestFoo", TestFoo},
	{"TestBar", TestBar},
}

var benchmarks = []testing.InternalBenchmark{}

var examples = []testing.InternalExample{}

func main() {
	m := testing.MainStart(nil, tests, benchmarks, examples)
	exitcode := m.Run()
	if exitcode != 0 {
		println("exitcode:", exitcode)
	}
}

That... works, I guess, but could lead to unexpected results.