Initial commit: Go 1.23 release state
This commit is contained in:
45
test/fixedbugs/issue33724.go
Normal file
45
test/fixedbugs/issue33724.go
Normal file
@@ -0,0 +1,45 @@
|
||||
// run
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"runtime/debug"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type Inner struct {
|
||||
Err int
|
||||
}
|
||||
|
||||
func (i *Inner) NotExpectedInStackTrace() int {
|
||||
if i == nil {
|
||||
return 86
|
||||
}
|
||||
return 17 + i.Err
|
||||
}
|
||||
|
||||
type Outer struct {
|
||||
Inner
|
||||
}
|
||||
|
||||
func ExpectedInStackTrace() {
|
||||
var o *Outer
|
||||
println(o.NotExpectedInStackTrace())
|
||||
}
|
||||
|
||||
func main() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
stacktrace := string(debug.Stack())
|
||||
if strings.Contains(stacktrace, "NotExpectedInStackTrace") {
|
||||
fmt.Println("FAIL, stacktrace contains NotExpectedInStackTrace")
|
||||
}
|
||||
if !strings.Contains(stacktrace, "ExpectedInStackTrace") {
|
||||
fmt.Println("FAIL, stacktrace does not contain ExpectedInStackTrace")
|
||||
}
|
||||
} else {
|
||||
fmt.Println("FAIL, should have panicked but did not")
|
||||
}
|
||||
}()
|
||||
ExpectedInStackTrace()
|
||||
}
|
||||
Reference in New Issue
Block a user