diff --git a/modules/mesh-delivery-checker/internal/check/beside.go b/modules/mesh-delivery-checker/internal/check/beside.go index 9b5d533..d64b4c3 100644 --- a/modules/mesh-delivery-checker/internal/check/beside.go +++ b/modules/mesh-delivery-checker/internal/check/beside.go @@ -27,6 +27,8 @@ const ( catalogueRepository = "novox/mesh-catalog" nodeEngineRepo = "novox/mesh-host" nodeEngineModule = "mesh-host" + // networkingRepository holds route-proxy, whose manifest the node-engine's proofs of a composition read. + networkingRepository = "novox/mesh-networking" ) // besideRules are the repositories each core repository's tests read, as the tests state it (mesh-sdk go/internal/beside @@ -34,9 +36,10 @@ const ( // checks/deps). Which commit of each is besideCommit's rule. No repository's tests read the controller, which ended by its // unassignment (novox/hq ADR 0590, issue 1126), and its repository is emptied and archived (ADR 0593 §11), so it has no // siblings placed either. The catalogue's tests read the node-engine since its composer command moved there (ADR 0593 -// §7): mesh-build-go builds it for a compose ask. +// §7): mesh-build-go builds it for a compose ask. The node-engine's read mesh-networking since route-proxy's proofs of a +// composition moved into them (ADR 0593). var besideRules = map[string][]string{ - nodeEngineRepo: {catalogueRepository, SDKRepository}, + nodeEngineRepo: {catalogueRepository, SDKRepository, networkingRepository}, SDKRepository: {catalogueRepository, nodeEngineRepo}, catalogueRepository: {SDKRepository, nodeEngineRepo}, "novox/mesh-delivery": {SDKRepository, catalogueRepository}, diff --git a/modules/mesh-delivery-checker/internal/check/examiner_test.go b/modules/mesh-delivery-checker/internal/check/examiner_test.go index 1eedd5d..5cdf4cc 100644 --- a/modules/mesh-delivery-checker/internal/check/examiner_test.go +++ b/modules/mesh-delivery-checker/internal/check/examiner_test.go @@ -217,7 +217,8 @@ func caseOf(t testing.TB, pulls ...delivery.CandidatePull) *Case { if err != nil { t.Fatal(err) } - cs := CaseOf(c, map[string]string{repoA: trunkA, repoSDK: trunkS, "novox/mesh-controller": trunkA, "novox/mesh-catalog": trunkA}) + cs := CaseOf(c, map[string]string{repoA: trunkA, repoSDK: trunkS, "novox/mesh-controller": trunkA, "novox/mesh-catalog": trunkA, + "novox/mesh-host": trunkA, "novox/mesh-networking": trunkA}) if cs == nil { t.Fatal("no case") } diff --git a/modules/mesh-delivery-checker/internal/check/pins_test.go b/modules/mesh-delivery-checker/internal/check/pins_test.go index 97f949e..81a7616 100644 --- a/modules/mesh-delivery-checker/internal/check/pins_test.go +++ b/modules/mesh-delivery-checker/internal/check/pins_test.go @@ -81,7 +81,7 @@ func besideOf(t *testing.T, b *bench, repository string) map[string]BesideRef { } func TestTheSiblingsAreWhereTheTestsStateThem(t *testing.T) { // review D2, ADR 0484 clause 4 - const catalogue, host, controller = "novox/mesh-catalog", "novox/mesh-host", "novox/mesh-controller" + const catalogue, host, controller, networking = "novox/mesh-catalog", "novox/mesh-host", "novox/mesh-controller", "novox/mesh-networking" hostRuns := strings.Repeat("7", 40) b := newBench(t) b.ex.Trunks = trunksOf(t, map[string]string{SDKRepository: trunkS, catalogue: trunkA, host: trunkA2}) @@ -101,6 +101,14 @@ func TestTheSiblingsAreWhereTheTestsStateThem(t *testing.T) { // review D2, ADR if h := got[host]; h.Commit != hostRuns { t.Errorf("the node-engine beside mesh-sdk = %+v, want the commit the mesh runs %s", h, hostRuns) } + // ADR 0593: route-proxy's proofs of a composition moved into the node-engine's tests, which read its manifest in + // mesh-networking: beside a node-engine change, at the group's head when the group holds one, else at its trunk. + b = newBench(t) + b.ex.Trunks = trunksOf(t, map[string]string{SDKRepository: trunkS, catalogue: trunkA, host: trunkA2, networking: trunkA2}) + b.judge(t, caseOf(t, pullOf(host, 8, head1), pullOf(networking, 3, head2))) + if n := besideOf(t, b, host)[networking]; n.Commit != head2 || n.Ref != "refs/pull/3/head" { + t.Errorf("mesh-networking beside the node-engine in a group = %+v, want the member's head %s", n, head2) + } // Alone, mesh-sdk's tests read the catalogue's trunk, and the verdict names it. b = newBench(t) b.ex.Trunks = trunksOf(t, map[string]string{SDKRepository: trunkS, catalogue: trunkA, host: trunkA2})