mirror of
https://github.com/golang/go
synced 2024-11-12 08:20:22 -07:00
cmd/compile: enable two orphaned tests
These tests weren't being run. Re-enable them. R=go1.12 Change-Id: I8d3cd09b7f07e4c39f855ddb9be000718ec86494 Reviewed-on: https://go-review.googlesource.com/127117 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
parent
dca709da1d
commit
707fd452e6
@ -5,9 +5,7 @@
|
|||||||
// cmp_ssa.go tests compare simplification operations.
|
// cmp_ssa.go tests compare simplification operations.
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import "fmt"
|
import "testing"
|
||||||
|
|
||||||
var failed = false
|
|
||||||
|
|
||||||
//go:noinline
|
//go:noinline
|
||||||
func eq_ssa(a int64) bool {
|
func eq_ssa(a int64) bool {
|
||||||
@ -19,30 +17,21 @@ func neq_ssa(a int64) bool {
|
|||||||
return 10 != a+4
|
return 10 != a+4
|
||||||
}
|
}
|
||||||
|
|
||||||
func testCmp() {
|
func testCmp(t *testing.T) {
|
||||||
if wanted, got := true, eq_ssa(6); wanted != got {
|
if wanted, got := true, eq_ssa(6); wanted != got {
|
||||||
fmt.Printf("eq_ssa: expected %v, got %v\n", wanted, got)
|
t.Errorf("eq_ssa: expected %v, got %v\n", wanted, got)
|
||||||
failed = true
|
|
||||||
}
|
}
|
||||||
if wanted, got := false, eq_ssa(7); wanted != got {
|
if wanted, got := false, eq_ssa(7); wanted != got {
|
||||||
fmt.Printf("eq_ssa: expected %v, got %v\n", wanted, got)
|
t.Errorf("eq_ssa: expected %v, got %v\n", wanted, got)
|
||||||
failed = true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if wanted, got := false, neq_ssa(6); wanted != got {
|
if wanted, got := false, neq_ssa(6); wanted != got {
|
||||||
fmt.Printf("neq_ssa: expected %v, got %v\n", wanted, got)
|
t.Errorf("neq_ssa: expected %v, got %v\n", wanted, got)
|
||||||
failed = true
|
|
||||||
}
|
}
|
||||||
if wanted, got := true, neq_ssa(7); wanted != got {
|
if wanted, got := true, neq_ssa(7); wanted != got {
|
||||||
fmt.Printf("neq_ssa: expected %v, got %v\n", wanted, got)
|
t.Errorf("neq_ssa: expected %v, got %v\n", wanted, got)
|
||||||
failed = true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func TestCmp(t *testing.T) {
|
||||||
testCmp()
|
testCmp(t)
|
||||||
|
|
||||||
if failed {
|
|
||||||
panic("failed")
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -1,58 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"runtime"
|
|
||||||
)
|
|
||||||
|
|
||||||
var failed = false
|
|
||||||
|
|
||||||
func checkDivByZero(f func()) (divByZero bool) {
|
|
||||||
defer func() {
|
|
||||||
if r := recover(); r != nil {
|
|
||||||
if e, ok := r.(runtime.Error); ok && e.Error() == "runtime error: integer divide by zero" {
|
|
||||||
divByZero = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
f()
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
//go:noinline
|
|
||||||
func a(i uint, s []int) int {
|
|
||||||
return s[i%uint(len(s))]
|
|
||||||
}
|
|
||||||
|
|
||||||
//go:noinline
|
|
||||||
func b(i uint, j uint) uint {
|
|
||||||
return i / j
|
|
||||||
}
|
|
||||||
|
|
||||||
//go:noinline
|
|
||||||
func c(i int) int {
|
|
||||||
return 7 / (i - i)
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
if got := checkDivByZero(func() { b(7, 0) }); !got {
|
|
||||||
fmt.Printf("expected div by zero for b(7, 0), got no error\n")
|
|
||||||
failed = true
|
|
||||||
}
|
|
||||||
if got := checkDivByZero(func() { b(7, 7) }); got {
|
|
||||||
fmt.Printf("expected no error for b(7, 7), got div by zero\n")
|
|
||||||
failed = true
|
|
||||||
}
|
|
||||||
if got := checkDivByZero(func() { a(4, nil) }); !got {
|
|
||||||
fmt.Printf("expected div by zero for a(4, nil), got no error\n")
|
|
||||||
failed = true
|
|
||||||
}
|
|
||||||
if got := checkDivByZero(func() { c(5) }); !got {
|
|
||||||
fmt.Printf("expected div by zero for c(5), got no error\n")
|
|
||||||
failed = true
|
|
||||||
}
|
|
||||||
|
|
||||||
if failed {
|
|
||||||
panic("tests failed")
|
|
||||||
}
|
|
||||||
}
|
|
48
src/cmd/compile/internal/gc/testdata/divbyzero_test.go
vendored
Normal file
48
src/cmd/compile/internal/gc/testdata/divbyzero_test.go
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"runtime"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func checkDivByZero(f func()) (divByZero bool) {
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
if e, ok := r.(runtime.Error); ok && e.Error() == "runtime error: integer divide by zero" {
|
||||||
|
divByZero = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
f()
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:noinline
|
||||||
|
func div_a(i uint, s []int) int {
|
||||||
|
return s[i%uint(len(s))]
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:noinline
|
||||||
|
func div_b(i uint, j uint) uint {
|
||||||
|
return i / j
|
||||||
|
}
|
||||||
|
|
||||||
|
//go:noinline
|
||||||
|
func div_c(i int) int {
|
||||||
|
return 7 / (i - i)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestDivByZero(t *testing.T) {
|
||||||
|
if got := checkDivByZero(func() { div_b(7, 0) }); !got {
|
||||||
|
t.Errorf("expected div by zero for b(7, 0), got no error\n")
|
||||||
|
}
|
||||||
|
if got := checkDivByZero(func() { div_b(7, 7) }); got {
|
||||||
|
t.Errorf("expected no error for b(7, 7), got div by zero\n")
|
||||||
|
}
|
||||||
|
if got := checkDivByZero(func() { div_a(4, nil) }); !got {
|
||||||
|
t.Errorf("expected div by zero for a(4, nil), got no error\n")
|
||||||
|
}
|
||||||
|
if got := checkDivByZero(func() { div_c(5) }); !got {
|
||||||
|
t.Errorf("expected div by zero for c(5), got no error\n")
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user