MCPcopy Create free account
hub / github.com/KDE/kdevelop / testParseLine

Method testParseLine

plugins/debuggercommon/tests/test_miparser.cpp:156–210  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

154
155
156void TestMIParser::testParseLine()
157{
158 QFETCH(QByteArray, line);
159 QFETCH(int, recordKind);
160 QFETCH(QVariant, recordData);
161
162 KDevMI::MI::MIParser m_parser;
163
164 KDevMI::MI::FileSymbol file;
165 file.contents = line;
166
167 std::unique_ptr<KDevMI::MI::Record> record(m_parser.parse(&file));
168 QVERIFY(record != nullptr);
169 QCOMPARE((int)record->kind, recordKind);
170
171 switch(recordKind) {
172 case KDevMI::MI::Record::Result: {
173 const auto& resultRecord = static_cast<KDevMI::MI::ResultRecord&>(*record);
174 const auto resultData = recordData.value<ResultRecordData>();
175
176 QCOMPARE(resultRecord.token, resultData.token);
177 QCOMPARE(resultRecord.reason, resultData.reason);
178
179 for (const auto& result : resultData.results) {
180 QVERIFY(resultRecord.hasField(result.name));
181 doTestResult(resultRecord[result.name], result.value);
182 }
183 break;
184 }
185 case KDevMI::MI::Record::Async: {
186 const auto& asyncRecord = static_cast<KDevMI::MI::AsyncRecord&>(*record);
187 const auto asyncData = recordData.value<AsyncRecordData>();
188
189 QCOMPARE((int)asyncRecord.subkind, asyncData.subkind);
190 QCOMPARE(asyncRecord.reason, asyncData.reason);
191
192 for (const auto& result : asyncData.results) {
193 QVERIFY(asyncRecord.hasField(result.name));
194 doTestResult(asyncRecord[result.name], result.value);
195 }
196 break;
197 }
198 case KDevMI::MI::Record::Stream: {
199 const auto& streamRecord = static_cast<KDevMI::MI::StreamRecord&>(*record);
200 const auto streamData = recordData.value<StreamRecordData>();
201
202 QCOMPARE((int)streamRecord.subkind, streamData.subkind);
203 QCOMPARE(streamRecord.message, streamData.message);
204 break;
205 }
206 case KDevMI::MI::Record::Prompt:
207 break;
208 }
209
210}
211
212QTEST_GUILESS_MAIN(TestMIParser)
213

Callers

nothing calls this directly

Calls 2

hasFieldMethod · 0.80
parseMethod · 0.45

Tested by

no test coverage detected