diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dea7a9..2984df7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ Versioning]. display - PR #444 ([@chenzhiy2001]) - resolve the issue of not being able to set the GDB binary with a path on Windows - PR #448 ([@henryriley0]) +- add qt unit test ([@henryriley0]) ## [0.27.0] - 2024-02-07 diff --git a/src/test/unit/gdb_expansion.test.ts b/src/test/unit/gdb_expansion.test.ts index a455b87..dc4b8ff 100644 --- a/src/test/unit/gdb_expansion.test.ts +++ b/src/test/unit/gdb_expansion.test.ts @@ -224,6 +224,133 @@ suite("GDB Value Expansion", () => { } ]); }); + test("QT Complex node", () => { + const node = `{{ref = {atomic = {_q_value = {> = {static _S_alignment = 4, _M_i = -1}, }}}, size = 0, static shared_null = }, {ref = {atomic = {_q_value = {> = {static _S_alignment = 4, _M_i = 0}, }}}, size = 0, static shared_null = }}`; + assert.strictEqual(isExpandable(node), 1); + const variables = expandValue(variableCreate, node); + assert.deepStrictEqual(variables, [ + { + "name": "[0]", + "value": "Object", + "variablesReference": { + "expanded": [ + { + "name": "ref", + "value": "Object", + "variablesReference": { + "expanded": [ + { + "name": "atomic", + "value": "Object", + "variablesReference": { + "expanded": [ + { + "name": "_q_value", + "value": "Object", + "variablesReference": { + "expanded": [ + { + "name": "std::__atomic_base>", + "value": "Object", + "variablesReference": { + "expanded": [ + { + "name": "_S_alignment", + "value": "4", + "variablesReference": 0 + }, + { + "name": "_M_i", + "value": "-1", + "variablesReference": 0 + } + ] + } + } + ] + } + } + ] + } + } + ] + } + }, + { + "name": "size", + "value": "0", + "variablesReference": 0 + }, + { + "name": "shared_null", + "value": "", + "variablesReference": 0 + } + ] + } + }, + { + "name": "[1]", + "value": "Object", + "variablesReference": { + "expanded": [ + { + "name": "ref", + "value": "Object", + "variablesReference": { + "expanded": [ + { + "name": "atomic", + "value": "Object", + "variablesReference": { + "expanded": [ + { + "name": "_q_value", + "value": "Object", + "variablesReference": { + "expanded": [ + { + "name": "std::__atomic_base>", + "value": "Object", + "variablesReference": { + "expanded": [ + { + "name": "_S_alignment", + "value": "4", + "variablesReference": 0 + }, + { + "name": "_M_i", + "value": "0", + "variablesReference": 0 + } + ] + } + } + ] + } + } + ] + } + } + ] + } + }, + { + "name": "size", + "value": "0", + "variablesReference": 0 + }, + { + "name": "shared_null", + "value": "", + "variablesReference": 0 + } + ] + } + } + ]); + }); test("Simple node with errors", () => { const node = `{_enableMipMaps = false, _minFilter = , _magFilter = , _wrapX = , _wrapY = , _inMode = 6408, _mode = 6408, _id = 1, _width = 1024, _height = 1024}`; assert.strictEqual(isExpandable(node), 1);