Skip to content
Closed
Changes from 1 commit
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
8c0c1b3
feat(report): expose read-only canonical static DataSet to bound RCB …
masarray Sep 27, 2026
11ce02f
feat(report): fail-closed no-write static RCB selection from ordered …
masarray Sep 27, 2026
4f2f7c0
feat(browser): post-discovery Signal Catalog and no-write static Data…
masarray Sep 27, 2026
c7acc9d
feat(browser): inspect ordered Dataset Signals and bound RCB without …
masarray Sep 27, 2026
281423f
test(report): exercise positive and fail-closed static Dataset Signal…
masarray Sep 27, 2026
44e8faa
test(browser): lock Signal Catalog and read-only Dataset-to-RCB workf…
masarray Sep 27, 2026
74d5a1a
test(browser): assert status routing in workspace rather than pane
masarray Sep 27, 2026
d9ede09
fix(report): require verified non-deletable static directory for no-w…
masarray Sep 27, 2026
c2d6a44
fix(browser): only offer static RCB pivot for verified non-deletable …
masarray Sep 27, 2026
aaf6d59
test(report): lock verified static directory prerequisites for read-o…
masarray Sep 27, 2026
d33fdf6
fix(browser): offer discovery catalog only on active IED; defer hidde…
masarray Sep 27, 2026
cb3a052
test(browser): keep background IED catalog from intercepting active tab
masarray Sep 27, 2026
4887b3a
test(browser): render discovery Signal Catalog and verify canonical o…
masarray Sep 27, 2026
260567f
fix(report): preserve verified SCL DataSet binding in offline RCB inv…
masarray Sep 27, 2026
d8e81f3
test(browser): diagnose and assert offline RCB binding provenance wit…
masarray Sep 27, 2026
93ef679
fix(browser): close model-scoped Signal Catalog on tab switch or sour…
masarray Sep 27, 2026
fd7c9f9
test(browser): assert discovery popup closes on tab change without lo…
masarray Sep 27, 2026
1d3899e
test(browser): prevent overlay from closed or background IED context
masarray Sep 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
test(report): exercise positive and fail-closed static Dataset Signal…
…s pivot before GI
  • Loading branch information
masarray committed Sep 27, 2026
commit 281423f607ed72158f0b03f9cfb39b1ed94e0189
27 changes: 26 additions & 1 deletion apps/ied_simulator/src/ied_report_workspace_qa.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,8 @@ int main(int argc, char* argv[]) {
MmsReportController negative;
const bool noConnectionEnableRejected = !negative.enableSelected(true);
const bool inactiveDisableRejected = !negative.disableSelected();
const bool invalidSelectionRejected = !negative.selectRcb(0) && !negative.selectDataSet(0);
const bool invalidSelectionRejected = !negative.selectRcb(0) && !negative.selectDataSet(0) &&
!negative.selectStaticRcbForDataSet(0);
const bool authoredEnableRejected = !negative.enableSelectedAuthored(
QStringLiteral("LD0/LLN0.Test"),
{QStringLiteral("data-change")},
Expand Down Expand Up @@ -322,6 +323,30 @@ int main(int argc, char* argv[]) {
<< "datasets=" + sets.join(QLatin1Char(','));
return 10;
}
// Dataset Signals → Reports must only select a canonical static match.
// Selecting is read-only and must not enable reporting or rewrite DatSet.
const int staticDataSetRow = reports.selectedDataSetIndex();
const auto originalRcb = reports.selectedRcb().value(QStringLiteral("reference")).toString();
const bool staticPivotValid = staticDataSetRow >= 0 &&
reports.selectStaticRcbForDataSet(staticDataSetRow) &&
reports.selectedDataSetIndex() == staticDataSetRow &&
!reports.selectedDataSetMembers().isEmpty() &&
!reports.active();
const int matchedRcb = reports.selectedRcbIndex();
const bool invalidPivotRejected =
!reports.selectStaticRcbForDataSet(-1) &&
!reports.selectStaticRcbForDataSet(dataSets.size()) &&
reports.selectedRcbIndex() == matchedRcb;
if (!staticPivotValid || !invalidPivotRejected || !reports.selectRcb(selected) ||
reports.selectedRcb().value(QStringLiteral("reference")).toString() != originalRcb) {
qCritical() << "REPORTS_WORKBENCH_FAIL dataset_signals_static_rcb_pivot"
<< staticDataSetRow << matchedRcb << originalRcb;
return 29;
}
qInfo() << "DATASET_SIGNALS_STATIC_PIVOT_PASS"
<< "dataset=" << staticDataSetRow << "bound_rcb=" << matchedRcb
<< "read_only=true no_gi=true";

const int memberCount = reports.selectedDataSetMembers().size();

if (!reports.enableSelected(true) ||
Expand Down
Loading