Source file
test/fixedbugs/issue29190.go
1
2
3
4
5
6
7 package main
8
9 import (
10 "strings"
11 )
12
13 type T struct{}
14
15 const maxInt = int(^uint(0) >> 1)
16
17 func main() {
18 s := make([]T, maxInt)
19 shouldPanic("len out of range", func() { s = append(s, T{}) })
20 var oneElem = make([]T, 1)
21 shouldPanic("len out of range", func() { s = append(s, oneElem...) })
22 }
23
24 func shouldPanic(str string, f func()) {
25 defer func() {
26 err := recover()
27 if err == nil {
28 panic("did not panic")
29 }
30 s := err.(error).Error()
31 if !strings.Contains(s, str) {
32 panic("got panic " + s + ", want " + str)
33 }
34 }()
35
36 f()
37 }
38
View as plain text