From c9b0a21bb1f25b7b5a49998e61417b58b6e1cab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Gronowski?= Date: Mon, 15 Dec 2025 17:51:24 +0100 Subject: [PATCH] modernize: Use `b.Loop` (introduced in Go 1.24) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Paweł Gronowski --- .../remotecontext/internal/tarsum/tarsum_test.go | 8 ++++---- daemon/container/view_test.go | 16 ++++++++-------- .../filiedescriptors_linux_test.go | 2 +- daemon/internal/stdcopymux/stdcopy_test.go | 4 ++-- .../internal/stream/bytespipe/bytespipe_test.go | 4 ++-- daemon/internal/stream/unbuffered_test.go | 4 ++-- daemon/libnetwork/etchosts/etchosts_test.go | 2 +- .../internal/resolvconf/resolvconf_test.go | 2 +- .../ipams/defaultipam/allocator_test.go | 4 ++-- .../portallocator/portallocator_test.go | 2 +- daemon/links/links_test.go | 4 ++-- daemon/logger/awslogs/cloudwatchlogs_test.go | 7 +++---- daemon/logger/ring_test.go | 16 ++++++++-------- internal/namesgenerator/names-generator_test.go | 2 +- pkg/tailfile/tailfile_test.go | 4 ++-- 15 files changed, 40 insertions(+), 41 deletions(-) diff --git a/daemon/builder/remotecontext/internal/tarsum/tarsum_test.go b/daemon/builder/remotecontext/internal/tarsum/tarsum_test.go index 1169fc453b..bd932ae3e9 100644 --- a/daemon/builder/remotecontext/internal/tarsum/tarsum_test.go +++ b/daemon/builder/remotecontext/internal/tarsum/tarsum_test.go @@ -580,8 +580,8 @@ func Benchmark9kTar(b *testing.B) { reader := bytes.NewReader(buf.Bytes()) b.SetBytes(n) - b.ResetTimer() - for i := 0; i < b.N; i++ { + + for b.Loop() { reader.Seek(0, 0) ts, err := NewTarSum(reader, true, Version0) if err != nil { @@ -611,8 +611,8 @@ func Benchmark9kTarGzip(b *testing.B) { reader := bytes.NewReader(buf.Bytes()) b.SetBytes(n) - b.ResetTimer() - for i := 0; i < b.N; i++ { + + for b.Loop() { reader.Seek(0, 0) ts, err := NewTarSum(reader, false, Version0) if err != nil { diff --git a/daemon/container/view_test.go b/daemon/container/view_test.go index 4e91ed5fd9..198791c360 100644 --- a/daemon/container/view_test.go +++ b/daemon/container/view_test.go @@ -350,8 +350,8 @@ func BenchmarkDBAdd100(b *testing.B) { for i := 0; i < 100; i++ { testSet = append(testSet, stringid.GenerateRandomID()) } - b.ResetTimer() - for i := 0; i < b.N; i++ { + + for b.Loop() { db, err := NewViewDB() if err != nil { b.Fatal(err) @@ -381,8 +381,8 @@ func BenchmarkDBGetByPrefix100(b *testing.B) { l := rand.Intn(12) + 12 testKeys = append(testKeys, id[:l]) } - b.ResetTimer() - for i := 0; i < b.N; i++ { + + for b.Loop() { for _, id := range testKeys { if res, err := db.GetByPrefix(id); err != nil { b.Fatal(res, err) @@ -408,8 +408,8 @@ func BenchmarkDBGetByPrefix250(b *testing.B) { l := rand.Intn(12) + 12 testKeys = append(testKeys, id[:l]) } - b.ResetTimer() - for i := 0; i < b.N; i++ { + + for b.Loop() { for _, id := range testKeys { if res, err := db.GetByPrefix(id); err != nil { b.Fatal(res, err) @@ -435,8 +435,8 @@ func BenchmarkDBGetByPrefix500(b *testing.B) { l := rand.Intn(12) + 12 testKeys = append(testKeys, id[:l]) } - b.ResetTimer() - for i := 0; i < b.N; i++ { + + for b.Loop() { for _, id := range testKeys { if res, err := db.GetByPrefix(id); err != nil { b.Fatal(res, err) diff --git a/daemon/internal/filedescriptors/filiedescriptors_linux_test.go b/daemon/internal/filedescriptors/filiedescriptors_linux_test.go index 261c13b2e3..ad91ce3d33 100644 --- a/daemon/internal/filedescriptors/filiedescriptors_linux_test.go +++ b/daemon/internal/filedescriptors/filiedescriptors_linux_test.go @@ -8,7 +8,7 @@ import ( func BenchmarkGetTotalUsedFds(b *testing.B) { ctx := context.Background() b.ReportAllocs() - for i := 0; i < b.N; i++ { + for b.Loop() { _ = GetTotalUsedFds(ctx) } } diff --git a/daemon/internal/stdcopymux/stdcopy_test.go b/daemon/internal/stdcopymux/stdcopy_test.go index b3ec459e79..a2b2e2c163 100644 --- a/daemon/internal/stdcopymux/stdcopy_test.go +++ b/daemon/internal/stdcopymux/stdcopy_test.go @@ -287,8 +287,8 @@ func BenchmarkWrite(b *testing.B) { data := []byte("Test line for testing stdwriter performance\n") data = bytes.Repeat(data, 100) b.SetBytes(int64(len(data))) - b.ResetTimer() - for i := 0; i < b.N; i++ { + + for b.Loop() { if _, err := w.Write(data); err != nil { b.Fatal(err) } diff --git a/daemon/internal/stream/bytespipe/bytespipe_test.go b/daemon/internal/stream/bytespipe/bytespipe_test.go index 58a71c574f..92c25e934e 100644 --- a/daemon/internal/stream/bytespipe/bytespipe_test.go +++ b/daemon/internal/stream/bytespipe/bytespipe_test.go @@ -184,7 +184,7 @@ func TestBytesPipeWriteRandomChunks(t *testing.T) { func BenchmarkBytesPipeWrite(b *testing.B) { b.ReportAllocs() testData := []byte("pretty short line, because why not?") - for i := 0; i < b.N; i++ { + for b.Loop() { readBuf := make([]byte, 1024) buf := New() go func() { @@ -203,7 +203,7 @@ func BenchmarkBytesPipeWrite(b *testing.B) { func BenchmarkBytesPipeRead(b *testing.B) { b.ReportAllocs() rd := make([]byte, 512) - for i := 0; i < b.N; i++ { + for b.Loop() { b.StopTimer() buf := New() for j := 0; j < 500; j++ { diff --git a/daemon/internal/stream/unbuffered_test.go b/daemon/internal/stream/unbuffered_test.go index 0da9987c16..282149bc8b 100644 --- a/daemon/internal/stream/unbuffered_test.go +++ b/daemon/internal/stream/unbuffered_test.go @@ -145,8 +145,8 @@ func BenchmarkUnbuffered(b *testing.B) { buf.WriteString(testLine) testText := buf.Bytes() b.SetBytes(int64(5 * len(testText))) - b.ResetTimer() - for i := 0; i < b.N; i++ { + + for b.Loop() { b.StopTimer() setUpWriter() b.StartTimer() diff --git a/daemon/libnetwork/etchosts/etchosts_test.go b/daemon/libnetwork/etchosts/etchosts_test.go index e73d684174..85bc239158 100644 --- a/daemon/libnetwork/etchosts/etchosts_test.go +++ b/daemon/libnetwork/etchosts/etchosts_test.go @@ -453,7 +453,7 @@ func benchDelete(b *testing.B) { } func BenchmarkDelete(b *testing.B) { - for i := 0; i < b.N; i++ { + for b.Loop() { benchDelete(b) } } diff --git a/daemon/libnetwork/internal/resolvconf/resolvconf_test.go b/daemon/libnetwork/internal/resolvconf/resolvconf_test.go index c15b711f9a..f029f13513 100644 --- a/daemon/libnetwork/internal/resolvconf/resolvconf_test.go +++ b/daemon/libnetwork/internal/resolvconf/resolvconf_test.go @@ -580,7 +580,7 @@ func BenchmarkGenerate(b *testing.B) { } b.ReportAllocs() - for i := 0; i < b.N; i++ { + for b.Loop() { _, err := rc.Generate(true) if err != nil { b.Fatal(err) diff --git a/daemon/libnetwork/ipams/defaultipam/allocator_test.go b/daemon/libnetwork/ipams/defaultipam/allocator_test.go index 4cc51c5e7e..5f9859b0bb 100644 --- a/daemon/libnetwork/ipams/defaultipam/allocator_test.go +++ b/daemon/libnetwork/ipams/defaultipam/allocator_test.go @@ -1331,7 +1331,7 @@ func BenchmarkPoolIDToString(b *testing.B) { } b.ReportAllocs() - for i := 0; i < b.N; i++ { + for b.Loop() { _ = k.String() } } @@ -1340,7 +1340,7 @@ func BenchmarkPoolIDFromString(b *testing.B) { const poolIDString = "default/172.27.0.0/16/172.27.3.0/24" b.ReportAllocs() - for i := 0; i < b.N; i++ { + for b.Loop() { _, err := PoolIDFromString(poolIDString) if err != nil { b.Fatal(err) diff --git a/daemon/libnetwork/portallocator/portallocator_test.go b/daemon/libnetwork/portallocator/portallocator_test.go index f58c0a3e40..49b3743bd5 100644 --- a/daemon/libnetwork/portallocator/portallocator_test.go +++ b/daemon/libnetwork/portallocator/portallocator_test.go @@ -147,7 +147,7 @@ func TestAllocateAllPorts(t *testing.T) { func BenchmarkAllocatePorts(b *testing.B) { p := newInstance() - for n := 0; n < b.N; n++ { + for b.Loop() { for i := 0; i <= p.end-p.begin; i++ { port, err := p.RequestPort(net.IPv4zero, "tcp", 0) if err != nil { diff --git a/daemon/links/links_test.go b/daemon/links/links_test.go index 7d76c0c4b7..99411e3240 100644 --- a/daemon/links/links_test.go +++ b/daemon/links/links_test.go @@ -143,8 +143,8 @@ func TestLinkMultipleEnv(t *testing.T) { func BenchmarkLinkMultipleEnv(b *testing.B) { b.ReportAllocs() - b.ResetTimer() - for i := 0; i < b.N; i++ { + + for b.Loop() { _ = EnvVars("172.0.17.3", "172.0.17.2", "/db/docker", []string{"PASSWORD=gordon"}, network.PortSet{ network.MustParsePort("6300/udp"): struct{}{}, network.MustParsePort("6379/tcp"): struct{}{}, diff --git a/daemon/logger/awslogs/cloudwatchlogs_test.go b/daemon/logger/awslogs/cloudwatchlogs_test.go index 2ecd7fd244..94bde68a09 100644 --- a/daemon/logger/awslogs/cloudwatchlogs_test.go +++ b/daemon/logger/awslogs/cloudwatchlogs_test.go @@ -728,7 +728,7 @@ func TestCollectBatchMultilinePattern(t *testing.T) { } func BenchmarkCollectBatch(b *testing.B) { - for i := 0; i < b.N; i++ { + for b.Loop() { mockClient := &mockClient{} stream := &logStream{ client: mockClient, @@ -759,7 +759,7 @@ func BenchmarkCollectBatch(b *testing.B) { } func BenchmarkCollectBatchMultilinePattern(b *testing.B) { - for i := 0; i < b.N; i++ { + for b.Loop() { mockClient := &mockClient{} multilinePattern := regexp.MustCompile(`\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1,2][0-9]|3[0,1]) (?:[0,1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]`) stream := &logStream{ @@ -1666,8 +1666,7 @@ func BenchmarkUnwrapEvents(b *testing.B) { } } - b.ResetTimer() - for i := 0; i < b.N; i++ { + for b.Loop() { res := unwrapEvents(events) assert.Check(b, is.Len(res, maximumLogEventsPerPut)) } diff --git a/daemon/logger/ring_test.go b/daemon/logger/ring_test.go index f90ef839d2..54124f4aea 100644 --- a/daemon/logger/ring_test.go +++ b/daemon/logger/ring_test.go @@ -158,7 +158,7 @@ func BenchmarkRingLoggerThroughputNoReceiver(b *testing.B) { msg := &Message{Line: []byte("hello humans and everyone else!")} b.SetBytes(int64(len(msg.Line))) - for i := 0; i < b.N; i++ { + for b.Loop() { if err := l.Log(msg); err != nil { b.Fatal(err) } @@ -170,7 +170,7 @@ func BenchmarkRingLoggerThroughputWithReceiverDelay0(b *testing.B) { msg := &Message{Line: []byte("hello humans and everyone else!")} b.SetBytes(int64(len(msg.Line))) - for i := 0; i < b.N; i++ { + for b.Loop() { if err := l.Log(msg); err != nil { b.Fatal(err) } @@ -206,7 +206,7 @@ func BenchmarkRingLoggerThroughputConsumeDelay1(b *testing.B) { cancel := consumeWithDelay(1*time.Millisecond, mockLog.c) defer cancel() - for i := 0; i < b.N; i++ { + for b.Loop() { if err := l.Log(msg); err != nil { b.Fatal(err) } @@ -223,7 +223,7 @@ func BenchmarkRingLoggerThroughputConsumeDelay10(b *testing.B) { cancel := consumeWithDelay(10*time.Millisecond, mockLog.c) defer cancel() - for i := 0; i < b.N; i++ { + for b.Loop() { if err := l.Log(msg); err != nil { b.Fatal(err) } @@ -240,7 +240,7 @@ func BenchmarkRingLoggerThroughputConsumeDelay50(b *testing.B) { cancel := consumeWithDelay(50*time.Millisecond, mockLog.c) defer cancel() - for i := 0; i < b.N; i++ { + for b.Loop() { if err := l.Log(msg); err != nil { b.Fatal(err) } @@ -257,7 +257,7 @@ func BenchmarkRingLoggerThroughputConsumeDelay100(b *testing.B) { cancel := consumeWithDelay(100*time.Millisecond, mockLog.c) defer cancel() - for i := 0; i < b.N; i++ { + for b.Loop() { if err := l.Log(msg); err != nil { b.Fatal(err) } @@ -274,7 +274,7 @@ func BenchmarkRingLoggerThroughputConsumeDelay300(b *testing.B) { cancel := consumeWithDelay(300*time.Millisecond, mockLog.c) defer cancel() - for i := 0; i < b.N; i++ { + for b.Loop() { if err := l.Log(msg); err != nil { b.Fatal(err) } @@ -291,7 +291,7 @@ func BenchmarkRingLoggerThroughputConsumeDelay500(b *testing.B) { cancel := consumeWithDelay(500*time.Millisecond, mockLog.c) defer cancel() - for i := 0; i < b.N; i++ { + for b.Loop() { if err := l.Log(msg); err != nil { b.Fatal(err) } diff --git a/internal/namesgenerator/names-generator_test.go b/internal/namesgenerator/names-generator_test.go index 2a1b40f012..95ad322543 100644 --- a/internal/namesgenerator/names-generator_test.go +++ b/internal/namesgenerator/names-generator_test.go @@ -28,7 +28,7 @@ func TestNameRetries(t *testing.T) { func BenchmarkGetRandomName(b *testing.B) { b.ReportAllocs() var out string - for n := 0; n < b.N; n++ { + for b.Loop() { out = GetRandomName(5) } b.Log("Last result:", out) diff --git a/pkg/tailfile/tailfile_test.go b/pkg/tailfile/tailfile_test.go index a9add26795..aef9b31c49 100644 --- a/pkg/tailfile/tailfile_test.go +++ b/pkg/tailfile/tailfile_test.go @@ -151,8 +151,8 @@ func BenchmarkTail(b *testing.B) { b.Fatal(err) } } - b.ResetTimer() - for i := 0; i < b.N; i++ { + + for b.Loop() { if _, err := TailFile(f, 1000); err != nil { b.Fatal(err) }