go/test
Keith Randall 8f854244ad cmd/compile: fix crash when memmove argument is not the right type
Make sure the argument to memmove is of pointer type before we try to
get the element type.

This has been noticed for code that uses unsafe+linkname so it can
call runtime.memmove. Probably not the best thing to allow, but the
code is out there and we'd rather not break it unnecessarily.

Fixes #30061

Change-Id: I334a8453f2e293959fd742044c43fbe93f0b3d31
Reviewed-on: https://go-review.googlesource.com/c/160826
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-02-01 23:43:09 +00:00
..
alias3.dir
bench test/bench/garbage: update Benchmarks Game URL to new page 2018-09-24 17:11:42 +00:00
chan
closure3.dir cmd/compile: encourage inlining of functions with single-call bodies 2018-11-08 17:29:23 +00:00
codegen cmd/compile: pad zero-sized stack variables 2018-12-22 01:16:00 +00:00
ddd2.dir
dwarf
fixedbugs cmd/compile: fix crash when memmove argument is not the right type 2019-02-01 23:43:09 +00:00
import2.dir
import4.dir
interface
intrinsic.dir
ken
linkname.dir
method4.dir
retjmp.dir
stress
syntax
uintptrescapes.dir
64bit.go
235.go
README.md
alg.go
alias.go
alias1.go
alias2.go
alias3.go
align.go
append.go
append1.go
args.go
armimm.go
assign.go
assign1.go
atomicload.go
bigalg.go
bigmap.go
blank.go
blank1.go
bom.go
bombad.go
bounds.go
chancap.go runtime: handle 64bits addresses for AIX 2018-11-26 14:06:28 +00:00
chanlinear.go
char_lit.go
char_lit1.go
checkbce.go test: restore binary.BigEndian use in checkbce 2018-09-24 21:20:51 +00:00
clearfat.go
closedchan.go
closure.go
closure1.go
closure2.go
closure3.go all: fix a bunch of misspellings 2018-10-06 15:40:03 +00:00
closure4.go cmd/compile/internal/gc: add nil check for closure call on wasm 2018-08-14 09:19:38 +00:00
cmp.go
cmp6.go
cmplx.go
cmplxdivide.c
cmplxdivide.go
cmplxdivide1.go
complit.go
complit1.go
compos.go
const.go
const1.go
const2.go
const3.go
const4.go
const5.go
const6.go
convT2X.go
convert.go
convert1.go
convert2.go
convert3.go
convlit.go
convlit1.go
copy.go
copy1.go
crlf.go
ddd.go
ddd1.go
ddd2.go
decl.go
declbad.go
defer.go
deferfin.go
deferprint.go
deferprint.out
devirt.go
divide.go
divmod.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
empty.go
env.go
eof.go
eof1.go
escape.go
escape2.go cmd/compile/internal/gc: unify self-assignment checks in esc.go 2018-09-20 09:46:11 +00:00
escape2n.go cmd/compile/internal/gc: unify self-assignment checks in esc.go 2018-09-20 09:46:11 +00:00
escape3.go
escape4.go
escape5.go cmd/compile: fix unnamed parameter handling in escape analysis 2018-12-04 23:01:00 +00:00
escape_array.go
escape_because.go test: remove go:noinline from escape_because.go 2018-09-05 10:45:58 +00:00
escape_calls.go
escape_closure.go
escape_field.go
escape_iface.go
escape_indir.go
escape_level.go
escape_map.go
escape_param.go cmd/compile/internal/gc: fix mayAffectMemory in esc.go 2018-09-05 14:16:25 +00:00
escape_slice.go
escape_struct_param1.go
escape_struct_param2.go
escape_struct_return.go
fibo.go
finprofiled.go
float_lit.go
float_lit2.go
float_lit3.go
floatcmp.go
for.go
func.go
func1.go
func2.go
func3.go
func4.go
func5.go
func6.go
func7.go
func8.go
funcdup.go
funcdup2.go
gc.go
gc1.go
gc2.go
gcgort.go
gcstring.go
goprint.go
goprint.out
goto.go
heapsampling.go
helloworld.go
helloworld.out
if.go
import.go
import1.go
import2.go
import4.go
import5.go
import6.go
index.go
index0.go
index1.go
index2.go
indirect.go
indirect1.go
init.go
init1.go
initcomma.go
initialize.go
initializerr.go
initloop.go
inline.go cmd/compile: encourage inlining of functions with single-call bodies 2018-11-08 17:29:23 +00:00
inline_big.go cmd/compile: set stricter inlining threshold in large functions 2018-07-24 16:11:08 +00:00
inline_caller.go runtime: make FuncForPC return the innermost inlined frame 2019-01-08 21:54:04 +00:00
inline_callers.go runtime: make FuncForPC return the innermost inlined frame 2019-01-08 21:54:04 +00:00
inline_literal.go
inline_math_bits_rotate.go cmd/compile: make math/bits.RotateLeft* an intrinsic on amd64 2018-08-30 22:48:28 +00:00
inline_variadic.go
int_lit.go
intcvt.go
intrinsic.go
intrinsic_atomic.go
iota.go
label.go
label1.go
linkmain.go
linkmain_run.go
linkname.go
linkobj.go
linkx.go
linkx_run.go
literal.go
live.go cmd/compile: provide types for all order-allocated temporaries 2018-10-15 16:07:52 +00:00
live1.go
live2.go cmd/compile,runtime: remove ambiguously live logic 2018-10-03 19:54:16 +00:00
live_syscall.go cmd/compile: encourage inlining of functions with single-call bodies 2018-11-08 17:29:23 +00:00
locklinear.go
loopbce.go cmd/compile: check for negative upper bound to IsSliceInBounds 2018-12-07 23:04:58 +00:00
makechan.go
makemap.go
makenew.go
mallocfin.go
map.go
map1.go
mapclear.go
maplinear.go
mergemul.go
method.go
method1.go
method2.go
method3.go
method4.go
method5.go
method6.go
method7.go
named.go
named1.go
nil.go
nilcheck.go
nilptr.go cmd/compile: fix nilcheck for AIX 2018-11-26 14:13:53 +00:00
nilptr2.go
nilptr3.go cmd/compile: fix nilcheck for AIX 2018-11-26 14:13:53 +00:00
nilptr4.go
nilptr5.go cmd/compile: fix nilcheck for AIX 2018-11-26 14:13:53 +00:00
nilptr5_aix.go test: fix nilptr5 for AIX 2018-11-27 15:36:08 +00:00
nilptr5_wasm.go cmd/compile: fix nilcheck for AIX 2018-11-26 14:13:53 +00:00
nilptr_aix.go cmd/compile: fix nilcheck for AIX 2018-11-26 14:13:53 +00:00
nosplit.go all: skip unsupported tests on AIX 2018-11-02 16:12:08 +00:00
notinheap.go cmd/compile: disallow converting string to notinheap slice 2018-11-02 19:53:59 +00:00
notinheap2.go
notinheap3.go cmd/compile: omit write barriers for slice clears of go:notinheap pointers 2018-12-05 21:54:54 +00:00
nowritebarrier.go
nul1.go
opt_branchlikely.go
parentype.go
peano.go
phiopt.go
print.go
print.out
printbig.go
printbig.out
prove.go cmd/compile: fix deriving from x+d >= w on overflow in prove pass 2019-01-02 19:28:06 +00:00
range.go
recover.go
recover1.go
recover2.go
recover3.go
recover4.go
recover5.go
reflectmethod1.go
reflectmethod2.go
reflectmethod3.go
reflectmethod4.go
rename.go
rename1.go
reorder.go
reorder2.go
retjmp.go
return.go
rotate.go
rotate0.go
rotate1.go
rotate2.go
rotate3.go
run.go cmd/compile: use innermost line number for -S 2018-12-11 20:24:45 +00:00
rune.go
runtime.go
shift1.go
shift2.go
sieve.go
sigchld.go
sigchld.out
simassign.go
sinit.go cmd/compile: fix static initializer 2018-12-03 16:48:21 +00:00
sinit_run.go
sizeof.go
slice3.go
slice3err.go
slicecap.go
sliceopt.go
solitaire.go
stack.go
stackobj.go cmd/compile,runtime: remove ambiguously live logic 2018-10-03 19:54:16 +00:00
stackobj2.go test: stress test for stack objects 2018-10-03 19:54:29 +00:00
stackobj3.go cmd/compile,runtime: remove ambiguously live logic 2018-10-03 19:54:16 +00:00
strcopy.go
strength.go
string_lit.go
stringrange.go
struct0.go
switch.go
switch2.go
switch3.go
switch4.go
switch5.go Revert "fmt: fix incorrect format of whole-number floats when using %#v" 2018-10-16 21:54:35 +00:00
switch6.go
switch7.go
tinyfin.go
torture.go
turing.go
typecheck.go
typecheckloop.go
typeswitch.go
typeswitch1.go
typeswitch2.go test: fix spelling of `caught be the compiler` to `caught by the compiler` 2018-10-04 00:49:49 +00:00
typeswitch3.go test: fix spelling of `caught be the compiler` to `caught by the compiler` 2018-10-04 00:49:49 +00:00
uintptrescapes.go
uintptrescapes2.go cmd/compile: reuse temporaries in order pass 2018-10-14 05:21:00 +00:00
undef.go
utf.go
varerr.go
varinit.go
writebarrier.go cmd/compile: eliminate write barriers when writing non-heap ptrs 2018-11-29 22:23:02 +00:00
zerodivide.go

README.md

The test directory contains tests of the Go tool chain and runtime. It includes black box tests, regression tests, and error output tests. They are run as part of all.bash.

To run just these tests, execute:

../bin/go run run.go

Standard library tests should be written as regular Go tests in the appropriate package.

The tool chain and runtime also have regular Go tests in their packages. The main reasons to add a new test to this directory are:

  • it is most naturally expressed using the test runner; or
  • it is also applicable to gccgo and other Go tool chains.