node-tools: only a call pattern names a caller, and a fall-back for want of a responder is said (hq issue 365, review)
mesh/merge-gate pass: builds mesh-tools, node-tools → ace, g14, novox, shanks; no bus step; every machine composes with the change as it did without (4 of …
mesh/repo-check pass: THE CHANGE ALTERS ITS OWN CHECK (merge-check.sh): main's version judged it; the change's judges the pull requests after it merges; it…
mesh/delivery delivered

callerOn reads a caller only under the call kind, so a tool subscription ending
in a wildcard never yields one. A caller-named call that reached nobody is said
once per subject before it is asked on the old subject, so a runtime or grant
that drifted behind is seen rather than a quiet unproven. The caller tests wait
for their bundle's exit, which reads the launcher's restart pauses another test
sets.
This commit is contained in:
2026-10-11 11:22:29 +02:00
parent ab0f888d67
commit 541de48e04
4 changed files with 89 additions and 6 deletions
+10 -2
View File
@@ -27,7 +27,7 @@ func TestACallOnTheCallerNamedSubjectReachesTheModuleWithItsCaller(t *testing.T)
if err != nil {
t.Fatal(err)
}
defer stop()
defer settled(stop)
asker, err := bus.Connect(bus.Credential{URL: mt.URL(t), Module: "node-tools", Node: "shanks",
User: "shanks.node-tools", Password: "unused"})
if err != nil {
@@ -65,7 +65,7 @@ func TestTheSubjectThatNamesNoCallerStillWorksAndNamesNone(t *testing.T) {
if err != nil {
t.Fatal(err)
}
defer stop()
defer settled(stop)
old, err := nats.Connect(mt.URL(t))
if err != nil {
t.Fatal(err)
@@ -89,3 +89,11 @@ func TestTheSubjectThatNamesNoCallerStillWorksAndNamesNone(t *testing.T) {
}
}
}
// settled stops a runtime and waits for its bundle's exit to be handled: the launcher reads its restart pauses
// (launch.RestartFirst) as a bundle exits, and a later test in this package sets them, so a test that leaves its
// bundle exiting behind it races the next one.
func settled(stop func()) {
stop()
time.Sleep(500 * time.Millisecond)
}