bytes/hash: disable seed test on 32-bit platforms

The distribution of hash outputs when varying the seed is
not good enough on 32-bit platforms.

This isn't a likely attack vector (the adversary controlling the seed),
so it isn't a huge deal. Would be nice to fix, though. For now, just
skip this test.

Fixes #33988

Change-Id: Icf51ab687fc215422a5492ae78e6f414b33e04cb
Reviewed-on: https://go-review.googlesource.com/c/go/+/193078
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Keith Randall 2019-09-03 10:27:48 -07:00 committed by Keith Randall
parent d2f958d8d1
commit 7c90e2cbda

View file

@ -12,6 +12,7 @@ import (
"runtime"
"strings"
"testing"
"unsafe"
)
// Smhasher is a torture test for hash functions.
@ -450,6 +451,9 @@ func text(t *testing.T, prefix, suffix string) {
// Make sure different seed values generate different hashes.
func TestSmhasherSeed(t *testing.T) {
if unsafe.Sizeof(uintptr(0)) == 4 {
t.Skip("32-bit platforms don't have ideal seed-input distributions (see issue 33988)")
}
h := newHashSet()
const N = 100000
s := "hello"