go/test
Dan Scales 8e6dfe1b31 [dev.typeparams] cmd/compile: export/import of recursive generic types.
Deal with export/import of recursive generic types. This includes
typeparams which have bounds that reference the typeparam.

There are three main changes:

  - Change export/import of typeparams to have an implicit "declaration"
    (doDecl). We need to do a declaration of typeparams (via the
    typeparam's package and unique name), because it may be referenced
    within its bound during its own definition.

  - We delay most of the processing of the Instantiate call until we
    finish the creation of the top-most type (similar to the way we
    delay CheckSize). This is because we can't do the full instantiation
    properly until the base type is fully defined (with methods). The
    functions delayDoInst() and resumeDoInst() delay and resume the
    processing of the instantiations.

  - To do the full needed type substitutions for type instantiations
    during import, I had to separate out the type subster in stencil.go
    and move it to subr.go in the typecheck package. The subster in
    stencil.go now does node substitution and makes use of the type
    subster to do type substitutions.

Notable other changes:
 - In types/builtins.go, put the newly defined typeparam for a union type
   (related to use of real/imag, etc.) in the current package, rather
   than the builtin package, so exports/imports work properly.

 - In types2, allowed NewTypeParam() to be called with a nil bound, and
   allow setting the bound later. (Needed to import a typeparam whose
   bound refers to the typeparam itself.)

 - During import of typeparams in types2 (importer/import.go), we need
   to keep an index of the typeparams by their package and unique name
   (with id). Use a new map typParamIndex[] for that. Again, this is
   needed to deal with typeparams whose bounds refer to the typeparam
   itself.

 - Added several new tests absdiffimp.go and orderedmapsimp.go. Some of
   the orderemapsimp tests are commented out for now, because there are
   some issues with closures inside instantiations (relating to unexported
   names of closure structs).

 - Renamed some typeparams in test value.go to make them all T (to make
   typeparam uniqueness is working fine).

Change-Id: Ib47ed9471c19ee8e9fbb34e8506907dad3021e5a
Reviewed-on: https://go-review.googlesource.com/c/go/+/323029
Trust: Dan Scales <danscales@google.com>
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
2021-06-04 16:43:27 +00:00
..
abi cmd/compile: set unsayable "names" for regabi testing triggers 2021-05-06 11:58:39 +00:00
alias3.dir [dev.typealias] cmd/compile: export/import test cases for type aliases 2017-01-20 05:55:53 +00:00
bench all: update references to symbols moved from io/ioutil to io 2021-04-05 17:51:15 +00:00
chan [dev.typeparams] merge: merge branch 'dev.regabi' into 'dev.typeparams' 2020-12-14 12:13:36 -08:00
closure3.dir cmd/compile: don't emit inltree for closure within body of inlined func 2021-05-18 20:04:57 +00:00
closure5.dir [dev.regabi] cmd/compile: exporting, importing, and inlining functions with OCLOSURE 2021-01-20 22:53:32 +00:00
codegen [dev.typeparams] cmd/compile: implement clobberdead mode on ARM64 2021-06-03 20:00:30 +00:00
ddd2.dir all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
dwarf test: make rundir match compiledir/errorcheckdir. 2013-01-11 22:00:48 +01:00
fixedbugs [dev.typeparams] cmd/compile: allow nil Syms in Sym.Less 2021-06-03 20:52:22 +00:00
import2.dir all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
import4.dir test: adjust gccgo expected import errors 2015-10-07 14:37:44 +00:00
interface [dev.typeparams] merge: merge branch 'dev.regabi' into 'dev.typeparams' 2020-12-14 12:13:36 -08:00
intrinsic.dir cmd/compile: intrinsics for math/bits.TrailingZerosX 2017-03-16 02:44:16 +00:00
ken all: fix typos 2019-09-08 17:28:20 +00:00
linkname.dir cmd/compile: trim function name prefix from escape diagnostics 2019-09-16 15:30:51 +00:00
method4.dir cmd/gc: do not omit wrapper for expression (interface{...}).F 2014-01-07 13:26:48 +01:00
oldescape_linkname.dir cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
retjmp.dir cmd/asm: fix assembling return jump 2018-03-01 21:11:16 +00:00
runtime test: remove -newescape from regress tests 2019-08-28 19:27:20 +00:00
stress all: update references to symbols moved from io/ioutil to io 2021-04-05 17:51:15 +00:00
syntax test/syntax: remove interface.go 2021-04-06 18:55:39 +00:00
typeparam [dev.typeparams] cmd/compile: export/import of recursive generic types. 2021-06-04 16:43:27 +00:00
uintptrescapes.dir cmd/compile, syscall: add //go:uintptrescapes comment, and use it 2016-07-06 20:48:41 +00:00
64bit.go cmd/gc: Error out on division by constant zero. 2013-01-30 20:21:08 +01:00
235.go
alg.go test: add test that required algs get generated 2016-04-24 21:36:52 +00:00
alias1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
alias2.go [dev.typeparams] test: add scaffolding to run.go to check compiler with -G flag 2020-12-01 21:49:31 +00:00
alias3.go [dev.typealias] cmd/compile: export/import test cases for type aliases 2017-01-20 05:55:53 +00:00
alias.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
align.go test: check that unaligned load-add opcodes work. 2018-04-09 18:57:37 +00:00
append1.go [dev.typeparams] test: add scaffolding to run.go to check compiler with -G flag 2020-12-01 21:49:31 +00:00
append.go cmd/compile: optimize append(x, make([]T, y)...) slice extension 2018-05-06 04:28:23 +00:00
args.go test: run some more tests by default 2012-11-08 09:04:27 -08:00
armimm.go cmd/internal/obj: continue to optimize ARM's constant pool 2017-05-11 13:53:54 +00:00
assign1.go
assign.go [dev.typeparams] merge: merge branch 'dev.regabi' into 'dev.typeparams' 2020-12-14 12:13:36 -08:00
atomicload.go cmd/compile: keep value use counts in SSA 2016-03-17 04:20:02 +00:00
bigalg.go test: ensure all failing tests exit nonzero. 2013-02-12 13:17:49 -05:00
bigmap.go
blank1.go [dev.typeparams] merge: merge branch 'dev.regabi' into 'dev.typeparams' 2020-12-14 12:13:36 -08:00
blank.go test: revert changes made for Go SSA interpreter test. 2013-10-08 14:36:20 -04:00
bom.go gc: initial BOM is legal. 2012-09-10 13:03:07 -07:00
bombad.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
bounds.go cmd/compile: defer lowering OANDNOT until SSA 2020-10-27 03:11:45 +00:00
cannotassign.go [dev.typeparams] test: add scaffolding to run.go to check compiler with -G flag 2020-12-01 21:49:31 +00:00
chancap.go [dev.regabi] cmd/compile: remove toolstash scaffolding 2021-01-05 21:44:30 +00:00
chanlinear.go test, test/fixedbugs, crypto/x509, go/internal/gccgoimporter: fix typos 2020-03-29 17:12:56 +00:00
char_lit1.go cmd/compile: do not report error for invalid constant 2021-03-05 18:46:43 +00:00
char_lit.go
checkbce.go cmd/compile: fix ordering for short-circuiting ops 2019-03-06 20:04:07 +00:00
clearfat.go [dev.power64] 9g: fix under-zeroing in clearfat 2014-10-31 11:08:27 -04:00
closedchan.go
closure1.go cmd/gc: capture variables by value 2015-01-29 13:07:30 +00:00
closure2.go [dev.regabi] test: add another closure test case 2021-01-01 13:44:37 +00:00
closure3.go cmd/compile: disable inlining functions with closures for now 2021-02-24 21:34:21 +00:00
closure4.go cmd/compile/internal/gc: add nil check for closure call on wasm 2018-08-14 09:19:38 +00:00
closure5.go [dev.regabi] cmd/compile: exporting, importing, and inlining functions with OCLOSURE 2021-01-20 22:53:32 +00:00
closure6.go [dev.regabi] cmd/compile: fix escape analysis problem with closures 2021-01-23 02:15:24 +00:00
closure7.go [dev.regabi] test: add a test for inlining closures 2021-02-01 18:28:05 +00:00
closure.go
cmp6.go [dev.typeparams] test: add scaffolding to run.go to check compiler with -G flag 2020-12-01 21:49:31 +00:00
cmp.go Fix several out of date references to 4g/5g/6g/8g/9g. 2015-06-26 03:38:21 +00:00
cmplx.go cmd/compile: rewrite f(g()) for multi-value g() during typecheck 2019-03-14 21:00:20 +00:00
cmplxdivide1.go runtime: make complex division c99 compatible 2017-03-15 22:45:17 +00:00
cmplxdivide.c runtime: make complex division c99 compatible 2017-03-15 22:45:17 +00:00
cmplxdivide.go runtime: make complex division c99 compatible 2017-03-15 22:45:17 +00:00
complit1.go test: fix error check messages for 2 types2 tests 2021-06-02 05:14:45 +00:00
complit.go
compos.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
const1.go [dev.typeparams] test: add scaffolding to run.go to check compiler with -G flag 2020-12-01 21:49:31 +00:00
const2.go [dev.typeparams] test: add scaffolding to run.go to check compiler with -G flag 2020-12-01 21:49:31 +00:00
const3.go
const4.go all: link to https instead of http 2015-07-11 14:36:33 +00:00
const5.go all: link to https instead of http 2015-07-11 14:36:33 +00:00
const6.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
const7.go [dev.typeparams] cmd/compile: refuse excessively long constants 2021-02-03 20:22:34 +00:00
const.go cmd/compile: apply constant folding to ORUNESTR 2019-09-26 23:54:29 +00:00
convert1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
convert2.go cmd/compile: allow conversion from slice to array ptr 2021-04-21 00:53:48 +00:00
convert3.go
convert4.go cmd/compile: allow conversion from slice to array ptr 2021-04-21 00:53:48 +00:00
convert.go
convlit1.go
convlit.go cmd/compile/internal/types2: refactor untyped conversions 2021-03-23 05:11:09 +00:00
convT2X.go
copy1.go [dev.typeparams] test: enable some more errorcheck tests 2020-12-04 21:22:23 +00:00
copy.go test: ensure all failing tests exit nonzero. 2013-02-12 13:17:49 -05:00
crlf.go
ddd1.go test: fix error check messages for 2 types2 tests 2021-06-02 05:14:45 +00:00
ddd2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
ddd.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
decl.go test: ensure all failing tests exit nonzero. 2013-02-12 13:17:49 -05:00
declbad.go test: correct type in declbad.go 2012-10-07 21:52:57 +02:00
defer.go test: ensure all failing tests exit nonzero. 2013-02-12 13:17:49 -05:00
defererrcheck.go test: re-enable open-coded defer test on riscv64 2020-02-26 16:54:17 +00:00
deferfin.go [dev.regabi] test: enable finalizer tests on !amd64 2021-01-05 21:11:31 +00:00
defernil.go cmd/compile: on Wasm and AIX, let deferred nil function panic at invocation 2019-10-16 00:05:37 +00:00
deferprint.go test: remove rundircmpout and cmpout actions 2018-05-31 17:36:45 +00:00
deferprint.out
devirt.go cmd/compile: debug rewrite 2020-04-13 21:56:15 +00:00
directive.go cmd/compile: reject misplaced go:build comments 2020-10-13 01:16:45 +00:00
divide.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
divmod.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
embedfunc.go cmd/compile: require 'go 1.16' go.mod line for //go:embed 2021-01-19 20:07:52 +00:00
embedvers.go cmd/compile: require 'go 1.16' go.mod line for //go:embed 2021-01-19 20:07:52 +00:00
empty.go
env.go
eof1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
eof.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape2.go [dev.typeparams] cmd/compile: simplify ~r/~b naming 2021-05-26 23:50:32 +00:00
escape2n.go [dev.typeparams] cmd/compile: simplify ~r/~b naming 2021-05-26 23:50:32 +00:00
escape3.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
escape4.go [dev.regabi] cmd/compile: convert OPANIC argument to interface{} during typecheck 2021-01-18 05:55:08 +00:00
escape5.go [dev.typeparams] cmd/compile: simplify ~r/~b naming 2021-05-26 23:50:32 +00:00
escape_array.go [dev.typeparams] cmd/compile: simplify ~r/~b naming 2021-05-26 23:50:32 +00:00
escape_calls.go [dev.typeparams] cmd/compile: simplify ~r/~b naming 2021-05-26 23:50:32 +00:00
escape_closure.go [dev.typeparams] cmd/compile: simplify ~r/~b naming 2021-05-26 23:50:32 +00:00
escape_field.go cmd/compile: use clearer error message for stuct literal 2020-09-12 08:31:49 +00:00
escape_goto.go cmd/compile: preserve loop depth when evaluating block 2019-09-06 01:35:46 +00:00
escape_hash_maphash.go hash/maphash: mark call into runtime hash function as not escaping 2019-11-16 20:31:45 +00:00
escape_iface.go cmd/compile: fix devirtualization of promoted interface methods 2020-10-30 00:47:37 +00:00
escape_indir.go cmd/compile: use clearer error message for stuct literal 2020-09-12 08:31:49 +00:00
escape_level.go cmd/compile: silence esc diagnostics about directiface OCONVIFACEs 2019-09-03 17:52:06 +00:00
escape_map.go cmd/compile: use clearer error message for stuct literal 2020-09-12 08:31:49 +00:00
escape_param.go [dev.typeparams] cmd/compile: simplify ~r/~b naming 2021-05-26 23:50:32 +00:00
escape_runtime_atomic.go [dev.typeparams] cmd/compile: simplify ~r/~b naming 2021-05-26 23:50:32 +00:00
escape_selfassign.go test: add regress test cases for self-assignment 2019-04-17 16:36:56 +00:00
escape_slice.go [dev.typeparams] cmd/compile: simplify ~r/~b naming 2021-05-26 23:50:32 +00:00
escape_struct_param1.go cmd/compile: use clearer error message for stuct literal 2020-09-12 08:31:49 +00:00
escape_struct_param2.go cmd/compile: use clearer error message for stuct literal 2020-09-12 08:31:49 +00:00
escape_struct_return.go [dev.typeparams] cmd/compile: simplify ~r/~b naming 2021-05-26 23:50:32 +00:00
escape_sync_atomic.go runtime/internal/atomic: remove bad go:noescape annotations on Loadp 2019-04-17 19:09:15 +00:00
escape_unsafe.go [dev.typeparams] cmd/compile: simplify ~r/~b naming 2021-05-26 23:50:32 +00:00
escape.go test: ensure all failing tests exit nonzero. 2013-02-12 13:17:49 -05:00
fibo.go Fix whitespace (use blanks consistently). 2014-12-08 22:22:58 +00:00
finprofiled.go all: fix typos 2019-09-08 17:28:20 +00:00
float_lit2.go test/float_lit2: fix expressions in comment 2016-09-14 16:39:47 +00:00
float_lit3.go [dev.regabi] cmd/compile: enable rational constant arithmetic 2021-01-25 18:53:24 +00:00
float_lit.go test: ensure all failing tests exit nonzero. 2013-02-12 13:17:49 -05:00
floatcmp.go test: ensure all failing tests exit nonzero. 2013-02-12 13:17:49 -05:00
for.go
func1.go [dev.typeparams] test: enable some more errorcheck tests 2020-12-04 21:22:23 +00:00
func2.go
func3.go
func4.go
func5.go
func6.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
func7.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
func8.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
func.go
funcdup2.go [dev.typeparams] test: enable some more errorcheck tests 2020-12-04 21:22:23 +00:00
funcdup.go [dev.typeparams] test: enable some more errorcheck tests 2020-12-04 21:22:23 +00:00
fuse.go test: do not run fuse test in noopt mode 2021-04-28 15:55:10 +00:00
gc1.go
gc2.go all: skip unsupported tests for js/wasm 2018-04-30 19:39:18 +00:00
gc.go
gcgort.go test: fast GC+concurrency+types verification 2018-05-08 21:15:48 +00:00
gcstring.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
goprint.go test: adjust a test to work with js/wasm's background goroutine 2019-10-10 19:38:06 +00:00
goprint.out
goto.go cmd/compile: report block start for gotos jumping into blocks 2017-04-19 02:27:58 +00:00
heapsampling.go test: improve test coverage for heap sampling 2019-03-07 21:05:15 +00:00
helloworld.go test: remove rundircmpout and cmpout actions 2018-05-31 17:36:45 +00:00
helloworld.out
if.go
import1.go test: match gccgo import error messages 2013-12-12 19:02:11 -08:00
import2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
import4.go test: convert more tests to rundir/compiledir conventions 2012-10-07 23:22:01 +02:00
import5.go cmd/compile: be slightly more tolerant in case of certain syntax errors 2017-03-24 20:07:15 +00:00
import6.go cmd/compile/internal/syntax: removed gcCompat code needed to pass orig. tests 2017-02-10 01:22:30 +00:00
import.go
index0.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
index1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
index2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
index.go all: fix typos 2019-09-08 17:28:20 +00:00
indirect1.go
indirect.go
init1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
init.go [dev.typeparams] merge: merge branch 'dev.regabi' into 'dev.typeparams' 2020-12-14 12:13:36 -08:00
initcomma.go
initempty.go cmd/compile: add test for skipping empty init functions 2019-11-04 20:19:15 +00:00
initexp.go cmd/compile: fix exponential-time init-cycle reporting 2021-01-08 17:14:20 +00:00
initialize.go
initializerr.go test: match gofrontend error messages 2020-11-28 02:31:54 +00:00
initloop.go [dev.typeparams] cmd/compile/internal/types2: adjusted qualified identifier error message for compiler 2020-12-09 23:56:19 +00:00
inline_big.go [dev.typeparams] cmd/compile/internal/inline: refactor mkinlcall 2021-05-27 23:40:56 +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 cmd/compile: copy literals when inlining 2017-03-03 21:29:32 +00:00
inline_math_bits_rotate.go cmd/compile: make math/bits.RotateLeft* an intrinsic on amd64 2018-08-30 22:48:28 +00:00
inline_sync.go test: re-enable atomic intrinsic related tests on riscv64 2020-03-25 01:11:15 +00:00
inline_variadic.go [dev.typeparams] cmd/compile: simplify inlining variadic calls 2021-05-26 23:50:45 +00:00
inline.go cmd/compile: don't emit inltree for closure within body of inlined func 2021-05-18 20:04:57 +00:00
int_lit.go
intcvt.go
intrinsic_atomic.go test: re-enable atomic intrinsic related tests on riscv64 2020-03-25 01:11:15 +00:00
intrinsic.go cmd/compile: intrinsify Ctz{32,64} and Bswap{32,64} on s390x 2016-09-19 19:03:01 +00:00
iota.go
label1.go test: match gofrontend error messages 2020-11-28 02:31:54 +00:00
label.go test: match gofrontend error messages 2020-11-28 02:31:54 +00:00
linkmain_run.go test: avoid writing temporary files to GOROOT 2019-11-18 14:40:07 +00:00
linkmain.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
linkname2.go [dev.regabi] cmd/compile: comment out //go:linkname warning 2020-12-02 06:49:37 +00:00
linkname.go test: remove -newescape from regress tests 2019-08-28 19:27:20 +00:00
linkobj.go test: recognize and use gc build tag 2020-12-18 00:10:44 +00:00
linkx_run.go test: recognize and use gc build tag 2020-12-18 00:10:44 +00:00
linkx.go [dev.link] all: clean up some TODOs 2019-11-01 20:13:05 +00:00
literal2.go cmd/compile: accept 'i' suffix orthogonally on all numbers 2019-02-19 22:45:09 +00:00
literal.go test: ensure all failing tests exit nonzero. 2013-02-12 13:17:49 -05:00
live1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
live2.go cmd/compile: extend ssa.go to handle 1-element array and 1-field struct 2019-09-03 19:33:04 +00:00
live_regabi.go cmd/compile: reenable name preservation on copies in expand_calls 2021-04-21 14:16:01 +00:00
live_syscall.go cmd/compile: trim function name prefix from escape diagnostics 2019-09-16 15:30:51 +00:00
live.go test: add liveness test for regabi 2021-04-19 14:42:58 +00:00
locklinear.go test: skip locklinear's lockmany test for now 2018-04-05 10:53:40 +00:00
loopbce.go cmd/compile: detect indvars that are bound by other indvars 2019-09-26 18:47:12 +00:00
mainsig.go [dev.regabi] cmd/compile: cleanup for concrete types - noder 2020-12-17 04:43:46 +00:00
makechan.go cmd/compile/internal/types2: add unsafe.Add and unsafe.Slice 2021-04-23 00:41:01 +00:00
makemap.go cmd/compile/internal/types2: add unsafe.Add and unsafe.Slice 2021-04-23 00:41:01 +00:00
makenew.go [dev.typeparams] test: enable some more errorcheck tests 2020-12-04 21:22:23 +00:00
makeslice.go cmd/compile: optimize make+copy pattern to avoid memclr 2020-05-07 17:50:24 +00:00
mallocfin.go
map1.go [dev.typeparams] merge: merge branch 'dev.regabi' into 'dev.typeparams' 2020-12-14 12:13:36 -08:00
map.go test/mapnan.go: add regression test for non-empty interfaces. 2014-08-06 17:02:55 -04:00
mapclear.go cmd/compile: optimize map-clearing range idiom 2018-05-08 21:15:16 +00:00
maplinear.go test: make maplinear more robust 2014-10-27 18:59:02 -04:00
mergemul.go cmd/compile: combine x*n - y*n into (x-y)*n 2017-09-03 14:29:38 +00:00
method1.go cmd/compile: ignore receiver parameters in Eqtype 2016-03-17 00:38:15 +00:00
method2.go [dev.typeparams] merge: merge branch 'dev.regabi' into 'dev.typeparams' 2020-12-14 12:13:36 -08:00
method3.go
method4.go test: convert more tests to rundir/compiledir conventions 2012-10-07 23:22:01 +02:00
method5.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
method6.go [dev.typeparams] test: enable some more errorcheck tests 2020-12-04 21:22:23 +00:00
method7.go [dev.typeparams] cmd/compile: fix MethodExpr handling with embedded fields 2021-01-26 17:05:06 +00:00
method.go test: a number of fixes. 2013-02-11 18:20:52 -05:00
named1.go [dev.typeparams] test: enable some more errorcheck tests 2020-12-04 21:22:23 +00:00
named.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
nil.go test: ensure all failing tests exit nonzero. 2013-02-12 13:17:49 -05:00
nilcheck.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
nilptr2.go test: use a real use function in nilptr2.go 2019-05-11 03:02:33 +00:00
nilptr3.go [dev.regabi] cmd/compile: deref PAUTOHEAPs during SSA construction 2021-01-10 08:01:49 +00:00
nilptr4.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +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
nilptr5.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
nilptr.go test: disable nilptr on windows/arm64 2021-02-19 00:40:22 +00:00
nosplit.go test: make nosplit test invariant to ABI wrappers 2021-03-18 16:51:25 +00:00
notinheap2.go cmd/compile: propagate go:notinheap implicitly 2020-09-17 19:35:53 +00:00
notinheap3.go cmd/compile: omit write barriers for slice clears of go:notinheap pointers 2018-12-05 21:54:54 +00:00
notinheap.go cmd/compile: propagate go:notinheap implicitly 2020-09-17 19:35:53 +00:00
nowritebarrier.go cmd/compile: allow mid-stack inlining when there is a cycle of recursion 2020-04-03 21:43:52 +00:00
nul1.go cmd/compile/internal/gc: enable new parser by default 2016-10-25 22:28:40 +00:00
opt_branchlikely.go all: fix typos 2019-09-08 17:28:20 +00:00
parentype.go
peano.go all: skip unsupported tests for js/wasm 2018-04-30 19:39:18 +00:00
phiopt.go cmd/compile/internal/ssa: strengthen phiopt pass 2021-03-29 05:50:11 +00:00
print.go test: remove rundircmpout and cmpout actions 2018-05-31 17:36:45 +00:00
print.out cmd/compile: fix print/println when input is uint 2017-09-26 04:08:38 +00:00
printbig.go test: remove rundircmpout and cmpout actions 2018-05-31 17:36:45 +00:00
printbig.out
prove.go docs: fix spelling 2021-02-24 04:11:43 +00:00
range.go cmd/compile: improve single blank variable handling in walkrange 2017-09-12 05:50:54 +00:00
README.md test: document specifying individual test files as operands 2020-08-28 21:23:32 +00:00
recover1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
recover2.go cmd/compile,runtime: generate hash functions only for types which are map keys 2019-09-03 20:41:29 +00:00
recover3.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
recover4.go all: use Fatalf instead of Fatal if format is given 2018-01-10 01:35:45 +00:00
recover5.go cmd/compile: more error position tests for the typechecker 2017-04-24 12:37:49 +00:00
recover.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
reflectmethod1.go cmd/compile: track reflect.Type.Method in deadcode 2016-03-11 21:19:20 +00:00
reflectmethod2.go cmd/compile: track reflect.Type.Method in deadcode 2016-03-11 21:19:20 +00:00
reflectmethod3.go cmd/compile: track reflect.Type.Method in deadcode 2016-03-11 21:19:20 +00:00
reflectmethod4.go cmd/link: treat reflect.Value.Method like Call 2016-03-11 22:07:02 +00:00
reflectmethod5.go cmd/compile: when marking REFLECTMETHOD, check for reflect package itself 2020-04-19 03:12:32 +00:00
reflectmethod6.go cmd/compile: when marking REFLECTMETHOD, check for reflect package itself 2020-04-19 03:12:32 +00:00
reflectmethod7.go cmd/compile: mark concrete call of reflect.(*rtype).Method as REFLECTMETHOD 2021-02-10 22:44:54 +00:00
rename1.go [dev.typeparams] test: enable some more errorcheck tests 2020-12-04 21:22:23 +00:00
rename.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
reorder2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
reorder.go [dev.regabi] cmd/compile: cleanup OAS2FUNC ordering 2021-01-16 23:19:26 +00:00
retjmp.go cmd/asm: fix assembling return jump 2018-03-01 21:11:16 +00:00
return.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
rotate0.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
rotate1.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
rotate2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
rotate3.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
rotate.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
run.go test: fix error check messages for 2 types2 tests 2021-06-02 05:14:45 +00:00
rune.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
runtime.go [dev.typeparams] cmd/compile/internal/types2: adjusted qualified identifier error message for compiler 2020-12-09 23:56:19 +00:00
shift1.go test: recognize gofrontend error messages 2020-11-30 20:08:34 +00:00
shift2.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
sieve.go
sigchld.go test: remove rundircmpout and cmpout actions 2018-05-31 17:36:45 +00:00
sigchld.out
simassign.go
sinit_run.go test: recognize and use gc build tag 2020-12-18 00:10:44 +00:00
sinit.go cmd/compile: fix static initializer 2018-12-03 16:48:21 +00:00
sizeof.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
slice3.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
slice3err.go [dev.typeparams] test: finish triaging all outstanding failing tests 2020-12-14 21:28:48 +00:00
slicecap.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
sliceopt.go cmd/compile: make prove pass use unsatisfiability 2018-03-08 22:25:25 +00:00
solitaire.go
stack.go
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
stackobj.go cmd/compile,runtime: remove ambiguously live logic 2018-10-03 19:54:16 +00:00
strcopy.go test: add test to verify that string copies don't get optimized away 2018-06-12 19:10:34 +00:00
strength.go all: fix typos 2019-09-08 17:28:20 +00:00
string_lit.go test: add []rune case to string_lit.go 2013-12-12 17:17:02 -08:00
stringrange.go all: make Unicode surrogate halves illegal as UTF-8 2012-08-08 14:01:23 -07:00
struct0.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
switch2.go cmd/compile/internal/syntax: match old parser errors and line numbers 2016-08-19 01:10:21 +00:00
switch3.go [dev.typeparams] cmd/compile/internal/types2: report error for invalid (but empty) expr switch 2020-12-15 19:43:32 +00:00
switch4.go cmd/gc: disallow fallthrough in final case of switch 2013-03-15 00:35:09 -04:00
switch5.go [dev.typeparams] test: finish triaging all outstanding failing tests 2020-12-14 21:28:48 +00:00
switch6.go [dev.typeparams] test: finish triaging all outstanding failing tests 2020-12-14 21:28:48 +00:00
switch7.go [dev.typeparams] test: finish triaging all outstanding failing tests 2020-12-14 21:28:48 +00:00
switch.go cmd/gc: disallow fallthrough in final case of switch 2013-03-15 00:35:09 -04:00
tinyfin.go runtime: fix finalization and profiling of tiny allocations 2015-11-03 18:57:18 +00:00
torture.go cmd/8g: don't allocate a register early for cap(CHAN). 2014-07-01 09:20:51 +02:00
turing.go
typecheck.go test: add copyright notice to typecheck.go 2020-04-17 13:30:49 +00:00
typecheckloop.go [dev.typeparams] cmd/compile/internal/types2: adjust init cycle error message for compiler 2020-12-09 23:55:41 +00:00
typeswitch1.go
typeswitch2.go cmd/compile: move duplicate type-case checking into typecheck 2019-09-11 23:33:11 +00:00
typeswitch2b.go cmd/compile/internal/gc: reword "declared and not used" error message 2019-10-28 23:34:13 +00:00
typeswitch3.go [dev.typeparams] test: enable some more errorcheck tests 2020-12-04 21:22:23 +00:00
typeswitch.go
uintptrescapes2.go cmd/compile: fix //go:uintptrescapes for basic method calls 2019-11-05 00:26:30 +00:00
uintptrescapes3.go cmd/compile: fix //go:uintptrescapes for basic method calls 2019-11-05 00:26:30 +00:00
uintptrescapes.go cmd/compile, syscall: add //go:uintptrescapes comment, and use it 2016-07-06 20:48:41 +00:00
undef.go all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
unsafebuiltins.go cmd/compile: implement unsafe.Add and unsafe.Slice 2021-05-02 20:38:13 +00:00
used.go [dev.typeparams] all: merge dev.regabi (07569da) into dev.typeparams 2020-12-28 00:39:17 -08:00
utf.go
varerr.go [dev.typeparams] test: enable some more errorcheck tests 2020-12-04 21:22:23 +00:00
varinit.go
winbatch.go all: update to use filepath.WalkDir instead of filepath.Walk 2020-12-02 16:33:57 +00:00
writebarrier.go cmd/compile: improve generated code for concrete cases in type switches 2020-04-14 17:34:31 +00:00
zerodivide.go test: lock in test for _ assignment evaluation/zerodivide panic 2016-12-23 17:35:24 +00:00

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

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

../bin/go run run.go -- 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.