layout: don't run alloc tests with -race

The race runtime allocates where the non-race runtime doesn't.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2020-06-03 10:18:57 +02:00
parent e188d0e6ff
commit 4484674ab1
2 changed files with 48 additions and 36 deletions
+48
View File
@@ -0,0 +1,48 @@
// SPDX-License-Identifier: Unlicense OR MIT
// +build !race
package layout
import (
"image"
"testing"
"gioui.org/op"
)
func TestStackAllocs(t *testing.T) {
var ops op.Ops
allocs := testing.AllocsPerRun(1, func() {
ops.Reset()
gtx := Context{
Ops: &ops,
}
Stack{}.Layout(gtx,
Stacked(func(gtx Context) Dimensions {
return Dimensions{Size: image.Point{X: 50, Y: 50}}
}),
)
})
if allocs != 0 {
t.Errorf("expected no allocs, got %f", allocs)
}
}
func TestFlexAllocs(t *testing.T) {
var ops op.Ops
allocs := testing.AllocsPerRun(1, func() {
ops.Reset()
gtx := Context{
Ops: &ops,
}
Flex{}.Layout(gtx,
Rigid(func(gtx Context) Dimensions {
return Dimensions{Size: image.Point{X: 50, Y: 50}}
}),
)
})
if allocs != 0 {
t.Errorf("expected no allocs, got %f", allocs)
}
}
-36
View File
@@ -29,39 +29,3 @@ func TestStack(t *testing.T) {
t.Errorf("Stack ignored Expanded size, got %v expected %v", got, exp)
}
}
func TestStackAllocs(t *testing.T) {
var ops op.Ops
allocs := testing.AllocsPerRun(1, func() {
ops.Reset()
gtx := Context{
Ops: &ops,
}
Stack{}.Layout(gtx,
Stacked(func(gtx Context) Dimensions {
return Dimensions{Size: image.Point{X: 50, Y: 50}}
}),
)
})
if allocs != 0 {
t.Errorf("expected no allocs, got %f", allocs)
}
}
func TestFlexAllocs(t *testing.T) {
var ops op.Ops
allocs := testing.AllocsPerRun(1, func() {
ops.Reset()
gtx := Context{
Ops: &ops,
}
Flex{}.Layout(gtx,
Rigid(func(gtx Context) Dimensions {
return Dimensions{Size: image.Point{X: 50, Y: 50}}
}),
)
})
if allocs != 0 {
t.Errorf("expected no allocs, got %f", allocs)
}
}