Go: all: T.FailNow 用于标准库测试中的 goroutines

创建于 2016-11-12  ·  3评论  ·  资料来源: golang/go

根据 testing.T 上的文档,FailNow、Fatal、Fatalf、SkipNow、Skip 和 Skipf 方法必须从运行测试的同一个 goroutine 中调用。 标准库中的各种测试都违反了此要求。

以下是在调用 T.FailNow 的测试中生成的所有 goroutine 的列表。 该列表是从修订版 2f49726 生成的。

src/runtime/chan_test.go:209:3
src/runtime/chan_test.go:306:4
src/runtime/chan_test.go:306:4
src/net/http/serve_test.go:2476:2
src/net/http/serve_test.go:2629:2
src/net/http/serve_test.go:2670:2
src/runtime/trace/trace_stack_test.go:85:2
src/runtime/trace/trace_test.go:256:2
src/runtime/trace/trace_test.go:256:2
src/runtime/trace/trace_test.go:256:2
src/database/sql/sql_test.go:2514:2
src/net/rpc/server_test.go:690:3
src/log/syslog/syslog_test.go:368:3
src/crypto/tls/handshake_server_test.go:201:2
src/crypto/tls/tls_test.go:294:2
src/crypto/tls/tls_test.go:294:2
src/sync/cond_test.go:135:2
src/sync/cond_test.go:162:2
src/sync/pool_test.go:121:3
src/net/dnsclient_unix_test.go:667:2
src/net/dnsclient_unix_test.go:667:2
src/net/dnsclient_unix_test.go:667:2
src/net/dnsclient_unix_test.go:667:2
src/sync/atomic/atomic_test.go:1216:3
src/sync/atomic/atomic_test.go:1216:3
src/sync/atomic/atomic_test.go:1259:3
src/sync/atomic/atomic_test.go:1259:3
src/sync/atomic/atomic_test.go:1305:3
src/sync/atomic/atomic_test.go:1353:3
src/os/exec/exec_test.go:431:2
FrozenDueToAge

最有用的评论

@cespare输出来自进行中的静态检查检查(https://github.com/dominikh/go-staticcheck/commit/7f04f979d02ed28ee02203a81c34595b84f249bc)

所有3条评论

@dominikh您是否使用工具找到了这些?

@cespare输出来自进行中的静态检查检查(https://github.com/dominikh/go-staticcheck/commit/7f04f979d02ed28ee02203a81c34595b84f249bc)

CL https://golang.org/cl/33243提到了这个问题。

此页面是否有帮助?
0 / 5 - 0 等级