testing.T.Fail
1.20.1時の実装
code: testing.go
func (c *common) Fail() {
if c.parent != nil {
c.parent.Fail()
}
c.mu.Lock()
defer c.mu.Unlock()
// c.done needs to be locked to synchronize checks to c.done in parent tests.
if c.done {
panic("Fail in goroutine after " + c.name + " has completed")
}
c.failed = true
}
親もFailにするのが特徴っぽい。すでに終了しているとパニック。common.failedにtrueが入るのも特徴。
(common.failed = falseにしてもエラーになるのでその理由を確認したかった)