Index: unittests/tst_utilities.cpp =================================================================== diff -u -r710b55a51c2f10c639d33034282960c190eb24ef -rae97f70129df818530bcb70c934c42fa28eb6034 --- unittests/tst_utilities.cpp (.../tst_utilities.cpp) (revision 710b55a51c2f10c639d33034282960c190eb24ef) +++ unittests/tst_utilities.cpp (.../tst_utilities.cpp) (revision ae97f70129df818530bcb70c934c42fa28eb6034) @@ -68,6 +68,106 @@ QCOMPARE(Format::fromVariant("@"), "@"); } +void tst_utilities::tst_fromvariant_ByteArray() +{ + QByteArray ba; + ba += '@'; + ba += '\0'; + ba += '\0'; + ba += '\0'; + QVariant var(ba); + QCOMPARE(Format::fromVariant(var), ba); +} + +void tst_utilities::tst_fromvariant_Float() +{ + float f = 12.5; + QByteArray ba; + ba += '\0'; + ba += '\0'; + ba += 0x48; + ba += 0x41; + QCOMPARE(Format::fromVariant(f).toHex(), ba.toHex()); +} + +void tst_utilities::tst_fromvariant_UInt() +{ + quint32 ui = 65500; + QByteArray ba; + ba += 0xDC; + ba += 0xFF; + ba += '\0'; + ba += '\0'; + QCOMPARE(Format::fromVariant(ui).toHex(), ba.toHex()); +} + +void tst_utilities::tst_fromvariant_Int_Pos() +{ + qint32 pi = 32700; + QByteArray ba; + ba += 0xBC; + ba += 0x7F; + ba += '\0'; + ba += '\0'; + QCOMPARE(Format::fromVariant(pi).toHex(), ba.toHex()); +} + +void tst_utilities::tst_fromvariant_Int_Neg() +{ + qint32 ni = -32700; + QByteArray ba; + ba += 0x44; + ba += 0x80; + ba += 0xFF; + ba += 0xFF; + QCOMPARE(Format::fromVariant(ni).toHex(), ba.toHex()); +} + +void tst_utilities::tst_fromvariant_List() +{ + quint32 ui = 65500 ; + float f = 12.5 ; + qint32 pi = 32700 ; + qint32 ni = -32700 ; + QVariantList vl; + vl += 12.5; // float with no type is double in QVariant + vl += f; + vl += ui; + vl += pi; + vl += ni; + + QByteArray ba; + ba += '\0'; + ba += '\0'; + ba += 0x48; + ba += 0x41; + ba += '\0'; + ba += '\0'; + ba += 0x48; + ba += 0x41; + ba += 0xDC; + ba += 0xFF; + ba += '\0'; + ba += '\0'; + ba += 0xBC; + ba += 0x7F; + ba += '\0'; + ba += '\0'; + ba += 0x44; + ba += 0x80; + ba += 0xFF; + ba += 0xFF; + QCOMPARE(Format::fromVariant(vl).toHex(), ba.toHex()); +} + +void tst_utilities::tst_fromvariant_Else() +{ + bool b = true; + QByteArray ba; + ba += 0x01; + QCOMPARE(Format::fromVariant(b).toHex(), ba.toHex()); +} + void tst_utilities::tst_getValue_len() { Types::S32 vFlowSetPoint; @@ -77,4 +177,25 @@ QVERIFY( ! Types::getValue<>( data, index, vFlowSetPoint ) ); } +void tst_utilities::tst_safeIncrement_StepZero() +{ + uchar c = 0; + Types::safeIncrement(c, 0); + QCOMPARE(c, 1); +} +void tst_utilities::tst_safeIncrement_GtMaxValue_Step10() +{ + uchar c = 250; + Types::safeIncrement(c, 10); + QCOMPARE(c, 4); +} + +void tst_utilities::tst_safeIncrement_GtMaxValue_Step1() +{ + uchar c = 255; + Types::safeIncrement(c); + QCOMPARE(c, 0); +} + +