MCPcopy Create free account
hub / github.com/IChooseYou/Reclass / testNestedStruct

Method testNestedStruct

tests/test_compose.cpp:259–328  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

257 }
258
259 void testNestedStruct() {
260 NodeTree tree;
261 tree.baseAddress = 0;
262
263 Node root;
264 root.kind = NodeKind::Struct;
265 root.name = "Outer";
266 root.parentId = 0;
267 root.offset = 0;
268 int ri = tree.addNode(root);
269 uint64_t rootId = tree.nodes[ri].id;
270
271 Node f1;
272 f1.kind = NodeKind::UInt32;
273 f1.name = "flags";
274 f1.parentId = rootId;
275 f1.offset = 0;
276 tree.addNode(f1);
277
278 Node inner;
279 inner.kind = NodeKind::Struct;
280 inner.name = "Inner";
281 inner.parentId = rootId;
282 inner.offset = 4;
283 int ii = tree.addNode(inner);
284 uint64_t innerId = tree.nodes[ii].id;
285
286 Node f2;
287 f2.kind = NodeKind::UInt16;
288 f2.name = "x";
289 f2.parentId = innerId;
290 f2.offset = 0;
291 tree.addNode(f2);
292
293 Node f3;
294 f3.kind = NodeKind::UInt16;
295 f3.name = "y";
296 f3.parentId = innerId;
297 f3.offset = 2;
298 tree.addNode(f3);
299
300 NullProvider prov;
301 ComposeResult result = compose(tree, prov);
302
303 // CommandRow + flags + Inner header + x + y + Inner footer + root footer = 7
304 QCOMPARE(result.meta.size(), 7);
305
306 // flags field (depth 1)
307 QCOMPARE(result.meta[1].lineKind, LineKind::Field);
308 QCOMPARE(result.meta[1].depth, 1);
309
310 // Inner header (depth 1, fold head)
311 QCOMPARE(result.meta[2].lineKind, LineKind::Header);
312 QCOMPARE(result.meta[2].depth, 1);
313 QVERIFY(result.meta[2].foldHead);
314 QCOMPARE(result.meta[2].foldLevel, 0x401 | 0x2000);
315
316 // Inner fields at depth 2

Callers

nothing calls this directly

Calls 3

composeFunction · 0.85
addNodeMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected