@@ -351,6 +351,7 @@ void StringUtilsTest::testIntToHexString() {
351351 OLA_ASSERT_EQ (string (" 0x0001" ), IntToHexString ((uint16_t )0x0001 ));
352352 OLA_ASSERT_EQ (string (" 0xabcd" ), IntToHexString ((uint16_t )0xABCD ));
353353 OLA_ASSERT_EQ (string (" 0xdeadbeef" ), IntToHexString ((uint32_t )0xDEADBEEF ));
354+ // Deliberately no IntToHexString(uint64_t) or test as its deprecated
354355
355356 unsigned int i = 0x42 ;
356357 OLA_ASSERT_EQ (string (" 0x00000042" ), IntToHexString (i));
@@ -381,6 +382,10 @@ void StringUtilsTest::testIntToHexString() {
381382 OLA_ASSERT_EQ (string (" 0xdeadbeef" ), str.str ());
382383 str.str (" " );
383384
385+ str << ToHex ((uint64_t )0xDEADBEEFFEEDFACE );
386+ OLA_ASSERT_EQ (string (" 0xdeadbeeffeedface" ), str.str ());
387+ str.str (" " );
388+
384389 str << ToHex (i);
385390 OLA_ASSERT_EQ (string (" 0x00000042" ), str.str ());
386391 str.str (" " );
@@ -552,6 +557,9 @@ void StringUtilsTest::testStringToUInt() {
552557 OLA_ASSERT_EQ (65537u , value);
553558 OLA_ASSERT_TRUE (StringToInt (" 4294967295" , &value));
554559 OLA_ASSERT_EQ (4294967295U , value);
560+ uint64_t value2;
561+ OLA_ASSERT_TRUE (StringToInt (" 77000000000" , &value2));
562+ OLA_ASSERT_EQ ((uint64_t ) 77000000000 , value2);
555563 OLA_ASSERT_FALSE (StringToInt (" 4294967296" , &value));
556564 OLA_ASSERT_FALSE (StringToInt (" foo" , &value));
557565
@@ -569,7 +577,9 @@ void StringUtilsTest::testStringToUIntOrDefault() {
569577 OLA_ASSERT_EQ (0u , StringToIntOrDefault (" 0" , 42u ));
570578 OLA_ASSERT_EQ (1u , StringToIntOrDefault (" 1" , 42u ));
571579 OLA_ASSERT_EQ (65537u , StringToIntOrDefault (" 65537" , 42u ));
572- OLA_ASSERT_EQ (4294967295U , StringToIntOrDefault (" 4294967295" , 42u ));
580+ OLA_ASSERT_EQ (4294967295U , StringToIntOrDefault (" 4294967295" , 42U ));
581+ OLA_ASSERT_EQ ((uint64_t ) 77000000000 ,
582+ StringToIntOrDefault (" 77000000000" , (uint64_t ) 42 ));
573583 OLA_ASSERT_EQ (42u , StringToIntOrDefault (" 4294967296" , 42u ));
574584 OLA_ASSERT_EQ (42u , StringToIntOrDefault (" foo" , 42u ));
575585
@@ -648,97 +658,102 @@ void StringUtilsTest::testHexStringToInt() {
648658 OLA_ASSERT_FALSE (HexStringToInt (" zfff" , &value2));
649659 OLA_ASSERT_FALSE (HexStringToInt (" 0xf" , &value2));
650660
651- // int8_t
652- int8_t value3;
653- OLA_ASSERT_FALSE (HexStringToInt (" " , &value3));
654- OLA_ASSERT_FALSE (HexStringToInt (" -1" , &value3));
655-
656- OLA_ASSERT_TRUE (HexStringToInt (" 0" , &value3));
657- OLA_ASSERT_EQ ((int8_t ) 0 , value3);
658- OLA_ASSERT_TRUE (HexStringToInt (" 1" , &value3));
659- OLA_ASSERT_EQ ((int8_t ) 1 , value3);
660- OLA_ASSERT_TRUE (HexStringToInt (" a" , &value3));
661- OLA_ASSERT_EQ ((int8_t ) 10 , value3);
662- OLA_ASSERT_TRUE (HexStringToInt (" f" , &value3));
663- OLA_ASSERT_EQ ((int8_t ) 15 , value3);
664- OLA_ASSERT_TRUE (HexStringToInt (" 7f" , &value3));
665- OLA_ASSERT_EQ ((int8_t ) 127 , value3);
666- OLA_ASSERT_TRUE (HexStringToInt (" a1" , &value3));
667- OLA_ASSERT_EQ ((int8_t ) -95 , value3);
668- OLA_ASSERT_TRUE (HexStringToInt (" 80" , &value3));
669- OLA_ASSERT_EQ ((int8_t ) -128 , value3);
670- OLA_ASSERT_TRUE (HexStringToInt (" ff" , &value3));
671- OLA_ASSERT_EQ ((int8_t ) -1 , value3);
672-
673- OLA_ASSERT_FALSE (HexStringToInt (" ffff" , &value3));
674- OLA_ASSERT_FALSE (HexStringToInt (" fff0" , &value3));
675- OLA_ASSERT_FALSE (HexStringToInt (" ffffff" , &value3));
676- OLA_ASSERT_FALSE (HexStringToInt (" ffffffff" , &value3));
677- OLA_ASSERT_FALSE (HexStringToInt (" ef123456" , &value3));
678- OLA_ASSERT_FALSE (HexStringToInt (" fz" , &value3));
679- OLA_ASSERT_FALSE (HexStringToInt (" zfff" , &value3));
680- OLA_ASSERT_FALSE (HexStringToInt (" 0xf" , &value3));
661+ // uint64_t
662+ uint64_t value3;
663+ OLA_ASSERT_TRUE (HexStringToInt (" 11ed8ec200" , &value3));
664+ OLA_ASSERT_EQ ((uint64_t ) 77000000000 , value3);
681665
682- // int16_t
683- int16_t value4;
666+ // int8_t
667+ int8_t value4;
684668 OLA_ASSERT_FALSE (HexStringToInt (" " , &value4));
685669 OLA_ASSERT_FALSE (HexStringToInt (" -1" , &value4));
686670
687671 OLA_ASSERT_TRUE (HexStringToInt (" 0" , &value4));
688- OLA_ASSERT_EQ ((int16_t ) 0 , value4);
672+ OLA_ASSERT_EQ ((int8_t ) 0 , value4);
689673 OLA_ASSERT_TRUE (HexStringToInt (" 1" , &value4));
690- OLA_ASSERT_EQ ((int16_t ) 1 , value4);
674+ OLA_ASSERT_EQ ((int8_t ) 1 , value4);
691675 OLA_ASSERT_TRUE (HexStringToInt (" a" , &value4));
692- OLA_ASSERT_EQ ((int16_t ) 10 , value4);
676+ OLA_ASSERT_EQ ((int8_t ) 10 , value4);
693677 OLA_ASSERT_TRUE (HexStringToInt (" f" , &value4));
694- OLA_ASSERT_EQ ((int16_t ) 15 , value4);
678+ OLA_ASSERT_EQ ((int8_t ) 15 , value4);
679+ OLA_ASSERT_TRUE (HexStringToInt (" 7f" , &value4));
680+ OLA_ASSERT_EQ ((int8_t ) 127 , value4);
695681 OLA_ASSERT_TRUE (HexStringToInt (" a1" , &value4));
696- OLA_ASSERT_EQ ((int16_t ) 161 , value4);
682+ OLA_ASSERT_EQ ((int8_t ) -95 , value4);
683+ OLA_ASSERT_TRUE (HexStringToInt (" 80" , &value4));
684+ OLA_ASSERT_EQ ((int8_t ) -128 , value4);
697685 OLA_ASSERT_TRUE (HexStringToInt (" ff" , &value4));
698- OLA_ASSERT_EQ ((int16_t ) 255 , value4);
699- OLA_ASSERT_TRUE (HexStringToInt (" 7fff" , &value4));
700- OLA_ASSERT_EQ ((int16_t ) 32767 , value4);
701- OLA_ASSERT_TRUE (HexStringToInt (" ffff" , &value4));
702- OLA_ASSERT_EQ ((int16_t ) -1 , value4);
703- OLA_ASSERT_TRUE (HexStringToInt (" fff0" , &value4));
704- OLA_ASSERT_EQ ((int16_t ) -16 , value4);
705- OLA_ASSERT_TRUE (HexStringToInt (" 8000" , &value4));
706- OLA_ASSERT_EQ ((int16_t ) -32768 , value4);
686+ OLA_ASSERT_EQ ((int8_t ) -1 , value4);
707687
688+ OLA_ASSERT_FALSE (HexStringToInt (" ffff" , &value4));
689+ OLA_ASSERT_FALSE (HexStringToInt (" fff0" , &value4));
708690 OLA_ASSERT_FALSE (HexStringToInt (" ffffff" , &value4));
709691 OLA_ASSERT_FALSE (HexStringToInt (" ffffffff" , &value4));
710692 OLA_ASSERT_FALSE (HexStringToInt (" ef123456" , &value4));
711693 OLA_ASSERT_FALSE (HexStringToInt (" fz" , &value4));
712694 OLA_ASSERT_FALSE (HexStringToInt (" zfff" , &value4));
713695 OLA_ASSERT_FALSE (HexStringToInt (" 0xf" , &value4));
714696
715- // int32
716- int32_t value5;
697+ // int16_t
698+ int16_t value5;
717699 OLA_ASSERT_FALSE (HexStringToInt (" " , &value5));
718700 OLA_ASSERT_FALSE (HexStringToInt (" -1" , &value5));
719701
720702 OLA_ASSERT_TRUE (HexStringToInt (" 0" , &value5));
721- OLA_ASSERT_EQ ((int32_t ) 0 , value5);
703+ OLA_ASSERT_EQ ((int16_t ) 0 , value5);
722704 OLA_ASSERT_TRUE (HexStringToInt (" 1" , &value5));
723- OLA_ASSERT_EQ ((int32_t ) 1 , value5);
705+ OLA_ASSERT_EQ ((int16_t ) 1 , value5);
724706 OLA_ASSERT_TRUE (HexStringToInt (" a" , &value5));
725- OLA_ASSERT_EQ ((int32_t ) 10 , value5);
707+ OLA_ASSERT_EQ ((int16_t ) 10 , value5);
726708 OLA_ASSERT_TRUE (HexStringToInt (" f" , &value5));
727- OLA_ASSERT_EQ ((int32_t ) 15 , value5);
709+ OLA_ASSERT_EQ ((int16_t ) 15 , value5);
728710 OLA_ASSERT_TRUE (HexStringToInt (" a1" , &value5));
729- OLA_ASSERT_EQ ((int32_t ) 161 , value5);
711+ OLA_ASSERT_EQ ((int16_t ) 161 , value5);
730712 OLA_ASSERT_TRUE (HexStringToInt (" ff" , &value5));
731- OLA_ASSERT_EQ ((int32_t ) 255 , value5);
713+ OLA_ASSERT_EQ ((int16_t ) 255 , value5);
732714 OLA_ASSERT_TRUE (HexStringToInt (" 7fff" , &value5));
733- OLA_ASSERT_EQ ((int32_t ) 32767 , value5);
715+ OLA_ASSERT_EQ ((int16_t ) 32767 , value5);
734716 OLA_ASSERT_TRUE (HexStringToInt (" ffff" , &value5));
735- OLA_ASSERT_EQ ((int32_t ) 65535 , value5);
736- OLA_ASSERT_TRUE (HexStringToInt (" ffffffff" , &value5));
737- OLA_ASSERT_EQ ((int32_t ) -1 , value5);
738- OLA_ASSERT_TRUE (HexStringToInt (" fffffff0" , &value5));
739- OLA_ASSERT_EQ ((int32_t ) -16 , value5);
740- OLA_ASSERT_TRUE (HexStringToInt (" 80000000" , &value5));
741- OLA_ASSERT_EQ ((int32_t ) -2147483647 - 1 , value5);
717+ OLA_ASSERT_EQ ((int16_t ) -1 , value5);
718+ OLA_ASSERT_TRUE (HexStringToInt (" fff0" , &value5));
719+ OLA_ASSERT_EQ ((int16_t ) -16 , value5);
720+ OLA_ASSERT_TRUE (HexStringToInt (" 8000" , &value5));
721+ OLA_ASSERT_EQ ((int16_t ) -32768 , value5);
722+
723+ OLA_ASSERT_FALSE (HexStringToInt (" ffffff" , &value5));
724+ OLA_ASSERT_FALSE (HexStringToInt (" ffffffff" , &value5));
725+ OLA_ASSERT_FALSE (HexStringToInt (" ef123456" , &value5));
726+ OLA_ASSERT_FALSE (HexStringToInt (" fz" , &value5));
727+ OLA_ASSERT_FALSE (HexStringToInt (" zfff" , &value5));
728+ OLA_ASSERT_FALSE (HexStringToInt (" 0xf" , &value5));
729+
730+ // int32
731+ int32_t value6;
732+ OLA_ASSERT_FALSE (HexStringToInt (" " , &value6));
733+ OLA_ASSERT_FALSE (HexStringToInt (" -1" , &value6));
734+
735+ OLA_ASSERT_TRUE (HexStringToInt (" 0" , &value6));
736+ OLA_ASSERT_EQ ((int32_t ) 0 , value6);
737+ OLA_ASSERT_TRUE (HexStringToInt (" 1" , &value6));
738+ OLA_ASSERT_EQ ((int32_t ) 1 , value6);
739+ OLA_ASSERT_TRUE (HexStringToInt (" a" , &value6));
740+ OLA_ASSERT_EQ ((int32_t ) 10 , value6);
741+ OLA_ASSERT_TRUE (HexStringToInt (" f" , &value6));
742+ OLA_ASSERT_EQ ((int32_t ) 15 , value6);
743+ OLA_ASSERT_TRUE (HexStringToInt (" a1" , &value6));
744+ OLA_ASSERT_EQ ((int32_t ) 161 , value6);
745+ OLA_ASSERT_TRUE (HexStringToInt (" ff" , &value6));
746+ OLA_ASSERT_EQ ((int32_t ) 255 , value6);
747+ OLA_ASSERT_TRUE (HexStringToInt (" 7fff" , &value6));
748+ OLA_ASSERT_EQ ((int32_t ) 32767 , value6);
749+ OLA_ASSERT_TRUE (HexStringToInt (" ffff" , &value6));
750+ OLA_ASSERT_EQ ((int32_t ) 65535 , value6);
751+ OLA_ASSERT_TRUE (HexStringToInt (" ffffffff" , &value6));
752+ OLA_ASSERT_EQ ((int32_t ) -1 , value6);
753+ OLA_ASSERT_TRUE (HexStringToInt (" fffffff0" , &value6));
754+ OLA_ASSERT_EQ ((int32_t ) -16 , value6);
755+ OLA_ASSERT_TRUE (HexStringToInt (" 80000000" , &value6));
756+ OLA_ASSERT_EQ ((int32_t ) -2147483647 - 1 , value6);
742757}
743758
744759
0 commit comments