Is there a way to get "go test" to display the stack trace when the function under test panics?
I've written a function that (for purposes of this demo) panics if passed true: https://go.dev/play/p/lGVenZjDRpD The output on go playground looks like this: === RUN TestMyFunc === RUN TestMyFunc/good === RUN TestMyFunc/panic --- FAIL: TestMyFunc (0.00s) --- PASS: TestMyFunc/good (0.00s) --- FAIL: TestMyFunc/panic (0.00s) panic: assignment to entry in nil map [recovered, repanicked] goroutine 17 [running]: testing.tRunner.func1.2({0x55a800, 0x6cac00}) /usr/local/go-faketime/src/testing/testing.go:1974 +0x232 testing.tRunner.func1() /usr/local/go-faketime/src/testing/testing.go:1977 +0x349 panic({0x55a800?, 0x6cac00?}) /usr/local/go-faketime/src/runtime/panic.go:860 +0x13a play.MyFunc(...) /tmp/sandbox252008880/prog_test.go:14 play.TestMyFunc.func1(0x3e938180e008?) /tmp/sandbox252008880/prog_test.go:33 +0x33 testing.tRunner(0x3e938180e008, 0x3e9381800000) /usr/local/go-faketime/src/testing/testing.go:2036 +0xea created by testing.(*T).Run in goroutine 7 /usr/local/go-faketime/src/testing/testing.go:2101 +0x4c5 Program exited. However when I run this on my personal machine (go1.26.4, Macos 26.5.1) the system goes into an infinite loop until I press CTRL-C. At that point it exits but never shows the stack trace: $ go test -v === RUN TestMyFunc === RUN TestMyFunc/good === RUN TestMyFunc/panic --- FAIL: TestMyFunc (0.00s) --- PASS: TestMyFunc/good (0.00s) --- FAIL: TestMyFunc/panic (0.00s) ^Csignal: interrupt FAIL ptest 4.924s As you can imagine, debugging an unknown panic is difficult without the stack trace indicating the problematic line. Delve has the same behavior. Is there a way to have "go test" display the stack trace like Go playground does? Also... the fact that a panic sends Go testing into an infinite loop sounds like a bug. Is this just my environment, or can others reproduce this? Thanks in advance! Tom -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/CAHVFxgnUHVNU9fRiGdxr2z%3DCWHHzGj4vpQJt_MeLbeMw81WG8Q%40mail.gmail.com.
