@@ -213,15 +213,22 @@ func TestLoggerAlwaysFatals(t *testing.T) {
213213 // Users can disable writing out fatal-level logs, but calls to logger.Fatal()
214214 // should still terminate the process.
215215 withLogger (t , FatalLevel + 1 , nil , func (logger * Logger , logs * observer.ObservedLogs ) {
216- stub := exit .WithStub (func () { logger .Fatal ("" ) })
216+ stub := exit .WithStub (func () { logger .Fatal ("foo " ) })
217217 assert .True (t , stub .Exited , "Expected calls to logger.Fatal to terminate process." )
218+ assert .Equal (t , 38 , stub .Code , "Expected calls to logger.Fatal to terminate process with predictable retcode." )
219+
220+ err := errors .New ("bar" )
221+ stub = exit .WithStub (func () { logger .Fatal ("foo" , Error (err )) })
222+ assert .True (t , stub .Exited , "Expected calls to logger.Fatal to terminate process." )
223+ assert .Equal (t , 129 , stub .Code , "Expected calls to logger.Fatal to terminate process with predictable retcode." )
218224
219225 stub = exit .WithStub (func () {
220226 if ce := logger .Check (FatalLevel , "" ); ce != nil {
221227 ce .Write ()
222228 }
223229 })
224230 assert .True (t , stub .Exited , "Expected calls to logger.Check(FatalLevel, ...) to terminate process." )
231+ assert .Equal (t , 1 , stub .Code , "Expected calls to logger.Check(FatalLevel, ...) to terminate process with predictable retcode." )
225232
226233 assert .Equal (t , 0 , logs .Len (), "Shouldn't write out logs when fatal-level logging is disabled." )
227234 })
0 commit comments