MCPcopy Create free account
hub / github.com/aethersdr/AetherSDR / main

Function main

tests/flex_waveform_model_test.cpp:38–142  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

36} // namespace
37
38int main(int argc, char** argv)
39{
40 QCoreApplication app(argc, argv);
41
42 // ── installed_list — two entries with DEL separator ────────────────────
43 {
44 FlexWaveformModel m;
45 QSignalSpy spy(&m, &FlexWaveformModel::waveformsChanged);
46
47 // Entry format: name<DEL>version (DEL = 0x7F, ASCII 127)
48 const QString list = QString("FREEDV") + QChar(0x7F) + "v1"
49 + ","
50 + QString("RTTY") + QChar(0x7F) + "v2";
51 m.handleInstalledList(makeKvs({{"installed_list", list}}));
52
53 report("installedList: waveformsChanged emitted", spy.size() == 1);
54 report("installedList: two entries", m.waveforms().size() == 2);
55 report("installedList: first name = FREEDV", m.waveforms()[0].name == "FREEDV");
56 report("installedList: first version = v1", m.waveforms()[0].version == "v1");
57 report("installedList: first isContainer = false", !m.waveforms()[0].isContainer);
58 report("installedList: second name = RTTY", m.waveforms()[1].name == "RTTY");
59 report("installedList: displayName = 'RTTY v2'", m.waveforms()[1].displayName() == "RTTY v2");
60 }
61
62 // ── installed_list — empty entry is skipped without crash ──────────────
63 {
64 FlexWaveformModel m;
65
66 const QString list = QString("FREEDV") + QChar(0x7F) + "v1"
67 + ",," // empty middle entry
68 + QString("RTTY") + QChar(0x7F) + "v2";
69 m.handleInstalledList(makeKvs({{"installed_list", list}}));
70
71 report("installedList: empty entry skipped", m.waveforms().size() == 2);
72 }
73
74 // ── container add ──────────────────────────────────────────────────────
75 {
76 FlexWaveformModel m;
77 QSignalSpy spy(&m, &FlexWaveformModel::waveformsChanged);
78
79 m.handleContainerStatus(makeKvs({{"name", "MyWaveform"}, {"version", "2.1"}}));
80
81 report("containerAdd: waveformsChanged emitted", spy.size() == 1);
82 report("containerAdd: one entry", m.waveforms().size() == 1);
83 report("containerAdd: name = MyWaveform", m.waveforms()[0].name == "MyWaveform");
84 report("containerAdd: version = 2.1", m.waveforms()[0].version == "2.1");
85 report("containerAdd: isContainer = true", m.waveforms()[0].isContainer);
86 }
87
88 // ── container remove (bare-word 'removed' key) ─────────────────────────
89 {
90 FlexWaveformModel m;
91 QSignalSpy spy(&m, &FlexWaveformModel::waveformsChanged);
92
93 m.handleContainerStatus(makeKvs({{"name", "MyWaveform"}, {"version", "2.1"}}));
94 spy.clear();
95

Callers

nothing calls this directly

Calls 12

makeKvsFunction · 0.85
handleInstalledListMethod · 0.80
handleContainerStatusMethod · 0.80
handleWfpStatusMethod · 0.80
wfpPoweredMethod · 0.80
wfpReadyMethod · 0.80
wfpIpAddressMethod · 0.80
reportFunction · 0.70
sizeMethod · 0.45
displayNameMethod · 0.45
clearMethod · 0.45
isEmptyMethod · 0.45

Tested by

no test coverage detected