printf-hook-builtin: Add some preliminary floating point support

This minimalistic implementation has no aspiration for completeness or
accuracy, and just provides what we need.
This commit is contained in:
Martin Willi
2013-10-11 11:06:09 +02:00
parent 7e6a4cdc84
commit edc7a3d02f
2 changed files with 223 additions and 2 deletions
+29
View File
@@ -91,6 +91,31 @@ START_TEST(test_printf_hex)
}
END_TEST
START_TEST(test_printf_float)
{
verify("0.000000", "%f", 0.0);
verify("1.000000", "%f", 1.0);
verify("12345.1", "%.1f", 12345.123);
verify("1", "%.0f", 1.0);
verify("1.4", "%.1f", 1.456789);
verify("1.34", "%.2f", 1.3456789);
verify("1.234", "%.3f", 1.23456789);
verify("1.1234", "%.4f", 1.123456789);
verify("-1.000000", "%f", -1.0);
verify("-12345.1", "%.1f", -12345.123);
verify("-1", "%.0f", -1.0);
verify("-1.4", "%.1f", -1.456789);
verify("-1.34", "%.2f", -1.3456789);
verify("-1.234", "%.3f", -1.23456789);
verify("-1.1234", "%.4f", -1.123456789);
verify(" 1.2", "%5.1f", 1.234);
verify("001.2", "%05.1f", 1.234);
verify("1.2 ", "%-5.1f", 1.234);
}
END_TEST
Suite *printf_suite_create()
{
Suite *s;
@@ -118,5 +143,9 @@ Suite *printf_suite_create()
tcase_add_test(tc, test_printf_hex);
suite_add_tcase(s, tc);
tc = tcase_create("float");
tcase_add_test(tc, test_printf_float);
suite_add_tcase(s, tc);
return s;
}