@@ -54,12 +54,6 @@ void testTcUtilHexCoversions() {
5454
5555 intToHexString (szBuffer, sizeof szBuffer, 0x0000 , 4 , true );
5656 TEST_ASSERT_EQUAL_STRING (" 0x0000" , szBuffer);
57-
58- intToHexString (szBuffer, 6 , 0xFFFF , 4 , true );
59- TEST_ASSERT_EQUAL_STRING (" 0xFFF" , szBuffer);
60-
61- intToHexString (szBuffer, 3 , 0xFFFF , 4 , false );
62- TEST_ASSERT_EQUAL_STRING (" FF" , szBuffer);
6357}
6458
6559void testTcUtilFloatConversions () {
@@ -73,11 +67,41 @@ void testTcUtilFloatConversions() {
7367 TEST_ASSERT_EQUAL_STRING (" -10.3" , szBuffer);
7468}
7569
70+ void testTcUtilLimits () {
71+ char szBuffer[20 ];
72+
73+ // Test very large value
74+ szBuffer[0 ]=0 ;
75+ intToHexString (szBuffer, sizeof szBuffer, 0xFFF0FF0F , 8 , true );
76+ TEST_ASSERT_EQUAL_STRING (" 0xFFF0FF0F" , szBuffer);
77+
78+ // test very small value with large number of places
79+ intToHexString (szBuffer, sizeof szBuffer, 0x1 , 8 , true );
80+ TEST_ASSERT_EQUAL_STRING (" 0x00000001" , szBuffer);
81+
82+ // test limits - method does nothing when buffer too small.
83+ intToHexString (szBuffer, 5 , 0xFFF00000 , 8 , true );
84+ TEST_ASSERT_EQUAL_STRING (" " , szBuffer);
85+
86+ // test large integers
87+ ltoaClrBuff (szBuffer, 147483647 , 9 , NOT_PADDED, sizeof szBuffer);
88+ TEST_ASSERT_EQUAL_STRING (" 147483647" , szBuffer);
89+ ltoaClrBuff (szBuffer, -147483647 , 9 , NOT_PADDED, sizeof szBuffer);
90+ TEST_ASSERT_EQUAL_STRING (" -147483647" , szBuffer);
91+
92+
93+ ltoaClrBuff (szBuffer, -2147483647 , 9 , NOT_PADDED, 5 );
94+ TEST_ASSERT_EQUAL_STRING (" -147" , szBuffer);
95+
96+ }
97+
98+
7699void setup () {
77100 UNITY_BEGIN ();
78101 RUN_TEST (testTcUtilHexCoversions);
79102 RUN_TEST (testTcUtilIntegerConversions);
80103 RUN_TEST (testTcUtilFloatConversions);
104+ RUN_TEST (testTcUtilLimits);
81105 UNITY_END ();
82106}
83107
0 commit comments