Skip to content

Commit 1eb60bc

Browse files
committed
test: dump P2 discovery evidence before static selection
1 parent 27fab48 commit 1eb60bc

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

‎.github/scripts/agent_p2_reporting_repair.py‎

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,49 @@ def replace_once(path: str, old: str, new: str) -> None:
8686
' evidence = re.search(r"REPORT_EVIDENCE received=(\\d+) decodeFailures=(\\d+)", report_trial.stdout)\n',
8787
)
8888

89+
# Diagnostic inventory is intentionally part of the trial output. It makes a
90+
# failed interoperability selection actionable: whether NameList inventory,
91+
# RptEna/DatSet reads, or DataSet directory evidence is incomplete is visible
92+
# before the selector makes a decision.
93+
replace_once(
94+
"tools/static_rcb_trial.cpp",
95+
" auto discovery = live_session.discover(discovery_options);\n\n"
96+
" mms::MmsStaticReportSessionOptions session_options;\n",
97+
" auto discovery = live_session.discover(discovery_options);\n"
98+
" std::cout << \"DISCOVERY_REPORTING inventoryRcb=\"\n"
99+
" << discovery.report_inventory.report_controls.size()\n"
100+
" << \" probedRcb=\" << discovery.report_controls.size()\n"
101+
" << \" inventoryDataSet=\" << discovery.report_inventory.data_sets.size()\n"
102+
" << \" directoryDataSet=\" << discovery.data_set_directories.size() << '\\n';\n"
103+
" for (const auto& evidence : discovery.report_controls) {\n"
104+
" std::cout << \"DISCOVERY_RCB ref=\" << evidence.candidate.reference\n"
105+
" << \" mode=\" << evidence.candidate.mode()\n"
106+
" << \" success=\" << (evidence.success() ? \"true\" : \"false\");\n"
107+
" if (evidence.state) {\n"
108+
" const auto& state = *evidence.state;\n"
109+
" std::cout << \" rptEna=\"\n"
110+
" << (state.report_enabled ? (*state.report_enabled ? \"true\" : \"false\") : \"unset\")\n"
111+
" << \" datSet=\" << state.data_set_reference\n"
112+
" << \" resv=\"\n"
113+
" << (state.reserved ? (*state.reserved ? \"true\" : \"false\") : \"unset\")\n"
114+
" << \" diagnostics=\" << state.diagnostics.size();\n"
115+
" for (const auto& diagnostic : state.diagnostics) {\n"
116+
" std::cout << \" [\" << diagnostic << ']';\n"
117+
" }\n"
118+
" } else {\n"
119+
" std::cout << \" error=\" << evidence.error;\n"
120+
" }\n"
121+
" std::cout << '\\n';\n"
122+
" }\n"
123+
" for (const auto& evidence : discovery.data_set_directories) {\n"
124+
" std::cout << \"DISCOVERY_DATASET ref=\" << evidence.candidate.reference\n"
125+
" << \" success=\" << (evidence.success() ? \"true\" : \"false\")\n"
126+
" << \" members=\"\n"
127+
" << (evidence.directory ? evidence.directory->members.size() : 0U)\n"
128+
" << \" error=\" << evidence.error << '\\n';\n"
129+
" }\n"
130+
" std::cout.flush();\n\n"
131+
" mms::MmsStaticReportSessionOptions session_options;\n",
132+
)
133+
89134
print("P2 reporting repair applied")

0 commit comments

Comments
 (0)