From 0542aa17282433e48ae1546f8d7fefd2e884dd08 Mon Sep 17 00:00:00 2001 From: mchain0 Date: Mon, 11 May 2026 14:37:42 +0200 Subject: [PATCH 1/5] cre-4228: devenv: replace sleep with polling for upkeep completion in load test --- devenv/tests/automation/load_test.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/devenv/tests/automation/load_test.go b/devenv/tests/automation/load_test.go index 20dff13fe60..3f6a904e1ef 100644 --- a/devenv/tests/automation/load_test.go +++ b/devenv/tests/automation/load_test.go @@ -1,6 +1,7 @@ package automation import ( + "github.com/onsi/gomega" "context" "encoding/hex" "errors" @@ -330,8 +331,22 @@ func TestLoad(t *testing.T) { l.Info().Msg("Finished load generators") l.Info().Str("STOP_WAIT_TIME", StopWaitTime.String()).Msg("Waiting for upkeeps to be performed") - time.Sleep(StopWaitTime) - l.Info().Msg("Finished waiting 60s for upkeeps to be performed") + // Poll until all upkeeps have been performed by checking that each + // consumer counter has increased past the pre-load baseline. + gom.Eventually(t, func() bool { + for i := range consumerContracts { + counter, err := consumerContracts[i].Counter(t.Context()) + if err != nil { + l.Error().Err(err).Msg("Failed to get counter") + return false + } + if counter.Cmp(preLoadCounters[i]) <= 0 { + return false + } + } + return true + }, time.Minute*5, time.Second*5).Should(gomega.BeTrue()) + l.Info().Msg("All upkeeps confirmed performed after load") endTimeTestEx := time.Now() testExDuration := endTimeTestEx.Sub(startTimeTestEx) l.Info(). From f11245101dd5ff7e77909e8f8062767369a1f7ee Mon Sep 17 00:00:00 2001 From: mchain0 Date: Mon, 11 May 2026 15:18:15 +0200 Subject: [PATCH 2/5] cre-4228: preLoadCounters --- devenv/tests/automation/load_test.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/devenv/tests/automation/load_test.go b/devenv/tests/automation/load_test.go index 3f6a904e1ef..3f398d240b4 100644 --- a/devenv/tests/automation/load_test.go +++ b/devenv/tests/automation/load_test.go @@ -325,6 +325,13 @@ func TestLoad(t *testing.T) { startTimeTestEx := time.Now() l.Info().Str("START_TIME", startTimeTestEx.String()).Msg("Test execution started") + preLoadCounters := make([]*big.Int, len(consumerContracts)) + for i := range consumerContracts { + c, err := consumerContracts[i].Counter(t.Context()) + require.NoError(t, err, "failed to read pre-load counter") + preLoadCounters[i] = new(big.Int).Set(c) + } + l.Info().Msg("Starting load generators") _, err = p.Run(true) require.NoError(t, err, "Error running load generators") @@ -333,7 +340,7 @@ func TestLoad(t *testing.T) { l.Info().Str("STOP_WAIT_TIME", StopWaitTime.String()).Msg("Waiting for upkeeps to be performed") // Poll until all upkeeps have been performed by checking that each // consumer counter has increased past the pre-load baseline. - gom.Eventually(t, func() bool { + gomega.NewWithT(t).Eventually(func() bool { for i := range consumerContracts { counter, err := consumerContracts[i].Counter(t.Context()) if err != nil { From f6df49ebd15274efb9b82b6da49e75a295e95e9e Mon Sep 17 00:00:00 2001 From: mchain0 Date: Mon, 11 May 2026 15:27:06 +0200 Subject: [PATCH 3/5] cre-4228: minor improvement --- devenv/tests/automation/load_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devenv/tests/automation/load_test.go b/devenv/tests/automation/load_test.go index 3f398d240b4..3250805246f 100644 --- a/devenv/tests/automation/load_test.go +++ b/devenv/tests/automation/load_test.go @@ -1,7 +1,6 @@ package automation import ( - "github.com/onsi/gomega" "context" "encoding/hex" "errors" @@ -17,6 +16,7 @@ import ( geth "github.com/ethereum/go-ethereum" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" + "github.com/onsi/gomega" "github.com/pelletier/go-toml/v2" "github.com/stretchr/testify/require" From 988013a82f12ce63af925e2e3ee617efea02a7ce Mon Sep 17 00:00:00 2001 From: mchain0 Date: Mon, 11 May 2026 15:58:08 +0200 Subject: [PATCH 4/5] cre-4228: minor improvement Co-authored-by: Jordan Krage --- devenv/tests/automation/load_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devenv/tests/automation/load_test.go b/devenv/tests/automation/load_test.go index 3250805246f..cef61f41674 100644 --- a/devenv/tests/automation/load_test.go +++ b/devenv/tests/automation/load_test.go @@ -352,7 +352,7 @@ func TestLoad(t *testing.T) { } } return true - }, time.Minute*5, time.Second*5).Should(gomega.BeTrue()) + }, testutils.WaitTimeout(t), time.Second*5).Should(gomega.BeTrue()) l.Info().Msg("All upkeeps confirmed performed after load") endTimeTestEx := time.Now() testExDuration := endTimeTestEx.Sub(startTimeTestEx) From d280f75d046e5c555c361741e7ce7395b7322462 Mon Sep 17 00:00:00 2001 From: mchain0 Date: Mon, 11 May 2026 16:00:32 +0200 Subject: [PATCH 5/5] cre-4228: minor improvement Co-authored-by: Jordan Krage --- devenv/tests/automation/load_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devenv/tests/automation/load_test.go b/devenv/tests/automation/load_test.go index cef61f41674..97df688a125 100644 --- a/devenv/tests/automation/load_test.go +++ b/devenv/tests/automation/load_test.go @@ -340,7 +340,7 @@ func TestLoad(t *testing.T) { l.Info().Str("STOP_WAIT_TIME", StopWaitTime.String()).Msg("Waiting for upkeeps to be performed") // Poll until all upkeeps have been performed by checking that each // consumer counter has increased past the pre-load baseline. - gomega.NewWithT(t).Eventually(func() bool { + require.Eventually(t, func() bool { for i := range consumerContracts { counter, err := consumerContracts[i].Counter(t.Context()) if err != nil {