@@ -334,9 +334,7 @@ SPRINTF_TEST_CASE(specifier)
334334SPRINTF_TEST_CASE (width )
335335{
336336 char buffer [base_buffer_size ];
337- #ifdef RT_KLIBC_USING_VSNPRINTF_STANDARD
338337 SPRINTF_CHECK ("Hello testing" , buffer , "%1s" , "Hello testing" );
339- #endif /* RT_KLIBC_USING_VSNPRINTF_STANDARD */
340338 SPRINTF_CHECK ("1024" , buffer , "%1d" , 1024 );
341339 SPRINTF_CHECK ("-1024" , buffer , "%1d" , -1024 );
342340 SPRINTF_CHECK ("1024" , buffer , "%1i" , 1024 );
@@ -837,10 +835,6 @@ SPRINTF_TEST_CASE(tiny_floating_point_values)
837835SPRINTF_TEST_CASE (length )
838836{
839837 char buffer [base_buffer_size ];
840- SPRINTF_CHECK ("" , buffer , "%.0s" , "Hello testing" );
841- SPRINTF_CHECK (" " , buffer , "%20.0s" , "Hello testing" );
842- SPRINTF_CHECK ("" , buffer , "%.s" , "Hello testing" );
843- SPRINTF_CHECK (" " , buffer , "%20.s" , "Hello testing" );
844838 SPRINTF_CHECK (" 1024" , buffer , "%20.0d" , 1024 );
845839 SPRINTF_CHECK (" -1024" , buffer , "%20.0d" , -1024 );
846840 SPRINTF_CHECK (" " , buffer , "%20.d" , 0 );
@@ -972,6 +966,19 @@ SPRINTF_TEST_CASE(pointer)
972966SPRINTF_TEST_CASE (string_length )
973967{
974968 char buffer [base_buffer_size ];
969+ #if !defined(RT_KLIBC_USING_LIBC_VSNPRINTF )
970+ char unterminated [] = {'A' , 'B' , 'C' };
971+ #endif
972+
973+ SPRINTF_CHECK ("" , buffer , "%.0s" , "Hello testing" );
974+ SPRINTF_CHECK (" " , buffer , "%20.0s" , "Hello testing" );
975+ SPRINTF_CHECK ("" , buffer , "%.s" , "Hello testing" );
976+ SPRINTF_CHECK (" " , buffer , "%20.s" , "Hello testing" );
977+ SPRINTF_CHECK ("" , buffer , "%.*s" , 0 , "Hello testing" );
978+ #if !defined(RT_KLIBC_USING_LIBC_VSNPRINTF )
979+ SPRINTF_CHECK ("Hello testing" , buffer , "%.*s" , -1 , "Hello testing" );
980+ SPRINTF_CHECK ("ABC" , buffer , "%.3s" , unterminated );
981+ #endif
975982 SPRINTF_CHECK ("This" , buffer , "%.4s" , "This is a test" );
976983 SPRINTF_CHECK ("test" , buffer , "%.4s" , "test" );
977984 SPRINTF_CHECK ("123" , buffer , "%.7s" , "123" );
@@ -989,14 +996,16 @@ SPRINTF_TEST_CASE(misc)
989996{
990997 char buffer [base_buffer_size ];
991998 SPRINTF_CHECK ("53000atest-20 bit" , buffer , "%u%u%ctest%d %s" , 5 , 3000 , 'a' , -20 , "bit" );
992- #ifdef RT_KLIBC_USING_VSNPRINTF_DECIMAL_SPECIFIERS
993- SPRINTF_CHECK ("0.33" , buffer , "%.*f" , 2 , 0.33333333 );
994999 SPRINTF_CHECK ("1" , buffer , "%.*d" , -1 , 1 );
9951000 SPRINTF_CHECK ("foo" , buffer , "%.3s" , "foobar" );
9961001 SPRINTF_CHECK (" " , buffer , "% .0d" , 0 );
1002+ SPRINTF_CHECK ("5" , buffer , "%.0d" , 5 );
1003+ SPRINTF_CHECK ("" , buffer , "%.0d" , 0 );
9971004 SPRINTF_CHECK (" 00004" , buffer , "%10.5d" , 4 );
9981005 SPRINTF_CHECK ("hi x" , buffer , "%*sx" , -3 , "hi" );
9991006 SPRINTF_CHECK ("00123 " , buffer , "%-20.5i" , 123 );
1007+ #ifdef RT_KLIBC_USING_VSNPRINTF_DECIMAL_SPECIFIERS
1008+ SPRINTF_CHECK ("0.33" , buffer , "%.*f" , 2 , 0.33333333 );
10001009 SPRINTF_CHECK ("-67224.546875000000000000" , buffer , "%.18f" , -67224.546875 );
10011010#endif /* RT_KLIBC_USING_VSNPRINTF_DECIMAL_SPECIFIERS */
10021011#ifdef RT_KLIBC_USING_VSNPRINTF_EXPONENTIAL_SPECIFIERS
0 commit comments