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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user