From 840e56eddb903fcbf6234b9dc8f2a586bae56869 Mon Sep 17 00:00:00 2001 From: jochen Date: Sat, 24 Oct 2026 03:43:49 +0200 Subject: [PATCH] Fail the node-engine's check when the controller's trunk is unknown, so its step-nine test never skips (issue 1295) --- .../mesh-delivery-checker/internal/check/beside.go | 4 ++++ .../internal/check/pins_test.go | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/modules/mesh-delivery-checker/internal/check/beside.go b/modules/mesh-delivery-checker/internal/check/beside.go index 2453319..ebe0df5 100644 --- a/modules/mesh-delivery-checker/internal/check/beside.go +++ b/modules/mesh-delivery-checker/internal/check/beside.go @@ -83,6 +83,10 @@ func (j *Examiner) besideFor(ctx context.Context, c *Case, p Pull) ([]BesideRef, out = append(out, BesideRef{Repository: repo, Commit: member.Head, Ref: refOf(member.Number)}) } else if head := heads[repo]; head != "" { out = append(out, BesideRef{Repository: repo, Commit: head}) + } else if repo == controllerRepo && p.Repository == nodeEngineRepo { + // The node-engine's step-nine test judges the controller's own manifest and fails without it (issue 1295): a + // checker that cannot place it says so, where placing none left that test to skip. + return nil, fmt.Errorf("the trunk head of %s is not known, so the controller the tests of %s#%d read cannot be placed beside them", repo, p.Repository, p.Number) } } } diff --git a/modules/mesh-delivery-checker/internal/check/pins_test.go b/modules/mesh-delivery-checker/internal/check/pins_test.go index c9c2bb1..d1083be 100644 --- a/modules/mesh-delivery-checker/internal/check/pins_test.go +++ b/modules/mesh-delivery-checker/internal/check/pins_test.go @@ -346,3 +346,15 @@ func TestAMeshLabHeadGetsACheck(t *testing.T) { t.Fatalf("mesh-lab was not fetched: %+v", fetched) } } + +// 1295: the node-engine's step-nine test fails without the controller beside it, so a checker that knows no trunk head of the +// controller fails the check at the placing, loudly, and does not place none. +func TestTheNodeEnginesCheckFailsWhereTheControllersTrunkIsNotKnown(t *testing.T) { + const host = "novox/mesh-host" + b := newBench(t) + b.ex.Trunks = trunksOf(t, map[string]string{host: trunkA, catalogueRepository: trunkS, SDKRepository: trunkS}) + v := b.judge(t, hostCase(t, pullOf(host, 5, head1))).Verdict + if v.State != delivery.VerdictFail || !strings.Contains(v.Failed.Words, "mesh-controller") || !strings.Contains(v.Failed.Words, "cannot be placed") { + t.Fatalf("verdict = %+v", v) + } +}