Согласно документации по testing.T, методы FailNow, Fatal, Fatalf, SkipNow, Skip и Skipf должны вызываться из той же горутины, которая запускает тест. Это требование нарушается различными тестами в стандартной библиотеке.
Ниже приведен список всех горутин, созданных в тестах, вызывающих T.FailNow. Список был сгенерирован из ревизии 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
@dominikh ты использовал инструмент, чтобы найти это?
@cespare Вывод из незавершенной проверки staticcheck (https://github.com/dominikh/go-staticcheck/commit/7f04f979d02ed28ee02203a81c34595b84f249bc)
CL https://golang.org/cl/33243 упоминает эту проблему.
Самый полезный комментарий
@cespare Вывод из незавершенной проверки staticcheck (https://github.com/dominikh/go-staticcheck/commit/7f04f979d02ed28ee02203a81c34595b84f249bc)