Incorrect window resizing led to checksum error and invalid result.
To demonstrate the problem bigData must be a bit bigger, 3x is enough.
This change fixes window resizing, increases bigData size and decouples
TestLargeXXHash from bigData because it uses hardcoded hash value.
Change-Id: I50f74315b083f42e1ccd7ab2093e084f44631bb6
GitHub-Last-Rev:
dbc90ba7a5f24db198cc3eab1c38aad665e41d06
GitHub-Pull-Request: golang/go#62543
Reviewed-on: https://go-review.googlesource.com/c/go/+/527115
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
t.Skip("skipping expensive test in short mode")
}
- data := bigData(t)
+ data, err := os.ReadFile("../../testdata/Isaac.Newton-Opticks.txt")
+ if err != nil {
+ t.Fatal(err)
+ }
+
var xh xxhash64
xh.reset()
i := 0
if keep < len(r.window) {
remove := len(r.window) - keep
copy(r.window[:], r.window[remove:])
+ r.window = r.window[:keep]
}
r.window = append(r.window, buf...)
bigDataErr error
)
-// bigData returns the contents of our large test file.
+// bigData returns the contents of our large test file repeated multiple times.
func bigData(t testing.TB) []byte {
bigDataOnce.Do(func() {
bigDataBytes, bigDataErr = os.ReadFile("../../testdata/Isaac.Newton-Opticks.txt")
+ if bigDataErr == nil {
+ bigDataBytes = bytes.Repeat(bigDataBytes, 3)
+ }
})
if bigDataErr != nil {
t.Fatal(bigDataErr)