2022-05-26 22:03:05 -04:00
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
#include "config.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <kernaux/printf_fmt.h>
|
|
|
|
|
|
|
|
#include <assert.h>
|
|
|
|
|
|
|
|
int main()
|
|
|
|
{
|
|
|
|
{% for case in cases %}
|
|
|
|
{
|
|
|
|
const char *format = {{ escape_str(case.in.format) }};
|
|
|
|
|
|
|
|
struct KernAux_PrintfFmt_Spec spec = KernAux_PrintfFmt_Spec_create();
|
2022-05-28 05:08:48 -04:00
|
|
|
|
2022-05-28 04:56:48 -04:00
|
|
|
KernAux_PrintfFmt_Spec_parse_flags(&spec, &format);
|
2022-05-28 05:08:48 -04:00
|
|
|
KernAux_PrintfFmt_Spec_parse_width(&spec, &format);
|
|
|
|
KernAux_PrintfFmt_Spec_parse_precision(&spec, &format);
|
|
|
|
KernAux_PrintfFmt_Spec_parse_length(&spec, &format);
|
|
|
|
KernAux_PrintfFmt_Spec_parse_type(&spec, &format);
|
|
|
|
|
|
|
|
if (spec.set_width) {
|
2022-05-28 04:56:48 -04:00
|
|
|
KernAux_PrintfFmt_Spec_set_width(&spec, {{ none_to_zero(case.in.width) }});
|
2022-05-26 22:03:05 -04:00
|
|
|
}
|
2022-05-28 05:08:48 -04:00
|
|
|
if (spec.set_precision) {
|
2022-05-28 04:56:48 -04:00
|
|
|
KernAux_PrintfFmt_Spec_set_precision(&spec, {{ none_to_zero(case.in.precision) }});
|
2022-05-26 22:03:05 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
assert(spec.flags == {{ escape_flags(case.out.flags) }});
|
|
|
|
assert(spec.width == {{ case.out.width }});
|
|
|
|
assert(spec.precision == {{ case.out.precision }});
|
|
|
|
assert(spec.type == {{ escape_type(case.out.type) }});
|
|
|
|
assert(spec.base == {{ case.out.base }});
|
|
|
|
}
|
|
|
|
{% endfor %}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|