]> Cypherpunks repositories - gostls13.git/commitdiff
database/sql: fix test on 32-bit
authorBrad Fitzpatrick <bradfitz@golang.org>
Fri, 10 Jan 2014 20:30:23 +0000 (12:30 -0800)
committerBrad Fitzpatrick <bradfitz@golang.org>
Fri, 10 Jan 2014 20:30:23 +0000 (12:30 -0800)
R=golang-codereviews
TBR=golang-dev
CC=golang-codereviews
https://golang.org/cl/49920047

src/pkg/database/sql/convert_test.go

index aa0b6f116a00c84d6670c2fb9d8de8be22dd3a37..6e248301283f9613afc43db8e7f6a8316d1e52de 100644 (file)
@@ -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)
        }
 }