| 4 | using namespace rcx; |
| 5 | |
| 6 | class TestFormat : public QObject { |
| 7 | Q_OBJECT |
| 8 | private slots: |
| 9 | void testTypeName() { |
| 10 | QString s = fmt::typeName(NodeKind::Float); |
| 11 | QVERIFY(s.trimmed() == "float"); |
| 12 | QCOMPARE(s.size(), 14); // kColType |
| 13 | } |
| 14 | |
| 15 | void testFmtInt32() { |
| 16 | // fmtInt32 outputs hex representation (0xffffffd6 for -42) |
| 17 | QCOMPARE(fmt::fmtInt32(-42), QString("0xffffffd6")); |
| 18 | QCOMPARE(fmt::fmtInt32(0), QString("0x0")); |
| 19 | } |
| 20 | |
| 21 | void testFmtFloat() { |
| 22 | QString s = fmt::fmtFloat(3.14159f); |
| 23 | QVERIFY(s.contains("3.14")); |
| 24 | } |
| 25 | |
| 26 | void testFmtBool() { |
| 27 | QCOMPARE(fmt::fmtBool(1), QString("true")); |
| 28 | QCOMPARE(fmt::fmtBool(0), QString("false")); |
| 29 | } |
| 30 | |
| 31 | void testFmtPointer64_null() { |
| 32 | QCOMPARE(fmt::fmtPointer64(0), QString("-> NULL")); |
| 33 | } |
| 34 | |
| 35 | void testFmtPointer64_nonNull() { |
| 36 | QString s = fmt::fmtPointer64(0x400000); |
| 37 | QVERIFY(s.startsWith("-> 0x")); |
| 38 | QVERIFY(s.contains("400000")); |
| 39 | } |
| 40 | |
| 41 | void testFmtOffsetMargin_primary() { |
| 42 | QCOMPARE(fmt::fmtOffsetMargin(0x10, false), QString("00000010 ")); |
| 43 | QCOMPARE(fmt::fmtOffsetMargin(0, false), QString("00000000 ")); |
| 44 | } |
| 45 | |
| 46 | void testFmtOffsetMargin_continuation() { |
| 47 | QCOMPARE(fmt::fmtOffsetMargin(0x10, true), QString(" \u00B7 ")); |
| 48 | } |
| 49 | |
| 50 | void testFmtOffsetMargin_kernelAddr() { |
| 51 | QCOMPARE(fmt::fmtOffsetMargin(0xFFFFF80012345678ULL, false, 16), |
| 52 | QString("FFFFF80012345678 ")); |
| 53 | QCOMPARE(fmt::fmtOffsetMargin(0x10, false, 16), |
| 54 | QString("0000000000000010 ")); |
| 55 | QCOMPARE(fmt::fmtOffsetMargin(0x10, false, 4), |
| 56 | QString("0010 ")); |
| 57 | } |
| 58 | |
| 59 | void testFmtStructHeader() { |
| 60 | Node n; |
| 61 | n.kind = NodeKind::Struct; |
| 62 | n.name = "Test"; |
| 63 | // Expanded header should contain opening brace |