diff --git a/encoding/protowire/wire_test.go b/encoding/protowire/wire_test.go
index f0281c3..4b15567 100644
--- a/encoding/protowire/wire_test.go
+++ b/encoding/protowire/wire_test.go
@@ -9,6 +9,7 @@
 	"encoding/hex"
 	"io"
 	"math"
+	"slices"
 	"strings"
 	"testing"
 )
@@ -679,22 +680,13 @@
 	}
 }
 
-// TODO(go1.23): use slices.Repeat
-var testvals = func() []uint64 {
-	// These values are representative for the values that we observe when
-	// running benchmarks extracted from Google production workloads.
-	vals := []uint64{
-		1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
-		55, 66, 77, 88, 99, 100,
-		123456789, 98765432,
-	}
-	newslice := make([]uint64, 100*len(vals))
-	n := copy(newslice, vals)
-	for n < len(newslice) {
-		n += copy(newslice[n:], newslice[:n])
-	}
-	return newslice
-}()
+// These values are representative for the values that we observe when
+// running benchmarks extracted from Google production workloads.
+var testvals = slices.Repeat([]uint64{
+	1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
+	55, 66, 77, 88, 99, 100,
+	123456789, 98765432,
+}, 100)
 
 func BenchmarkSizeVarint(b *testing.B) {
 	var total int
diff --git a/go.mod b/go.mod
index f5bfacf..1ff6c88 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
 module google.golang.org/protobuf
 
-go 1.22
+go 1.23
 
 require (
 	github.com/golang/protobuf v1.5.0
diff --git a/integration_test.go b/integration_test.go
index 62f6b29..aedd2e2 100644
--- a/integration_test.go
+++ b/integration_test.go
@@ -40,9 +40,9 @@
 		// This matches the version policy of the Google Cloud Client Libraries:
 		// https://cloud.google.com/go/getting-started/supported-go-versions
 		return []string{
-			"1.22.12",
-			"1.23.9",
-			"1.24.2",
+			"1.23.12",
+			"1.24.6",
+			"1.25.0",
 		}
 	}()
 	golangLatest = golangVersions[len(golangVersions)-1]
