Linux vmi284606.contaboserver.net 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
Apache/2.4.57 (Ubuntu)
: 167.86.127.34 | : 216.73.217.1
Cant Read [ /etc/named.conf ]
7.2.24-0ubuntu0.18.04.17
root
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
local /
go /
src /
testing /
[ HOME SHELL ]
Name
Size
Permission
Action
internal
[ DIR ]
drwxr-xr-x
iotest
[ DIR ]
drwxr-xr-x
quick
[ DIR ]
drwxr-xr-x
allocs.go
1.36
KB
-rw-r--r--
allocs_test.go
825
B
-rw-r--r--
benchmark.go
22.34
KB
-rw-r--r--
benchmark_test.go
3.94
KB
-rw-r--r--
cover.go
3.26
KB
-rw-r--r--
example.go
2.5
KB
-rw-r--r--
export_test.go
207
B
-rw-r--r--
helper_test.go
1.63
KB
-rw-r--r--
helperfuncs_test.go
1.34
KB
-rw-r--r--
match.go
3.51
KB
-rw-r--r--
match_test.go
5.11
KB
-rw-r--r--
panic_test.go
6.04
KB
-rw-r--r--
run_example.go
1.21
KB
-rw-r--r--
run_example_js.go
1.68
KB
-rw-r--r--
sub_test.go
21.82
KB
-rw-r--r--
testing.go
47.33
KB
-rw-r--r--
testing_test.go
448
B
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : panic_test.go
// 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. package testing_test import ( "flag" "fmt" "internal/testenv" "os" "os/exec" "regexp" "strings" "testing" ) var testPanicTest = flag.String("test_panic_test", "", "TestPanic: indicates which test should panic") var testPanicParallel = flag.Bool("test_panic_parallel", false, "TestPanic: run subtests in parallel") var testPanicCleanup = flag.Bool("test_panic_cleanup", false, "TestPanic: indicates whether test should call Cleanup") var testPanicCleanupPanic = flag.String("test_panic_cleanup_panic", "", "TestPanic: indicate whether test should call Cleanup function that panics") func TestPanic(t *testing.T) { testenv.MustHaveExec(t) testCases := []struct { desc string flags []string want string }{{ desc: "root test panics", flags: []string{"-test_panic_test=TestPanicHelper"}, want: ` --- FAIL: TestPanicHelper (N.NNs) panic_test.go:NNN: TestPanicHelper `, }, { desc: "subtest panics", flags: []string{"-test_panic_test=TestPanicHelper/1"}, want: ` --- FAIL: TestPanicHelper (N.NNs) panic_test.go:NNN: TestPanicHelper --- FAIL: TestPanicHelper/1 (N.NNs) panic_test.go:NNN: TestPanicHelper/1 `, }, { desc: "subtest panics with cleanup", flags: []string{"-test_panic_test=TestPanicHelper/1", "-test_panic_cleanup"}, want: ` ran inner cleanup 1 ran middle cleanup 1 ran outer cleanup --- FAIL: TestPanicHelper (N.NNs) panic_test.go:NNN: TestPanicHelper --- FAIL: TestPanicHelper/1 (N.NNs) panic_test.go:NNN: TestPanicHelper/1 `, }, { desc: "subtest panics with outer cleanup panic", flags: []string{"-test_panic_test=TestPanicHelper/1", "-test_panic_cleanup", "-test_panic_cleanup_panic=outer"}, want: ` ran inner cleanup 1 ran middle cleanup 1 ran outer cleanup --- FAIL: TestPanicHelper (N.NNs) panic_test.go:NNN: TestPanicHelper `, }, { desc: "subtest panics with middle cleanup panic", flags: []string{"-test_panic_test=TestPanicHelper/1", "-test_panic_cleanup", "-test_panic_cleanup_panic=middle"}, want: ` ran inner cleanup 1 ran middle cleanup 1 ran outer cleanup --- FAIL: TestPanicHelper (N.NNs) panic_test.go:NNN: TestPanicHelper --- FAIL: TestPanicHelper/1 (N.NNs) panic_test.go:NNN: TestPanicHelper/1 `, }, { desc: "subtest panics with inner cleanup panic", flags: []string{"-test_panic_test=TestPanicHelper/1", "-test_panic_cleanup", "-test_panic_cleanup_panic=inner"}, want: ` ran inner cleanup 1 ran middle cleanup 1 ran outer cleanup --- FAIL: TestPanicHelper (N.NNs) panic_test.go:NNN: TestPanicHelper --- FAIL: TestPanicHelper/1 (N.NNs) panic_test.go:NNN: TestPanicHelper/1 `, }, { desc: "parallel subtest panics with cleanup", flags: []string{"-test_panic_test=TestPanicHelper/1", "-test_panic_cleanup", "-test_panic_parallel"}, want: ` ran inner cleanup 1 ran middle cleanup 1 ran outer cleanup --- FAIL: TestPanicHelper (N.NNs) panic_test.go:NNN: TestPanicHelper --- FAIL: TestPanicHelper/1 (N.NNs) panic_test.go:NNN: TestPanicHelper/1 `, }, { desc: "parallel subtest panics with outer cleanup panic", flags: []string{"-test_panic_test=TestPanicHelper/1", "-test_panic_cleanup", "-test_panic_cleanup_panic=outer", "-test_panic_parallel"}, want: ` ran inner cleanup 1 ran middle cleanup 1 ran outer cleanup --- FAIL: TestPanicHelper (N.NNs) panic_test.go:NNN: TestPanicHelper `, }, { desc: "parallel subtest panics with middle cleanup panic", flags: []string{"-test_panic_test=TestPanicHelper/1", "-test_panic_cleanup", "-test_panic_cleanup_panic=middle", "-test_panic_parallel"}, want: ` ran inner cleanup 1 ran middle cleanup 1 ran outer cleanup --- FAIL: TestPanicHelper (N.NNs) panic_test.go:NNN: TestPanicHelper --- FAIL: TestPanicHelper/1 (N.NNs) panic_test.go:NNN: TestPanicHelper/1 `, }, { desc: "parallel subtest panics with inner cleanup panic", flags: []string{"-test_panic_test=TestPanicHelper/1", "-test_panic_cleanup", "-test_panic_cleanup_panic=inner", "-test_panic_parallel"}, want: ` ran inner cleanup 1 ran middle cleanup 1 ran outer cleanup --- FAIL: TestPanicHelper (N.NNs) panic_test.go:NNN: TestPanicHelper --- FAIL: TestPanicHelper/1 (N.NNs) panic_test.go:NNN: TestPanicHelper/1 `, }} for _, tc := range testCases { t.Run(tc.desc, func(t *testing.T) { cmd := exec.Command(os.Args[0], "-test.run=TestPanicHelper") cmd.Args = append(cmd.Args, tc.flags...) cmd.Env = append(os.Environ(), "GO_WANT_HELPER_PROCESS=1") b, _ := cmd.CombinedOutput() got := string(b) want := strings.TrimSpace(tc.want) re := makeRegexp(want) if ok, err := regexp.MatchString(re, got); !ok || err != nil { t.Errorf("output:\ngot:\n%s\nwant:\n%s", got, want) } }) } } func makeRegexp(s string) string { s = regexp.QuoteMeta(s) s = strings.ReplaceAll(s, ":NNN:", `:\d+:`) s = strings.ReplaceAll(s, "N\\.NNs", `\d*\.\d*s`) return s } func TestPanicHelper(t *testing.T) { if os.Getenv("GO_WANT_HELPER_PROCESS") != "1" { return } t.Log(t.Name()) if t.Name() == *testPanicTest { panic("panic") } switch *testPanicCleanupPanic { case "", "outer", "middle", "inner": default: t.Fatalf("bad -test_panic_cleanup_panic: %s", *testPanicCleanupPanic) } t.Cleanup(func() { fmt.Println("ran outer cleanup") if *testPanicCleanupPanic == "outer" { panic("outer cleanup") } }) for i := 0; i < 3; i++ { i := i t.Run(fmt.Sprintf("%v", i), func(t *testing.T) { chosen := t.Name() == *testPanicTest if chosen && *testPanicCleanup { t.Cleanup(func() { fmt.Printf("ran middle cleanup %d\n", i) if *testPanicCleanupPanic == "middle" { panic("middle cleanup") } }) } if chosen && *testPanicParallel { t.Parallel() } t.Log(t.Name()) if chosen { if *testPanicCleanup { t.Cleanup(func() { fmt.Printf("ran inner cleanup %d\n", i) if *testPanicCleanupPanic == "inner" { panic("inner cleanup") } }) } panic("panic") } }) } }
Close