go/test
David Chase 06fd2f115b [release-branch.go1.24] cmd/compile: remove no-longer-necessary recursive inlining checks
this does result in a little bit more inlining,
cmd/compile text is 0.5% larger,
bent-benchmark text geomeans grow by only 0.02%.
some of our tests make assumptions about inlining.

Fixes: #73440.

Change-Id: I999d1798aca5dc64a1928bd434258a61e702951a
Reviewed-on: https://go-review.googlesource.com/c/go/+/655157
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-on: https://go-review.googlesource.com/c/go/+/666555
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
2025-04-29 10:12:17 -07:00
..
abi test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
alias3.dir
arenas reflect: fix ArenaNew to match documentation 2023-06-16 17:08:43 +00:00
asmhdr.dir
chan
closure3.dir cmd/compile: use very high budget for once-called closures 2024-11-22 02:04:41 +00:00
closure5.dir
codegen runtime: rename mapiterinit and mapiternext 2025-01-28 10:54:43 -08:00
ddd2.dir
dwarf
fixedbugs [release-branch.go1.24] cmd/compile: remove no-longer-necessary recursive inlining checks 2025-04-29 10:12:17 -07:00
import2.dir
import4.dir
interface go/types, types2: more systematic use of Checker.use und useLHS 2023-03-28 14:28:33 +00:00
internal/runtime/sys runtime: move getcallersp to internal/runtime/sys 2024-09-17 17:01:20 +00:00
intrinsic.dir runtime,internal: move runtime/internal/sys to internal/runtime/sys 2024-07-23 19:05:35 +00:00
ken
linkname.dir
linknameasm.dir cmd/compile: generate args_stackmap for ABI0 assembly func regardless of linkname 2024-06-07 15:22:22 +00:00
method4.dir
retjmp.dir
stress test/stress: fix typo in comment 2024-03-25 19:21:35 +00:00
syntax cmd/compile: better error message when offending/missing token is a keyword 2024-11-14 02:14:13 +00:00
typeparam cmd/compile: export/import materialized aliases 2024-04-05 16:29:58 +00:00
uintptrescapes.dir
wasmmemsize.dir test: add a test for wasm memory usage 2024-10-28 13:27:58 +00:00
64bit.go
235.go
README.md internal/testdir: move to cmd/internal/testdir 2023-05-12 17:18:08 +00:00
alg.go
alias.go
alias1.go
alias2.go go/types, types2: qualify named types in error messages with type kind 2024-10-23 04:43:01 +00:00
alias3.go
align.go
append.go
append1.go
args.go
armimm.go
asmhdr.go
assign.go sync: add explicit noCopy fields to Map, Mutex, and Once 2024-11-18 18:52:54 +00:00
assign1.go
atomicload.go
bigalg.go
bigmap.go
blank.go
blank1.go
bom.go
bombad.go
bounds.go
cannotassign.go
chancap.go
chanlinear.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
char_lit.go
char_lit1.go
checkbce.go cmd/compile: rewrite the constant parts of the prove pass 2024-08-07 16:07:33 +00:00
clear.go cmd/compile: add clear(x) builtin 2023-01-31 19:43:07 +00:00
clearfat.go
closedchan.go
closure.go
closure1.go
closure2.go cmd/compile: experimental loop iterator capture semantics change 2023-03-06 18:34:24 +00:00
closure3.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
closure4.go
closure5.go
closure6.go
closure7.go
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
const7.go all: add wasip1 support 2023-04-11 20:56:32 +00:00
const8.go
convT2X.go
convert.go
convert1.go
convert2.go
convert3.go
convert4.go
convinline.go
convlit.go
convlit1.go
copy.go
copy1.go
crlf.go
ddd.go
ddd1.go
ddd2.go
decl.go
declbad.go
defer.go
defererrcheck.go test: add open-coded defer tests for too many exits path 2024-07-29 14:30:07 +00:00
deferfin.go
defernil.go
deferprint.go
deferprint.out
devirt.go
directive.go
directive2.go
divide.go
divmod.go
embedfunc.go
embedvers.go
empty.go
env.go test,internal/testdir: don't set GOOS/GOARCH 2023-05-12 12:34:59 +00:00
eof.go
eof1.go
escape.go cmd/compile: experimental loop iterator capture semantics change 2023-03-06 18:34:24 +00:00
escape2.go all: remove newline characters after return statements 2023-12-14 17:22:18 +00:00
escape2n.go all: remove newline characters after return statements 2023-12-14 17:22:18 +00:00
escape3.go
escape4.go cmd/compile: retire "IsHiddenClosure" and "IsDeadcodeClosure" 2024-07-22 21:27:37 +00:00
escape5.go cmd/compile/internal/noder: stop preserving original const strings 2023-09-08 18:50:24 +00:00
escape_array.go
escape_calls.go cmd/compile: fix escape analysis of string min/max 2023-12-05 22:06:07 +00:00
escape_closure.go cmd/compile: retire "IsHiddenClosure" and "IsDeadcodeClosure" 2024-07-22 21:27:37 +00:00
escape_field.go
escape_goto.go
escape_hash_maphash.go
escape_iface.go test: remove *_unified.go variants 2023-05-23 17:16:35 +00:00
escape_indir.go
escape_level.go
escape_map.go
escape_mutations.go cmd/compile: restore zero-copy string->[]byte optimization 2023-08-18 11:58:37 +00:00
escape_param.go
escape_reflect.go reflect: remove calling mapiterkey, mapiterelem 2024-09-18 20:57:20 +00:00
escape_runtime_atomic.go runtime: migrate internal/atomic to internal/runtime 2024-03-25 19:53:03 +00:00
escape_selfassign.go
escape_slice.go cmd/compile/internal/noder: stop preserving original const strings 2023-09-08 18:50:24 +00:00
escape_struct_param1.go
escape_struct_param2.go
escape_struct_return.go
escape_sync_atomic.go
escape_unsafe.go
fibo.go
finprofiled.go test: ignore MemProfileRecords with no live objects in finprofiled.go 2023-11-16 05:48:00 +00:00
float_lit.go
float_lit2.go
float_lit3.go
floatcmp.go
for.go test: add test cases for index value with range array clear 2023-07-10 16:36:41 +00:00
func.go
func1.go
func2.go
func3.go go/parser, syntax: better error message for parameter missing type 2024-09-30 22:04:40 +00:00
func4.go
func5.go
func6.go
func7.go
func8.go
funcdup.go
funcdup2.go
fuse.go cmd/compile: handle boolean and pointer relations 2024-08-07 16:07:55 +00:00
gc.go
gc1.go
gc2.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
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
initexp.go
initialize.go
initializerr.go
initloop.go go/types: improve recursive type error message 2024-10-22 22:20:29 +00:00
inline.go [release-branch.go1.24] cmd/compile: remove no-longer-necessary recursive inlining checks 2025-04-29 10:12:17 -07:00
inline_big.go cmd/compile: restore zero-copy string->[]byte optimization 2023-08-18 11:58:37 +00:00
inline_caller.go
inline_callers.go
inline_endian.go
inline_literal.go
inline_math_bits_rotate.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
inline_sync.go sync: use atomic.Uint32 in Once 2023-10-06 21:01:50 +00:00
inline_testingbloop.go [release-branch.go1.24] testing: detect a stopped timer in B.Loop 2025-03-26 09:44:03 -07:00
inline_variadic.go
int_lit.go
intcvt.go
intrinsic.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
intrinsic_atomic.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
iota.go
label.go
label1.go
linkmain.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
linkmain_run.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
linkname.go
linkname3.go cmd/compile: disallow linkname referring to instantiations 2024-05-15 19:27:25 +00:00
linknameasm.go cmd/compile: generate args_stackmap for ABI0 assembly func regardless of linkname 2024-06-07 15:22:22 +00:00
linkobj.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
linkx.go
linkx_run.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
literal.go
literal2.go
live.go runtime: rename mapiterinit and mapiternext 2025-01-28 10:54:43 -08:00
live1.go
live2.go cmd/compile,internal/runtime/maps: add extendible hashing 2024-10-21 14:16:20 +00:00
live_regabi.go runtime: rename mapiterinit and mapiternext 2025-01-28 10:54:43 -08:00
live_uintptrkeepalive.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
loopbce.go [release-branch.go1.24] cmd/compile: remove no-longer-necessary recursive inlining checks 2025-04-29 10:12:17 -07:00
mainsig.go
makechan.go all: fix some comments 2024-04-04 14:29:45 +00:00
makemap.go
makenew.go
makeslice.go
mallocfin.go
map.go
map1.go
mapclear.go
maplinear.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
maymorestack.go
mergemul.go
method.go
method1.go
method2.go
method3.go
method4.go
method5.go
method6.go
method7.go
named.go
named1.go
newinline.go [release-branch.go1.24] cmd/compile: remove no-longer-necessary recursive inlining checks 2025-04-29 10:12:17 -07:00
nil.go
nilcheck.go
nilptr.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
nilptr2.go
nilptr3.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
nilptr4.go
nilptr5.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
nilptr5_aix.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
nilptr5_wasm.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
nilptr_aix.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
noinit.go cmd/compile: reenable inline static init 2023-04-14 17:57:36 +00:00
nosplit.go cmd/internal/objabi, internal/runtime: increase nosplit limit on OpenBSD 2024-12-06 00:35:41 +00:00
nowritebarrier.go cmd/compile: redo IsRuntimePkg/IsReflectPkg predicate 2023-08-22 19:18:21 +00:00
nul1.go
opt_branchlikely.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
parentype.go
peano.go
phiopt.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
print.go
print.out
printbig.go
printbig.out
prove.go cmd/compile: teach prove about min/max phi operations 2024-10-29 16:46:48 +00:00
prove_constant_folding.go cmd/compile: rewrite the constant parts of the prove pass 2024-08-07 16:07:33 +00:00
prove_invert_loop_with_unused_iterators.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
range.go
range2.go all: rename GOEXPERIMENT=range to rangefunc 2023-11-08 15:32:14 +00:00
range3.go cmd/compile: fix typecheck range over rune literal 2023-12-01 17:20:08 +00:00
range4.go cmd/compile: handle defined iter func type correctly 2024-01-08 16:00:53 +00:00
rangegen.go test: skip rangegen.go on 32-bit platforms 2023-12-18 23:35:19 +00:00
recover.go
recover1.go
recover2.go
recover3.go
recover4.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
recover5.go
reflectmethod1.go
reflectmethod2.go
reflectmethod3.go
reflectmethod4.go
reflectmethod5.go
reflectmethod6.go
reflectmethod7.go
reflectmethod8.go
rename.go
rename1.go cmd/compile/internal/types2: only mark variables as used if they are 2023-04-19 14:07:00 +00:00
reorder.go
reorder2.go
retjmp.go
return.go
rotate.go
rotate0.go
rotate1.go
rotate2.go
rotate3.go
rune.go
runtime.go
shift1.go
shift2.go
shift3.go
sieve.go
sigchld.go test: migrate remaining files to go:build syntax 2023-10-19 23:33:25 +00:00
sigchld.out
simassign.go
sizeof.go
slice3.go
slice3err.go
slicecap.go
sliceopt.go
solitaire.go
stack.go
stackobj.go
stackobj2.go
stackobj3.go
strcopy.go
strength.go
string_lit.go
stringrange.go
struct0.go
switch.go
switch2.go cmd/compile: better error message when offending/missing token is a keyword 2024-11-14 02:14:13 +00:00
switch3.go
switch4.go
switch5.go
switch6.go
switch7.go
tailcall.go cmd/compile: emit tail call wrappers when possible 2024-09-09 20:20:10 +00:00
tighten.go cmd/compile: enhance tighten pass for memory values 2023-05-16 01:01:38 +00:00
tinyfin.go
torture.go
turing.go
typecheck.go
typecheckloop.go
typeswitch.go
typeswitch1.go
typeswitch2.go
typeswitch2b.go
typeswitch3.go
uintptrescapes.go
uintptrescapes2.go
uintptrescapes3.go
uintptrkeepalive.go
undef.go
unsafe_slice_data.go
unsafe_string.go
unsafe_string_data.go
unsafebuiltins.go
used.go
utf.go
varerr.go
varinit.go
wasmexport.go cmd/compile: add basic wasmexport support 2024-08-09 20:07:54 +00:00
wasmexport2.go cmd/compile: allow more types for wasmimport/wasmexport parameters and results 2024-11-11 17:11:50 +00:00
wasmmemsize.go test: add a test for wasm memory usage 2024-10-28 13:27:58 +00:00
weak.go [release-branch.go1.24] weak: prevent unsafe conversions using weak pointers 2025-02-06 13:53:01 -08:00
winbatch.go
writebarrier.go
zerodivide.go
zerosize.go cmd/link: put zero-sized data symbols at same address as runtime.zerobase 2023-04-28 18:35:43 +00:00

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 test cmd/internal/testdir

To run just tests from specified files in this directory, execute:

../bin/go test cmd/internal/testdir -run='Test/(file1.go|file2.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.