From 2314cb446f49835d85d2f77bb52644fb1faa54c2 Mon Sep 17 00:00:00 2001 From: Joseph Phillips Date: Mon, 14 Aug 2023 11:47:22 +0200 Subject: [PATCH] Fixes intermittent test failure in action pruner worker test. Depending on the host compute capacity, we may process the watcher first even case before the catacomb dying case in the loop. --- worker/actionpruner/worker_test.go | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/worker/actionpruner/worker_test.go b/worker/actionpruner/worker_test.go index 88ff5303c7d..bfbe921368b 100644 --- a/worker/actionpruner/worker_test.go +++ b/worker/actionpruner/worker_test.go @@ -14,6 +14,8 @@ import ( gc "gopkg.in/check.v1" "github.com/juju/juju/core/watcher/watchertest" + "github.com/juju/juju/environs/config" + coretesting "github.com/juju/juju/testing" "github.com/juju/juju/worker/actionpruner" "github.com/juju/juju/worker/pruner" "github.com/juju/juju/worker/pruner/mocks" @@ -27,18 +29,33 @@ func (s *PrunerSuite) TestRunStop(c *gc.C) { ctrl := gomock.NewController(c) defer ctrl.Finish() + cfg, err := config.New(false, map[string]interface{}{ + "name": "test", + "type": "manual", + "uuid": coretesting.ModelTag.Id(), + "max-action-results-age": "2h", + "max-action-results-size": "2GiB", + }) + c.Assert(err, jc.ErrorIsNil) + ch := make(chan struct{}, 1) ch <- struct{}{} w := watchertest.NewMockNotifyWatcher(ch) facade := mocks.NewMockFacade(ctrl) facade.EXPECT().WatchForModelConfigChanges().Return(w, nil) + + // Depending on the host compute speed, the loop may select either + // the watcher change event, or the catacomb's dying event first. + facade.EXPECT().ModelConfig().Return(cfg, nil).AnyTimes() + updater, err := actionpruner.New(pruner.Config{ Facade: facade, - PruneInterval: 0, + PruneInterval: time.Minute, Clock: testclock.NewClock(time.Now()), Logger: loggo.GetLogger("test"), }) + c.Assert(err, jc.ErrorIsNil) workertest.CleanKill(c, updater) }