Skip to content

Commit db014a8

Browse files
committed
chore: diagnostic CI dump — raw message list in assertion error [DO NOT MERGE]
1 parent 4a98ee2 commit db014a8

3 files changed

Lines changed: 36 additions & 20 deletions

File tree

.github/workflows/ovoscope.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ jobs:
2020
require_adapt: true
2121
require_padatious: true
2222
bus_coverage: true
23+
post_install_pip: "git+https://github.com/OpenVoiceOS/ovoscope@diagnostic/capture-dump"
2324
bus_coverage_include: ""
2425
bus_coverage_exclude: "^Thread-|^intents$|^skills$|^__core__$"
2526
pr_comment: true

test/end2end/test_stop.py

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,18 @@ def skill_stop_lifecycle(skill_id):
8888
return [
8989
Message("stop.openvoiceos.activate", {},
9090
{"skill_id": "stop.openvoiceos"}),
91+
# §9.2 matched notification precedes the dispatch
92+
Message(INTENT_MATCHED,
93+
{"skill_id": "stop.openvoiceos", "intent_name": "stop:skill"},
94+
{"skill_id": "stop.openvoiceos"}),
95+
# §8.1 orchestrator handler-start
96+
Message(HANDLER_START,
97+
{"skill_id": "stop.openvoiceos", "intent_name": "skill"},
98+
{"skill_id": "stop.openvoiceos"}),
9199
Message("stop:skill",
92100
{"skill_id": skill_id},
93101
{"skill_id": "stop.openvoiceos"}),
94-
# StopService wraps handle_skill_stop in HandlerLifecycle (the framework
95-
# done-signal trio the orchestrator translates into the §8 terminal)
102+
# StopService wraps handle_skill_stop in HandlerLifecycle (legacy done-signal)
96103
Message("mycroft.skill.handler.start",
97104
{"name": "StopService.handle_skill_stop"},
98105
{"skill_id": "stop.openvoiceos"}),
@@ -101,27 +108,22 @@ def skill_stop_lifecycle(skill_id):
101108
Message("mycroft.skill.handler.complete",
102109
{"name": "StopService.handle_skill_stop"},
103110
{"skill_id": "stop.openvoiceos"}),
104-
# §9.5 end-marker
111+
# §8 orchestrator terminal + §9.5 end-marker
112+
Message(HANDLER_COMPLETE,
113+
{"skill_id": "stop.openvoiceos", "intent_name": "skill"},
114+
{"skill_id": "stop.openvoiceos"}),
105115
Message(UTTERANCE_HANDLED, {},
106116
{"skill_id": "stop.openvoiceos"}),
107117
]
108118

109119

110120
# Shared End2EndTest config for the skill-stop (ping-pong) scenarios: isolate the
111121
# stop dispatch lifecycle and wait for BOTH utterances to terminate before filtering.
112-
# The §8 SPEC trio (ovos.intent.matched/handler.start/handler.complete) is filtered:
113-
# in these concurrent-lifecycle scenarios under heavy parallel load it is not
114-
# reliably observed alongside the legacy done-signal, so it is asserted in the
115-
# single-lifecycle adapt/padatious suites instead. The legacy mycroft.skill.handler
116-
# done-signal trio (which the orchestrator translates into the §8 terminal) IS
117-
# asserted above.
118122
SKILL_STOP_LIFECYCLE_KWARGS = dict(
119123
skill_id="stop.openvoiceos",
120124
eof_msgs=[UTTERANCE_HANDLED],
121125
eof_count=2,
122126
test_active_skills=False,
123-
ignore_messages=[INTENT_MATCHED, HANDLER_START, HANDLER_COMPLETE, HANDLER_ERROR,
124-
"ovos.skills.settings_changed"],
125127
)
126128

127129

@@ -398,6 +400,12 @@ def make_it_count():
398400
stop_skill_from_global = [
399401
Message("stop.openvoiceos.activate", {},
400402
{"skill_id": "stop.openvoiceos"}),
403+
Message(INTENT_MATCHED,
404+
{"skill_id": "stop.openvoiceos", "intent_name": "stop:global"},
405+
{"skill_id": "stop.openvoiceos"}),
406+
Message(HANDLER_START,
407+
{"skill_id": "stop.openvoiceos", "intent_name": "global"},
408+
{"skill_id": "stop.openvoiceos"}),
401409
Message("stop:global", {},
402410
{"skill_id": "stop.openvoiceos"}),
403411
Message("mycroft.skill.handler.start",
@@ -408,15 +416,21 @@ def make_it_count():
408416
Message("mycroft.skill.handler.complete",
409417
{"name": "StopService.handle_global_stop"},
410418
{"skill_id": "stop.openvoiceos"}),
419+
Message(HANDLER_COMPLETE,
420+
{"skill_id": "stop.openvoiceos", "intent_name": "global"},
421+
{"skill_id": "stop.openvoiceos"}),
411422
Message(UTTERANCE_HANDLED, {},
412423
{"skill_id": "stop.openvoiceos"}),
413424
]
414425
test = End2EndTest(
415426
minicroft=minicroft,
416427
skill_ids=[],
428+
skill_id="stop.openvoiceos",
429+
eof_msgs=[UTTERANCE_HANDLED],
430+
eof_count=2,
431+
test_active_skills=False,
417432
source_message=message,
418433
expected_messages=stop_skill_from_global,
419-
**SKILL_STOP_LIFECYCLE_KWARGS,
420434
)
421435
test.execute()
422436
finally:

test/end2end/test_stop_refactor.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -309,15 +309,15 @@ def make_it_count():
309309
# which completes asynchronously when the daemon unwinds. The skill_id
310310
# filter isolates the stop dispatch; eof_count=2 lets capture span both
311311
# utterances' ovos.utterance.handled before filtering.
312-
# The §8 SPEC trio (ovos.intent.matched/handler.start/handler.complete) is
313-
# filtered via ignore_messages: in this concurrent-lifecycle scenario under
314-
# heavy parallel load it is not reliably observed alongside the legacy
315-
# done-signal, so it is asserted in the single-lifecycle adapt/padatious
316-
# suites instead. The legacy mycroft.skill.handler done-signal trio (which
317-
# the orchestrator translates into the §8 terminal) IS asserted here.
318312
expected = [
319313
Message("stop.openvoiceos.activate", {},
320314
{"skill_id": "stop.openvoiceos"}),
315+
Message(INTENT_MATCHED,
316+
{"skill_id": "stop.openvoiceos", "intent_name": "stop:skill"},
317+
{"skill_id": "stop.openvoiceos"}),
318+
Message(HANDLER_START,
319+
{"skill_id": "stop.openvoiceos", "intent_name": "skill"},
320+
{"skill_id": "stop.openvoiceos"}),
321321
Message("stop:skill", {"skill_id": self.skill_id},
322322
{"skill_id": "stop.openvoiceos"}),
323323
Message("mycroft.skill.handler.start",
@@ -328,6 +328,9 @@ def make_it_count():
328328
Message("mycroft.skill.handler.complete",
329329
{"name": "StopService.handle_skill_stop"},
330330
{"skill_id": "stop.openvoiceos"}),
331+
Message(HANDLER_COMPLETE,
332+
{"skill_id": "stop.openvoiceos", "intent_name": "skill"},
333+
{"skill_id": "stop.openvoiceos"}),
331334
Message(UTTERANCE_HANDLED, {},
332335
{"skill_id": "stop.openvoiceos"}),
333336
]
@@ -339,8 +342,6 @@ def make_it_count():
339342
eof_msgs=[UTTERANCE_HANDLED],
340343
eof_count=2,
341344
test_active_skills=False,
342-
ignore_messages=[INTENT_MATCHED, HANDLER_START, HANDLER_COMPLETE,
343-
HANDLER_ERROR, "ovos.skills.settings_changed"],
344345
source_message=message,
345346
expected_messages=expected,
346347
)

0 commit comments

Comments
 (0)