]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.18] internal/fuzz: fix TestUnmarshalMarshal on MIPS
authorRoland Shoemaker <roland@golang.org>
Sat, 5 Mar 2022 16:47:33 +0000 (08:47 -0800)
committerDmitri Shuralyov <dmitshur@golang.org>
Tue, 8 Mar 2022 00:41:50 +0000 (00:41 +0000)
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 <dmitshur@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Trust: Roland Shoemaker <roland@golang.org>
Run-TryBot: Roland Shoemaker <roland@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
(cherry picked from commit 63bd6f68e6cbb237b46a99775103758afaee370a)
Reviewed-on: https://go-review.googlesource.com/c/go/+/390418
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>

src/internal/fuzz/encoding_test.go

index 4b55892acdaaaadd88b940003ce828fd972b8eee..3a614f5bd2a364550a8d428a48f21869e4bb27ac 100644 (file)
@@ -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,
                },
        }