From: Brad Fitzpatrick Date: Fri, 10 Jan 2014 20:30:23 +0000 (-0800) Subject: database/sql: fix test on 32-bit X-Git-Tag: go1.3beta1~1005 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5f341df90d0c156e4e8af3fc6e6de336faa64aa5;p=gostls13.git database/sql: fix test on 32-bit R=golang-codereviews TBR=golang-dev CC=golang-codereviews https://golang.org/cl/49920047 --- diff --git a/src/pkg/database/sql/convert_test.go b/src/pkg/database/sql/convert_test.go index aa0b6f116a..6e24830128 100644 --- a/src/pkg/database/sql/convert_test.go +++ b/src/pkg/database/sql/convert_test.go @@ -8,6 +8,7 @@ import ( "database/sql/driver" "fmt" "reflect" + "runtime" "testing" "time" ) @@ -315,7 +316,14 @@ func TestRawBytesAllocs(t *testing.T) { test("float64", float64(64), "64") test("bool", false, "false") }) - if n > 0.5 { + + // The numbers below are only valid for 64-bit interface word sizes, + // and gc. With 32-bit words there are more convT2E allocs, and + // with gccgo, only pointers currently go in interface data. + // So only care on amd64 gc for now. + measureAllocs := runtime.GOARCH == "amd64" && runtime.Compiler == "gc" + + if n > 0.5 && measureAllocs { t.Fatalf("allocs = %v; want 0", n) } @@ -323,7 +331,7 @@ func TestRawBytesAllocs(t *testing.T) { n = testing.AllocsPerRun(100, func() { test("string", "foo", "foo") }) - if n > 1.5 { + if n > 1.5 && measureAllocs { t.Fatalf("allocs = %v; want max 1", n) } }