From 55ba7f2cb83cdcd3f74bb6f5b679c67156e474c5 Mon Sep 17 00:00:00 2001 From: jochen Date: Fri, 23 Oct 2026 02:44:58 +0200 Subject: [PATCH] Hold every refusal of the stopped path in the test ADR 0523 names: a newer open plan of the branch, a newer plan of a build not sent (issue 1886) --- cmd/mesh-controller/plan_retry_stopped_test.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/cmd/mesh-controller/plan_retry_stopped_test.go b/cmd/mesh-controller/plan_retry_stopped_test.go index cbe7b69d..d8618f85 100644 --- a/cmd/mesh-controller/plan_retry_stopped_test.go +++ b/cmd/mesh-controller/plan_retry_stopped_test.go @@ -99,6 +99,22 @@ func TestRetryResumesAWalkStoppedByHand(t *testing.T) { if err := retryRefusal(stopped, []inventory.Plan{beside}, ownPathOf(nil)); err == nil || !strings.Contains(err.Error(), "one walk at a time") { t.Errorf("a stopped walk was resumed beside a related open walk: %v", err) } + // A newer open plan of its repository and branch supersedes it: resuming would build what that one replaced. + newerOpen := inventory.Plan{ID: "plan-newer", Repository: "novox/mesh-sdk", Branch: "main", Commit: "d00dfeed", + Created: at, State: inventory.PlanBuilding, Tiers: [][]string{{"zsh"}}, + Modules: map[string]*inventory.PlanModule{"zsh": {State: "asked"}}} + if err := retryRefusal(stopped, []inventory.Plan{stopped, newerOpen}, ownPathOf(nil)); err == nil || + !strings.Contains(err.Error(), "plan-newer supersedes it") { + t.Errorf("a stopped walk was resumed under a newer open plan of its branch: %v", err) + } + // A newer plan holding a build of its tier not yet sent refuses it: resuming would send the older build over the newer. + newerBuilt := inventory.Plan{ID: "plan-agent", Repository: "novox/mesh-controller", Branch: "main", Commit: "d00dfeed", + Created: at, State: inventory.PlanDone, Tiers: [][]string{{"build-agent"}}, + Modules: map[string]*inventory.PlanModule{"build-agent": {State: "built"}}} + if err := retryRefusal(stopped, []inventory.Plan{stopped, newerBuilt}, ownPathOf(nil)); err == nil || + !strings.Contains(err.Error(), "older build") { + t.Errorf("a stopped walk was resumed over a newer plan of a build it has not sent: %v", err) + } } // A newer plan holding a module the stopped walk has not yet asked does not refuse its resume (review of issue 1886): that