runtime: fix overflow in PingPongHog test

On 32-bit systems the result of hogCount*factor can overflow.
Use division instead to do comparison.

Update #52207

Change-Id: I429fb9dc009af645acb535cee5c70887527ba207
Reviewed-on: https://go-review.googlesource.com/c/go/+/407415
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
This commit is contained in:
Keith Randall 2022-05-19 13:45:51 -07:00
parent dd83fd8a70
commit d8762b2f45

View file

@ -483,7 +483,7 @@ func TestPingPongHog(t *testing.T) {
// scheduler isn't working right, the gap should be ~1000X
// (was 5, increased to 20, see issue 52207).
const factor = 20
if hogCount > lightCount*factor || lightCount > hogCount*factor {
if hogCount/factor > lightCount || lightCount/factor > hogCount {
t.Fatalf("want hogCount/lightCount in [%v, %v]; got %d/%d = %g", 1.0/factor, factor, hogCount, lightCount, float64(hogCount)/float64(lightCount))
}
}