]> Cypherpunks repositories - gostls13.git/commitdiff
test: add regression test for issue 43942
authorCuong Manh Le <cuong.manhle.vn@gmail.com>
Sun, 14 Aug 2022 12:08:00 +0000 (19:08 +0700)
committerCuong Manh Le <cuong.manhle.vn@gmail.com>
Tue, 16 Aug 2022 01:54:23 +0000 (01:54 +0000)
CL 356011 fixed this issue too.

Fixes #43942

Change-Id: I35ad397e78eeb80eff3a4217c4d40f15d40bdebb
Reviewed-on: https://go-review.googlesource.com/c/go/+/423814
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

test/fixedbugs/issue43942.go [new file with mode: 0644]

diff --git a/test/fixedbugs/issue43942.go b/test/fixedbugs/issue43942.go
new file mode 100644 (file)
index 0000000..a37d664
--- /dev/null
@@ -0,0 +1,48 @@
+// run
+
+// Copyright 2022 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import "log"
+
+func main() {
+       defer func() {
+               expect(5, recover())
+       }()
+       func() {
+               expect(nil, recover())
+               defer func() {
+                       defer func() {
+                               defer func() {
+                                       defer func() {
+                                               expect(3, recover())
+                                       }()
+                                       defer panic(3)
+                                       panic(2)
+                               }()
+                               defer func() {
+                                       expect(1, recover())
+                               }()
+                               panic(1)
+                       }()
+               }()
+       }()
+       func() {
+               for {
+                       defer func() {
+                               defer panic(5)
+                       }()
+                       break
+               }
+               panic(4)
+       }()
+}
+
+func expect(want, have interface{}) {
+       if want != have {
+               log.Fatalf("want %v, have %v", want, have)
+       }
+}