⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.91
Server IP:
217.21.90.168
Server:
Linux in-mum-web840.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64
Server Software:
LiteSpeed
PHP Version:
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
opt
/
golang
/
1.17.2
/
test
/
fixedbugs
/
View File Name :
issue30116.go
// run // Copyright 2019 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. // This test makes sure the text output for bounds check failures is as expected. package main import ( "fmt" "os" "runtime" "text/tabwriter" ) // Testing with length 3 slices, arrays, and strings. // Large (>1<<32) values are included to test 32-bit platforms. var indexes = []int64{-9876543210, -1, 0, 2, 3, 9876543210} var slices = []int64{-9876543210, -1, 0, 3, 4, 9876543210} var w *tabwriter.Writer func main() { w = tabwriter.NewWriter(os.Stdout, 0, 0, 1, ' ', tabwriter.AlignRight) defer w.Flush() doIndex() doSlice() doSlice3() } func doIndex() { a := []int{1, 2, 3} for _, i := range indexes { printPanic(fmt.Sprintf("slice[%d]", i), func() { _ = a[i] }) } b := [3]int{1, 2, 3} for _, i := range indexes { printPanic(fmt.Sprintf("array[%d]", i), func() { _ = b[i] }) } c := "123" for _, i := range indexes { printPanic(fmt.Sprintf("string[%d]", i), func() { _ = c[i] }) } } func doSlice() { a := []int{1, 2, 3} for _, i := range slices { for _, j := range slices { printPanic(fmt.Sprintf("slice[%d:%d]", i, j), func() { _ = a[i:j] }) } } b := [3]int{1, 2, 3} for _, i := range slices { for _, j := range slices { printPanic(fmt.Sprintf("array[%d:%d]", i, j), func() { _ = b[i:j] }) } } c := "123" for _, i := range slices { for _, j := range slices { printPanic(fmt.Sprintf("string[%d:%d]", i, j), func() { _ = c[i:j] }) } } } func doSlice3() { a := []int{1, 2, 3} for _, i := range slices { for _, j := range slices { for _, k := range slices { printPanic(fmt.Sprintf("slice[%d:%d:%d]", i, j, k), func() { _ = a[i:j:k] }) } } } b := [3]int{1, 2, 3} for _, i := range slices { for _, j := range slices { for _, k := range slices { printPanic(fmt.Sprintf("array[%d:%d:%d]", i, j, k), func() { _ = b[i:j:k] }) } } } } func printPanic(msg string, f func()) { defer func() { res := "no panic" if e := recover(); e != nil { res = e.(runtime.Error).Error() } fmt.Fprintf(w, "%s\t %s\n", msg, res) }() f() }