From: Roland Shoemaker Date: Sat, 5 Mar 2022 16:47:33 +0000 (-0800) Subject: [release-branch.go1.18] internal/fuzz: fix TestUnmarshalMarshal on MIPS X-Git-Tag: go1.18~20 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a54f962c29549f343a6b10559e14ca4d690cdb76;p=gostls13.git [release-branch.go1.18] internal/fuzz: fix TestUnmarshalMarshal on MIPS Previous value used in the float32 roundtrip used float32(math.NaN())-1 which caused the quiet/signal bit to flip, which seemed to break the test on MIPS platforms. Instead switch to using float32(math.NaN())+1, which preserves the bit and makes the test happy. Possibly related to #37455 Fixes #51258 Change-Id: Ia85c649e89a5d02027c0ec197f0ff318aa819c19 Reviewed-on: https://go-review.googlesource.com/c/go/+/390214 Trust: Dmitri Shuralyov Reviewed-by: Bryan Mills Trust: Roland Shoemaker Run-TryBot: Roland Shoemaker TryBot-Result: Gopher Robot (cherry picked from commit 63bd6f68e6cbb237b46a99775103758afaee370a) Reviewed-on: https://go-review.googlesource.com/c/go/+/390418 Run-TryBot: Dmitri Shuralyov --- diff --git a/src/internal/fuzz/encoding_test.go b/src/internal/fuzz/encoding_test.go index 4b55892acd..3a614f5bd2 100644 --- a/src/internal/fuzz/encoding_test.go +++ b/src/internal/fuzz/encoding_test.go @@ -104,6 +104,12 @@ float32(2.5)`, ok: true, }, { + // The two IEEE 754 bit patterns used for the math.Float{64,32}frombits + // encodings are non-math.NAN quiet-NaN values. Since they are not equal + // to math.NaN(), they should be re-encoded to their bit patterns. They + // are, respectively: + // * math.Float64bits(math.NaN())+1 + // * math.Float32bits(float32(math.NaN()))+1 in: `go test fuzz v1 float32(-0) float64(-0) @@ -113,8 +119,8 @@ float32(NaN) float64(+Inf) float64(-Inf) float64(NaN) -math.Float64frombits(9221120237041090560) -math.Float32frombits(2143289343)`, +math.Float64frombits(9221120237041090562) +math.Float32frombits(2143289345)`, ok: true, }, }