time: increase arbitrary upper bound in TestReset to 10s

The previous upper bound was around 0.375 s, which is empirically
too short on a slow, heavily-loaded builder. Since the test doesn't
seem to depend on the actual duration in any meaningful way, let's
make it several orders of magnitude larger.

Fixes #61266.

Change-Id: I6dde5e174966ee385db67e3cb87334f463c7e597
Reviewed-on: https://go-review.googlesource.com/c/go/+/508695
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
diff --git a/src/time/sleep_test.go b/src/time/sleep_test.go
index 8aac3b6..2f79124 100644
--- a/src/time/sleep_test.go
+++ b/src/time/sleep_test.go
@@ -418,22 +418,22 @@
 	// We try to run this test with increasingly larger multiples
 	// until one works so slow, loaded hardware isn't as flaky,
 	// but without slowing down fast machines unnecessarily.
-	const unit = 25 * Millisecond
-	tries := []Duration{
-		1 * unit,
-		3 * unit,
-		7 * unit,
-		15 * unit,
-	}
-	var err error
-	for _, d := range tries {
-		err = testReset(d)
+	//
+	// (maxDuration is several orders of magnitude longer than we
+	// expect this test to actually take on a fast, unloaded machine.)
+	d := 1 * Millisecond
+	const maxDuration = 10 * Second
+	for {
+		err := testReset(d)
 		if err == nil {
-			t.Logf("passed using duration %v", d)
-			return
+			break
 		}
+		d *= 2
+		if d > maxDuration {
+			t.Error(err)
+		}
+		t.Logf("%v; trying duration %v", err, d)
 	}
-	t.Error(err)
 }
 
 // Test that sleeping (via Sleep or Timer) for an interval so large it