X7ROOT File Manager
Current Path:
/opt/golang/1.19.4/src/cmd/compile/internal/test/testdata
opt
/
golang
/
1.19.4
/
src
/
cmd
/
compile
/
internal
/
test
/
testdata
/
📁
..
📄
addressed_test.go
(4.42 KB)
📄
append_test.go
(1.16 KB)
📄
arithBoundary_test.go
(31.31 KB)
📄
arithConst_test.go
(633.8 KB)
📄
arith_test.go
(41.51 KB)
📄
array_test.go
(3.09 KB)
📄
assert_test.go
(2.54 KB)
📄
break_test.go
(3.67 KB)
📄
chan_test.go
(1.14 KB)
📄
closure_test.go
(572 B)
📄
cmpConst_test.go
(103.06 KB)
📄
cmp_test.go
(903 B)
📄
compound_test.go
(2.7 KB)
📄
copy_test.go
(150.18 KB)
📄
ctl_test.go
(2.33 KB)
📄
deferNoReturn_test.go
(481 B)
📄
divbyzero_test.go
(1.01 KB)
📄
dupLoad_test.go
(1.51 KB)
📄
flowgraph_generator1.go
(6.72 KB)
📄
fp_test.go
(34.99 KB)
📁
gen
📄
loadstore_test.go
(4.79 KB)
📄
map_test.go
(721 B)
📁
mysort
📄
namedReturn_test.go
(1.63 KB)
📄
phi_test.go
(2.21 KB)
📄
ptrsort.go
(633 B)
📄
ptrsort.out
(77 B)
📄
regalloc_test.go
(1.2 KB)
📁
reproducible
📄
short_test.go
(1.48 KB)
📄
slice_test.go
(850 B)
📄
sqrtConst_test.go
(1.26 KB)
📄
string_test.go
(4.46 KB)
📄
unsafe_test.go
(2.96 KB)
📄
zero_test.go
(49.6 KB)
Editing: assert_test.go
// Copyright 2015 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. // Tests type assertion expressions and statements package main import ( "runtime" "testing" ) type ( S struct{} U struct{} I interface { F() } ) var ( s *S u *U ) func (s *S) F() {} func (u *U) F() {} func e2t_ssa(e interface{}) *U { return e.(*U) } func i2t_ssa(i I) *U { return i.(*U) } func testAssertE2TOk(t *testing.T) { if got := e2t_ssa(u); got != u { t.Errorf("e2t_ssa(u)=%v want %v", got, u) } } func testAssertE2TPanic(t *testing.T) { var got *U defer func() { if got != nil { t.Errorf("e2t_ssa(s)=%v want nil", got) } e := recover() err, ok := e.(*runtime.TypeAssertionError) if !ok { t.Errorf("e2t_ssa(s) panic type %T", e) } want := "interface conversion: interface {} is *main.S, not *main.U" if err.Error() != want { t.Errorf("e2t_ssa(s) wrong error, want '%s', got '%s'", want, err.Error()) } }() got = e2t_ssa(s) t.Errorf("e2t_ssa(s) should panic") } func testAssertI2TOk(t *testing.T) { if got := i2t_ssa(u); got != u { t.Errorf("i2t_ssa(u)=%v want %v", got, u) } } func testAssertI2TPanic(t *testing.T) { var got *U defer func() { if got != nil { t.Errorf("i2t_ssa(s)=%v want nil", got) } e := recover() err, ok := e.(*runtime.TypeAssertionError) if !ok { t.Errorf("i2t_ssa(s) panic type %T", e) } want := "interface conversion: main.I is *main.S, not *main.U" if err.Error() != want { t.Errorf("i2t_ssa(s) wrong error, want '%s', got '%s'", want, err.Error()) } }() got = i2t_ssa(s) t.Errorf("i2t_ssa(s) should panic") } func e2t2_ssa(e interface{}) (*U, bool) { u, ok := e.(*U) return u, ok } func i2t2_ssa(i I) (*U, bool) { u, ok := i.(*U) return u, ok } func testAssertE2T2(t *testing.T) { if got, ok := e2t2_ssa(u); !ok || got != u { t.Errorf("e2t2_ssa(u)=(%v, %v) want (%v, %v)", got, ok, u, true) } if got, ok := e2t2_ssa(s); ok || got != nil { t.Errorf("e2t2_ssa(s)=(%v, %v) want (%v, %v)", got, ok, nil, false) } } func testAssertI2T2(t *testing.T) { if got, ok := i2t2_ssa(u); !ok || got != u { t.Errorf("i2t2_ssa(u)=(%v, %v) want (%v, %v)", got, ok, u, true) } if got, ok := i2t2_ssa(s); ok || got != nil { t.Errorf("i2t2_ssa(s)=(%v, %v) want (%v, %v)", got, ok, nil, false) } } // TestTypeAssertion tests type assertions. func TestTypeAssertion(t *testing.T) { testAssertE2TOk(t) testAssertE2TPanic(t) testAssertI2TOk(t) testAssertI2TPanic(t) testAssertE2T2(t) testAssertI2T2(t) }
Upload File
Create Folder