diff --git a/cmd/mesh-controller/check_test.go b/cmd/mesh-controller/check_test.go index 608b6b69..6d323986 100644 --- a/cmd/mesh-controller/check_test.go +++ b/cmd/mesh-controller/check_test.go @@ -56,9 +56,15 @@ func TestModuleCheckJudgesBetweenTheManifestsGiven(t *testing.T) { } } -// The real catalogue passes the command, the way it passes the test that used to be the only check. +// The real catalogue passes the command, the way it passes the test that used to be the only check: the catalogue this +// controller is released with, captured in testdata/beside at the commit CAPTURED names. Not the clone a merge check puts +// beside, which is the catalogue's trunk even in a delivery group holding a catalogue pull request (ADR 0484 clause 4): +// a controller whose check reads a word that group's catalogue brings would fail on the trunk's catalogue before the +// group merges both (issue 774: the release's sdk refuses an offer that states no credential form, and the catalogue's +// trunk states none until the release's catalogue merges). Moving CAPTURED to the catalogue a change is released with is +// part of that change. func TestModuleCheckPassesTheCatalogue(t *testing.T) { - root := beside.Catalogue(t) + root := filepath.Join(beside.CapturedDir(t, "mesh-catalog"), "modules") paths, err := manifestsUnder(root) if err != nil || len(paths) == 0 { t.Fatalf("no manifests under %s: %v", root, err) diff --git a/internal/beside/beside.go b/internal/beside/beside.go index 3ae47abf..159d8867 100644 --- a/internal/beside/beside.go +++ b/internal/beside/beside.go @@ -53,6 +53,16 @@ func Dir(t testing.TB, repository string) string { t.Logf("judged against %s as cloned beside this check", dir) return dir } + t.Logf("no %s beside this check: a merge check judges %s against its own clone", Env, repository) + return CapturedDir(t, repository) +} + +// CapturedDir is the copy of the named repository captured in testdata/beside, laid out as Dir lays it out, whatever +// MESH_CHECK_BESIDE says: for a test that judges this repository against the commit it was released with, which a +// merge check does not clone (it clones the catalogue at its trunk even in a delivery group holding a catalogue pull +// request, ADR 0484 clause 4). +func CapturedDir(t testing.TB, repository string) string { + t.Helper() from := filepath.Join(Captured(), repository) if _, err := os.Stat(from); err != nil { t.Fatalf("no captured copy of %s at %s: %v", repository, from, err) @@ -81,8 +91,7 @@ func Dir(t testing.TB, repository string) string { if err != nil { t.Fatalf("the captured copy of %s could not be laid out: %v", repository, err) } - t.Logf("judged against the copy of %s captured in testdata/beside (see CAPTURED); a merge check "+ - "judges it against the repository's own clone", repository) + t.Logf("judged against the copy of %s captured in testdata/beside (see CAPTURED)", repository) return dir } diff --git a/testdata/beside/CAPTURED b/testdata/beside/CAPTURED index f84c54a4..9fb61a4d 100644 --- a/testdata/beside/CAPTURED +++ b/testdata/beside/CAPTURED @@ -7,7 +7,7 @@ The copy carries the catalogue's private details: domains, first names in module private addresses. That is acceptable while mesh-controller is private; if it ever goes public, this copy is a second place to clean besides the catalogue itself. -mesh-catalog 8ae8e88dddc86c646de4d1be35919d109ab4c779 modules/*/module.json, modules/*/files, modules/*/templates, predefined.json +mesh-catalog f3a57dcc56fb6c198095cafd11d0decff9f720c4 modules/*/module.json, modules/*/files, modules/*/templates, predefined.json mesh-host 9d9e3a46c4f5943cfffb413d962ce48b75e2fd39 examples/foundation-first-node.lock mesh-sdk 2da0de75c3f0087cff9c2f5ef789ca6dc3c59045 conformance/events/module-event.json diff --git a/testdata/beside/mesh-catalog/modules/gitea/module.json.captured b/testdata/beside/mesh-catalog/modules/gitea/module.json.captured index 69b88adb..2b197288 100644 --- a/testdata/beside/mesh-catalog/modules/gitea/module.json.captured +++ b/testdata/beside/mesh-catalog/modules/gitea/module.json.captured @@ -266,7 +266,8 @@ "env": { "DB_TYPE": "postgres", "USER_UID": "1000", - "USER_GID": "1000" + "USER_GID": "1000", + "SSH_MAX_STARTUPS": "100:30:200" }, "env-file": [ "${dir:state}/server.env" diff --git a/testdata/beside/mesh-catalog/modules/mesh-issues/files/settings.json b/testdata/beside/mesh-catalog/modules/mesh-issues/files/settings.json index 0231a55d..265fe2da 100644 --- a/testdata/beside/mesh-catalog/modules/mesh-issues/files/settings.json +++ b/testdata/beside/mesh-catalog/modules/mesh-issues/files/settings.json @@ -62,10 +62,13 @@ "mesh-catalog modules/mesh-build-node", "mesh-catalog modules/mesh-catalog", "mesh-catalog modules/mesh-cli", + "mesh-catalog modules/mesh-conditions", "mesh-catalog modules/mesh-config", "mesh-catalog modules/mesh-delivery", "mesh-catalog modules/mesh-delivery-gate", "mesh-catalog modules/mesh-files", + "mesh-catalog modules/mesh-hand-acts", + "mesh-catalog modules/mesh-healers", "mesh-catalog modules/mesh-issues", "mesh-catalog modules/mesh-knowledge", "mesh-catalog modules/mesh-mail", @@ -75,6 +78,7 @@ "mesh-catalog modules/mesh-provisioner", "mesh-catalog modules/mesh-provisioner-client", "mesh-catalog modules/mesh-reads", + "mesh-catalog modules/mesh-self-check", "mesh-catalog modules/mesh-vault", "mesh-catalog modules/mesh-watcher", "mesh-catalog modules/messenger", diff --git a/testdata/beside/mesh-catalog/modules/mesh-issues/module.json.captured b/testdata/beside/mesh-catalog/modules/mesh-issues/module.json.captured index d359bda2..196c586c 100644 --- a/testdata/beside/mesh-catalog/modules/mesh-issues/module.json.captured +++ b/testdata/beside/mesh-catalog/modules/mesh-issues/module.json.captured @@ -174,10 +174,13 @@ "mesh-catalog modules/mesh-build-node", "mesh-catalog modules/mesh-catalog", "mesh-catalog modules/mesh-cli", + "mesh-catalog modules/mesh-conditions", "mesh-catalog modules/mesh-config", "mesh-catalog modules/mesh-delivery", "mesh-catalog modules/mesh-delivery-gate", "mesh-catalog modules/mesh-files", + "mesh-catalog modules/mesh-hand-acts", + "mesh-catalog modules/mesh-healers", "mesh-catalog modules/mesh-issues", "mesh-catalog modules/mesh-knowledge", "mesh-catalog modules/mesh-mail", @@ -187,6 +190,7 @@ "mesh-catalog modules/mesh-provisioner", "mesh-catalog modules/mesh-provisioner-client", "mesh-catalog modules/mesh-reads", + "mesh-catalog modules/mesh-self-check", "mesh-catalog modules/mesh-vault", "mesh-catalog modules/mesh-watcher", "mesh-catalog modules/messenger",