1
0
mirror of https://github.com/golang/go synced 2024-11-26 10:18:12 -07:00
go/test
fanzha02 822a9f537f cmd/compile: fix the error of absorbing boolean tests into block(FGE, FGT)
The CL 164718 mistyped the comparison flags. The rules for floating
point comparison should be GreaterThanF and GreaterEqualF. Fortunately,
the wrong optimizations were overwritten by other integer rules, so the
issue won't cause failure but just some performance impact.

The fixed CL optimizes the floating point test as follows.

source code: func foo(f float64) bool { return f > 4 || f < -4}
previous version: "FCMPD", "CSET\tGT", "CBZ"
fixed version: "FCMPD", BLE"

Add the test case.

Change-Id: Iea954fdbb8272b2d642dae0f816dc77286e6e1fa
Reviewed-on: https://go-review.googlesource.com/c/go/+/177121
Reviewed-by: Ben Shi <powerman1st@163.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Ben Shi <powerman1st@163.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-05-16 13:46:25 +00:00
..
alias3.dir
bench test/bench/go1: add go.mod file 2019-03-06 18:53:12 +00:00
chan
closure3.dir cmd/compile: skip escape analysis diagnostics for OADDR 2019-04-02 16:34:03 +00:00
codegen cmd/compile: fix the error of absorbing boolean tests into block(FGE, FGT) 2019-05-16 13:46:25 +00:00
ddd2.dir
dwarf
fixedbugs cmd/compile: make sure to initialize static entries of slices 2019-05-14 16:36:38 +00:00
import2.dir
import4.dir
interface
intrinsic.dir
ken
linkname.dir cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
method4.dir
oldescape_linkname.dir cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
retjmp.dir
runtime cmd/compile: shortcut intrinsic inlining AFTER getcallerXX check 2019-04-19 20:18:29 +00:00
stress
syntax
uintptrescapes.dir
64bit.go
235.go
alg.go
alias1.go
alias2.go
alias3.go
alias.go
align.go
append1.go
append.go
args.go
armimm.go
assign1.go
assign.go
atomicload.go
bigalg.go
bigmap.go
blank1.go
blank.go
bom.go
bombad.go
bounds.go
chancap.go
chanlinear.go
char_lit1.go
char_lit.go
checkbce.go cmd/compile: fix ordering for short-circuiting ops 2019-03-06 20:04:07 +00:00
clearfat.go
closedchan.go
closure1.go
closure2.go
closure3.go
closure4.go
closure.go
cmp6.go
cmp.go
cmplx.go cmd/compile: rewrite f(g()) for multi-value g() during typecheck 2019-03-14 21:00:20 +00:00
cmplxdivide1.go
cmplxdivide.c
cmplxdivide.go
complit1.go
complit.go
compos.go
const1.go cmd/compile: fix ICE from invalid operations on float/complex constants 2019-03-28 17:46:55 +00:00
const2.go
const3.go
const4.go
const5.go
const6.go
const.go
convert1.go
convert2.go
convert3.go
convert.go
convlit1.go
convlit.go
convT2X.go
copy1.go cmd/compile: rewrite f(g()) for multi-value g() during typecheck 2019-03-14 21:00:20 +00:00
copy.go
crlf.go
ddd1.go
ddd2.go
ddd.go
decl.go
declbad.go
defer.go
deferfin.go
deferprint.go
deferprint.out
devirt.go
divide.go
divmod.go
empty.go
env.go
eof1.go
eof.go
escape2.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
escape2n.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
escape3.go
escape4.go cmd/compile: skip escape analysis diagnostics for OADDR 2019-04-02 16:34:03 +00:00
escape5.go test: add regress test for issue 28369 2019-04-16 21:01:30 +00:00
escape_array.go cmd/compile: trim more unnecessary escape analysis messages 2019-04-02 18:00:32 +00:00
escape_because.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
escape_calls.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
escape_closure.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
escape_field.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
escape_iface.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
escape_indir.go cmd/compile: skip escape analysis diagnostics for OADDR 2019-04-02 16:34:03 +00:00
escape_level.go cmd/compile: skip escape analysis diagnostics for OADDR 2019-04-02 16:34:03 +00:00
escape_map.go cmd/compile: skip escape analysis diagnostics for OADDR 2019-04-02 16:34:03 +00:00
escape_param.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
escape_runtime_atomic.go test: fix escape_runtime_atomic.go 2019-04-17 22:55:26 +00:00
escape_selfassign.go test: add regress test cases for self-assignment 2019-04-17 16:36:56 +00:00
escape_slice.go cmd/compile: skip escape analysis diagnostics for OADDR 2019-04-02 16:34:03 +00:00
escape_struct_param1.go cmd/compile: skip escape analysis diagnostics for OADDR 2019-04-02 16:34:03 +00:00
escape_struct_param2.go cmd/compile: skip escape analysis diagnostics for OADDR 2019-04-02 16:34:03 +00:00
escape_struct_return.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +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 test: add regress tests for unsafe.Pointer rules 2019-04-03 16:03:55 +00:00
escape.go
fibo.go
finprofiled.go
float_lit2.go
float_lit3.go
float_lit.go
floatcmp.go
for.go
func1.go
func2.go
func3.go
func4.go
func5.go
func6.go
func7.go
func8.go
func.go
funcdup2.go
funcdup.go
gc1.go
gc2.go
gc.go
gcgort.go
gcstring.go
goprint.go
goprint.out
goto.go
heapsampling.go test: improve test coverage for heap sampling 2019-03-07 21:05:15 +00:00
helloworld.go
helloworld.out
if.go
import1.go
import2.go
import4.go
import5.go
import6.go
import.go
index0.go
index1.go
index2.go
index.go
indirect1.go
indirect.go
init1.go
init.go cmd/compile: reorganize init functions 2019-03-18 20:10:55 +00:00
initcomma.go
initialize.go
initializerr.go
initloop.go
inline_big.go
inline_caller.go
inline_callers.go
inline_literal.go
inline_math_bits_rotate.go
inline_sync.go cmd/compile: skip escape analysis diagnostics for OADDR 2019-04-02 16:34:03 +00:00
inline_variadic.go
inline.go cmd/compile: skip escape analysis diagnostics for OADDR 2019-04-02 16:34:03 +00:00
int_lit.go
intcvt.go
intrinsic_atomic.go
intrinsic.go
iota.go
label1.go
label.go
linkmain_run.go
linkmain.go
linkname.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
linkobj.go
linkx_run.go
linkx.go
literal2.go
literal.go
live1.go
live2.go
live_syscall.go cmd/compile: skip escape analysis diagnostics for OADDR 2019-04-02 16:34:03 +00:00
live.go cmd/compile: fix ordering for short-circuiting ops 2019-03-06 20:04:07 +00:00
locklinear.go
loopbce.go cmd/compile: reverse order of slice bounds checks 2019-03-09 00:52:45 +00:00
makechan.go
makemap.go
makenew.go
mallocfin.go
map1.go
map.go
mapclear.go
maplinear.go
mergemul.go
method1.go
method2.go
method3.go
method4.go
method5.go
method6.go
method7.go
method.go
named1.go
named.go
nil.go
nilcheck.go
nilptr2.go test: use a real use function in nilptr2.go 2019-05-11 03:02:33 +00:00
nilptr3.go
nilptr4.go
nilptr5_aix.go
nilptr5_wasm.go
nilptr5.go
nilptr_aix.go
nilptr.go
nosplit.go ../test: set GOPATH in nosplit.go 2019-03-12 20:46:29 +00:00
notinheap2.go
notinheap3.go
notinheap.go
nowritebarrier.go
nul1.go
oldescape2.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
oldescape2n.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
oldescape5.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
oldescape_calls.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
oldescape_closure.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
oldescape_field.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
oldescape_iface.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
oldescape_linkname.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
oldescape_param.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
oldescape_struct_return.go cmd/compile: update escape analysis tests for newescape 2019-04-16 16:20:39 +00:00
opt_branchlikely.go
parentype.go
peano.go
phiopt.go
print.go
print.out
printbig.go
printbig.out
prove.go cmd/compile: make prove learn index >= 0 from successful bounds checks 2019-03-30 23:22:02 +00:00
range.go
README.md
recover1.go
recover2.go
recover3.go
recover4.go
recover5.go
recover.go
reflectmethod1.go
reflectmethod2.go
reflectmethod3.go
reflectmethod4.go
rename1.go
rename.go
reorder2.go
reorder.go
retjmp.go
return.go
rotate0.go
rotate1.go
rotate2.go
rotate3.go
rotate.go
run.go cmd/compile: shortcut intrinsic inlining AFTER getcallerXX check 2019-04-19 20:18:29 +00:00
rune.go
runtime.go
shift1.go
shift2.go
sieve.go
sigchld.go
sigchld.out
simassign.go
sinit_run.go
sinit.go
sizeof.go
slice3.go
slice3err.go
slicecap.go
sliceopt.go
solitaire.go
stack.go
stackobj2.go
stackobj3.go
stackobj.go
strcopy.go
strength.go
string_lit.go
stringrange.go
struct0.go
switch2.go
switch3.go
switch4.go
switch5.go
switch6.go
switch7.go
switch.go
tinyfin.go
torture.go
turing.go
typecheck.go
typecheckloop.go
typeswitch1.go
typeswitch2.go
typeswitch3.go
typeswitch.go
uintptrescapes2.go cmd/compile: skip escape analysis diagnostics for OADDR 2019-04-02 16:34:03 +00:00
uintptrescapes.go
undef.go
utf.go
varerr.go
varinit.go
writebarrier.go cmd/compile: better write barrier removal when initializing new objects 2019-03-18 21:16:19 +00:00
zerodivide.go

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.