From d8762b2f4532cc2e5ec539670b88bbc469a13938 Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Thu, 19 May 2022 13:45:51 -0700 Subject: [PATCH] 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 Run-TryBot: Keith Randall TryBot-Result: Gopher Robot Reviewed-by: Keith Randall --- src/runtime/proc_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime/proc_test.go b/src/runtime/proc_test.go index 418e448d2fec02..f354facc49539c 100644 --- a/src/runtime/proc_test.go +++ b/src/runtime/proc_test.go @@ -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)) } }