├── .gitignore ├── README.md ├── auteur ├── framework ├── Makefile ├── includes │ ├── frmk_error.h │ ├── frmk_libunit.h │ ├── frmk_print.h │ ├── frmk_stdout_utils.h │ └── frmk_utils.h └── srcs │ ├── frmk_launch_tests.c │ ├── frmk_load_test.c │ ├── frmk_print.c │ ├── frmk_print_trace.c │ ├── frmk_stdout_utils.c │ └── frmk_utils.c ├── images ├── makefile_libftprintf_path.png ├── printf_unit_test.png └── trace.png ├── templates ├── 000_launcher_template.c ├── XXX_test_template.c ├── header_template.h └── main_template.h └── tests ├── Makefile ├── conv_c ├── 000_launcher.c ├── 001_char_null.c ├── 002_ascii_chars.c ├── 003_ascii_chars_8_width.c ├── 004_ascii_chars_8_width_flag.c ├── 005_short_max.c └── conv_c.h ├── conv_cap_x ├── 000_launcher.c ├── 001_zero_and_various_flags.c ├── 002_zero_and_various_flags_and_1_width.c ├── 003_zero_and_various_flags_and_23_width.c ├── 004_zero_and_various_flags_and_dot_precision.c ├── 005_zero_and_various_flags_and_5_precision.c ├── 006_zero_and_various_flags_and_1_width_and_dot_precision.c ├── 007_zero_and_various_flags_and_23_width_and_dot_precision.c ├── 008_zero_and_various_flags_and_1_width_and_5_precision.c ├── 009_zero_and_various_flags_and_23_width_and_5_precision.c ├── 010_zero_and_various_flags_combined.c ├── 011_zero_and_various_flags_combined_and_1_width.c ├── 012_zero_and_various_flags_combined_and_23_width.c ├── 013_zero_and_various_flags_combined_and_dot_precision.c ├── 014_zero_and_various_flags_combined_and_5_precision.c ├── 015_zero_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 016_zero_and_various_flags_combined_and_1_width_and_5_precision.c ├── 017_zero_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 018_zero_and_various_flags_combined_and_23_width_and_5_precision.c ├── 019_uint_max_and_various_flags.c ├── 020_uint_max_and_various_flags_and_1_width.c ├── 021_uint_max_and_various_flags_and_23_width.c ├── 022_uint_max_and_various_flags_and_dot_precision.c ├── 023_uint_max_and_various_flags_and_5_precision.c ├── 024_uint_max_and_various_flags_and_1_width_and_dot_precision.c ├── 025_uint_max_and_various_flags_and_23_width_and_dot_precision.c ├── 026_uint_max_and_various_flags_and_1_width_and_5_precision.c ├── 027_uint_max_and_various_flags_and_23_width_and_5_precision.c ├── 028_uint_max_and_various_flags_combined.c ├── 029_uint_max_and_various_flags_combined_and_1_width.c ├── 030_uint_max_and_various_flags_combined_and_23_width.c ├── 031_uint_max_and_various_flags_combined_and_dot_precision.c ├── 032_uint_max_and_various_flags_combined_and_5_precision.c ├── 033_uint_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 034_uint_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 035_uint_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 036_uint_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 037_ulong_max_and_various_flags.c ├── 038_ulong_max_and_various_flags_and_1_width.c ├── 039_ulong_max_and_various_flags_and_23_width.c ├── 040_ulong_max_and_various_flags_and_dot_precision.c ├── 041_ulong_max_and_various_flags_and_5_precision.c ├── 042_ulong_max_and_various_flags_and_1_width_and_dot_precision.c ├── 043_ulong_max_and_various_flags_and_23_width_and_dot_precision.c ├── 044_ulong_max_and_various_flags_and_1_width_and_5_precision.c ├── 045_ulong_max_and_various_flags_and_23_width_and_5_precision.c ├── 046_ulong_max_and_various_flags_combined.c ├── 047_ulong_max_and_various_flags_combined_and_1_width.c ├── 048_ulong_max_and_various_flags_combined_and_23_width.c ├── 049_ulong_max_and_various_flags_combined_and_dot_precision.c ├── 050_ulong_max_and_various_flags_combined_and_5_precision.c ├── 051_ulong_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 052_ulong_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 053_ulong_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 054_ulong_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 055_ullong_max_and_various_flags.c ├── 056_ullong_max_and_various_flags_and_1_width.c ├── 057_ullong_max_and_various_flags_and_23_width.c ├── 058_ullong_max_and_various_flags_and_dot_precision.c ├── 059_ullong_max_and_various_flags_and_5_precision.c ├── 060_ullong_max_and_various_flags_and_1_width_and_dot_precision.c ├── 061_ullong_max_and_various_flags_and_23_width_and_dot_precision.c ├── 062_ullong_max_and_various_flags_and_1_width_and_5_precision.c ├── 063_ullong_max_and_various_flags_and_23_width_and_5_precision.c ├── 064_ullong_max_and_various_flags_combined.c ├── 065_ullong_max_and_various_flags_combined_and_1_width.c ├── 066_ullong_max_and_various_flags_combined_and_23_width.c ├── 067_ullong_max_and_various_flags_combined_and_dot_precision.c ├── 068_ullong_max_and_various_flags_combined_and_5_precision.c ├── 069_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 070_ullong_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 071_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 072_ullong_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 073_ullong_max_and_various_flags_hh_modifier.c ├── 074_ullong_max_and_various_flags_and_1_width_hh_modifier.c ├── 075_ullong_max_and_various_flags_and_23_width_hh_modifier.c ├── 076_ullong_max_and_various_flags_and_dot_precision_hh_modifier.c ├── 077_ullong_max_and_various_flags_and_5_precision_hh_modifier.c ├── 078_ullong_max_and_various_flags_and_1_width_and_dot_precision_hh_modifier.c ├── 079_ullong_max_and_various_flags_and_23_width_and_dot_precision_hh_modifier.c ├── 080_ullong_max_and_various_flags_and_1_width_and_5_precision_hh_modifier.c ├── 081_ullong_max_and_various_flags_and_23_width_and_5_precision_hh_modifier.c ├── 082_ullong_max_and_various_flags_combined_hh_modifier.c ├── 083_ullong_max_and_various_flags_combined_and_1_width_hh_modifier.c ├── 084_ullong_max_and_various_flags_combined_and_23_width_hh_modifier.c ├── 085_ullong_max_and_various_flags_combined_and_dot_precision_hh_modifier.c ├── 086_ullong_max_and_various_flags_combined_and_5_precision_hh_modifier.c ├── 087_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_hh_modifier.c ├── 088_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_hh_modifier.c ├── 089_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_hh_modifier.c ├── 090_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_hh_modifier.c ├── 091_ullong_max_and_various_flags_h_modifier.c ├── 092_ullong_max_and_various_flags_and_1_width_h_modifier.c ├── 093_ullong_max_and_various_flags_and_23_width_h_modifier.c ├── 094_ullong_max_and_various_flags_and_dot_precision_h_modifier.c ├── 095_ullong_max_and_various_flags_and_5_precision_h_modifier.c ├── 096_ullong_max_and_various_flags_and_1_width_and_dot_precision_h_modifier.c ├── 097_ullong_max_and_various_flags_and_23_width_and_dot_precision_h_modifier.c ├── 098_ullong_max_and_various_flags_and_1_width_and_5_precision_h_modifier.c ├── 099_ullong_max_and_various_flags_and_23_width_and_5_precision_h_modifier.c ├── 100_ullong_max_and_various_flags_combined_h_modifier.c ├── 101_ullong_max_and_various_flags_combined_and_1_width_h_modifier.c ├── 102_ullong_max_and_various_flags_combined_and_23_width_h_modifier.c ├── 103_ullong_max_and_various_flags_combined_and_dot_precision_h_modifier.c ├── 104_ullong_max_and_various_flags_combined_and_5_precision_h_modifier.c ├── 105_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_h_modifier.c ├── 106_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_h_modifier.c ├── 107_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_h_modifier.c ├── 108_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_h_modifier.c ├── 109_ullong_max_and_various_flags_l_modifier.c ├── 110_ullong_max_and_various_flags_and_1_width_l_modifier.c ├── 111_ullong_max_and_various_flags_and_23_width_l_modifier.c ├── 112_ullong_max_and_various_flags_and_dot_precision_l_modifier.c ├── 113_ullong_max_and_various_flags_and_5_precision_l_modifier.c ├── 114_ullong_max_and_various_flags_and_1_width_and_dot_precision_l_modifier.c ├── 115_ullong_max_and_various_flags_and_23_width_and_dot_precision_l_modifier.c ├── 116_ullong_max_and_various_flags_and_1_width_and_5_precision_l_modifier.c ├── 117_ullong_max_and_various_flags_and_23_width_and_5_precision_l_modifier.c ├── 118_ullong_max_and_various_flags_combined_l_modifier.c ├── 119_ullong_max_and_various_flags_combined_and_1_width_l_modifier.c ├── 120_ullong_max_and_various_flags_combined_and_23_width_l_modifier.c ├── 121_ullong_max_and_various_flags_combined_and_dot_precision_l_modifier.c ├── 122_ullong_max_and_various_flags_combined_and_5_precision_l_modifier.c ├── 123_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_l_modifier.c ├── 124_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_l_modifier.c ├── 125_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_l_modifier.c ├── 126_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_l_modifier.c ├── 127_ullong_max_and_various_flags_ll_modifier.c ├── 128_ullong_max_and_various_flags_and_1_width_ll_modifier.c ├── 129_ullong_max_and_various_flags_and_23_width_ll_modifier.c ├── 130_ullong_max_and_various_flags_and_dot_precision_ll_modifier.c ├── 131_ullong_max_and_various_flags_and_5_precision_ll_modifier.c ├── 132_ullong_max_and_various_flags_and_1_width_and_dot_precision_ll_modifier.c ├── 133_ullong_max_and_various_flags_and_23_width_and_dot_precision_ll_modifier.c ├── 134_ullong_max_and_various_flags_and_1_width_and_5_precision_ll_modifier.c ├── 135_ullong_max_and_various_flags_and_23_width_and_5_precision_ll_modifier.c ├── 136_ullong_max_and_various_flags_combined_ll_modifier.c ├── 137_ullong_max_and_various_flags_combined_and_1_width_ll_modifier.c ├── 138_ullong_max_and_various_flags_combined_and_23_width_ll_modifier.c ├── 139_ullong_max_and_various_flags_combined_and_dot_precision_ll_modifier.c ├── 140_ullong_max_and_various_flags_combined_and_5_precision_ll_modifier.c ├── 141_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_ll_modifier.c ├── 142_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_ll_modifier.c ├── 143_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_ll_modifier.c ├── 144_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_ll_modifier.c └── conv_cap_x.h ├── conv_d ├── 000_launcher.c ├── 001_zero_and_various_flags.c ├── 002_zero_and_various_flags_and_1_width.c ├── 003_zero_and_various_flags_and_23_width.c ├── 004_zero_and_various_flags_and_dot_precision.c ├── 005_zero_and_various_flags_and_5_precision.c ├── 006_zero_and_various_flags_and_1_width_and_dot_precision.c ├── 007_zero_and_various_flags_and_23_width_and_dot_precision.c ├── 008_zero_and_various_flags_and_1_width_and_5_precision.c ├── 009_zero_and_various_flags_and_23_width_and_5_precision.c ├── 010_zero_and_various_flags_combined.c ├── 011_zero_and_various_flags_combined_and_1_width.c ├── 012_zero_and_various_flags_combined_and_23_width.c ├── 013_zero_and_various_flags_combined_and_dot_precision.c ├── 014_zero_and_various_flags_combined_and_5_precision.c ├── 015_zero_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 016_zero_and_various_flags_combined_and_1_width_and_5_precision.c ├── 017_zero_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 018_zero_and_various_flags_combined_and_23_width_and_5_precision.c ├── 019_minus_zero_and_various_flags.c ├── 020_minus_zero_and_various_flags_and_1_width.c ├── 021_minus_zero_and_various_flags_and_23_width.c ├── 022_minus_zero_and_various_flags_and_dot_precision.c ├── 023_minus_zero_and_various_flags_and_5_precision.c ├── 024_minus_zero_and_various_flags_and_1_width_and_dot_precision.c ├── 025_minus_zero_and_various_flags_and_23_width_and_dot_precision.c ├── 026_minus_zero_and_various_flags_and_1_width_and_5_precision.c ├── 027_minus_zero_and_various_flags_and_23_width_and_5_precision.c ├── 028_minus_zero_and_various_flags_combined.c ├── 029_minus_zero_and_various_flags_combined_and_1_width.c ├── 030_minus_zero_and_various_flags_combined_and_23_width.c ├── 031_minus_zero_and_various_flags_combined_and_dot_precision.c ├── 032_minus_zero_and_various_flags_combined_and_5_precision.c ├── 033_minus_zero_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 034_minus_zero_and_various_flags_combined_and_1_width_and_5_precision.c ├── 035_minus_zero_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 036_minus_zero_and_various_flags_combined_and_23_width_and_5_precision.c ├── 037_int_max_and_various_flags.c ├── 038_int_max_and_various_flags_and_1_width.c ├── 039_int_max_and_various_flags_and_23_width.c ├── 040_int_max_and_various_flags_and_dot_precision.c ├── 041_int_max_and_various_flags_and_5_precision.c ├── 042_int_max_and_various_flags_and_1_width_and_dot_precision.c ├── 043_int_max_and_various_flags_and_23_width_and_dot_precision.c ├── 044_int_max_and_various_flags_and_1_width_and_5_precision.c ├── 045_int_max_and_various_flags_and_23_width_and_5_precision.c ├── 046_int_max_and_various_flags_combined.c ├── 047_int_max_and_various_flags_combined_and_1_width.c ├── 048_int_max_and_various_flags_combined_and_23_width.c ├── 049_int_max_and_various_flags_combined_and_dot_precision.c ├── 050_int_max_and_various_flags_combined_and_5_precision.c ├── 051_int_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 052_int_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 053_int_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 054_int_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 055_int_min_and_various_flags.c ├── 056_int_min_and_various_flags_and_1_width.c ├── 057_int_min_and_various_flags_and_23_width.c ├── 058_int_min_and_various_flags_and_dot_precision.c ├── 059_int_min_and_various_flags_and_5_precision.c ├── 060_int_min_and_various_flags_and_1_width_and_dot_precision.c ├── 061_int_min_and_various_flags_and_23_width_and_dot_precision.c ├── 062_int_min_and_various_flags_and_1_width_and_5_precision.c ├── 063_int_min_and_various_flags_and_23_width_and_5_precision.c ├── 064_int_min_and_various_flags_combined.c ├── 065_int_min_and_various_flags_combined_and_1_width.c ├── 066_int_min_and_various_flags_combined_and_23_width.c ├── 067_int_min_and_various_flags_combined_and_dot_precision.c ├── 068_int_min_and_various_flags_combined_and_5_precision.c ├── 069_int_min_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 070_int_min_and_various_flags_combined_and_1_width_and_5_precision.c ├── 071_int_min_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 072_int_min_and_various_flags_combined_and_23_width_and_5_precision.c ├── 073_uint_max_and_various_flags.c ├── 074_uint_max_and_various_flags_and_1_width.c ├── 075_uint_max_and_various_flags_and_23_width.c ├── 076_uint_max_and_various_flags_and_dot_precision.c ├── 077_uint_max_and_various_flags_and_5_precision.c ├── 078_uint_max_and_various_flags_and_1_width_and_dot_precision.c ├── 079_uint_max_and_various_flags_and_23_width_and_dot_precision.c ├── 080_uint_max_and_various_flags_and_1_width_and_5_precision.c ├── 081_uint_max_and_various_flags_and_23_width_and_5_precision.c ├── 082_uint_max_and_various_flags_combined.c ├── 083_uint_max_and_various_flags_combined_and_1_width.c ├── 084_uint_max_and_various_flags_combined_and_23_width.c ├── 085_uint_max_and_various_flags_combined_and_dot_precision.c ├── 086_uint_max_and_various_flags_combined_and_5_precision.c ├── 087_uint_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 088_uint_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 089_uint_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 090_uint_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 091_long_max_and_various_flags.c ├── 092_long_max_and_various_flags_and_1_width.c ├── 093_long_max_and_various_flags_and_23_width.c ├── 094_long_max_and_various_flags_and_dot_precision.c ├── 095_long_max_and_various_flags_and_5_precision.c ├── 096_long_max_and_various_flags_and_1_width_and_dot_precision.c ├── 097_long_max_and_various_flags_and_23_width_and_dot_precision.c ├── 098_long_max_and_various_flags_and_1_width_and_5_precision.c ├── 099_long_max_and_various_flags_and_23_width_and_5_precision.c ├── 100_long_max_and_various_flags_combined.c ├── 101_long_max_and_various_flags_combined_and_1_width.c ├── 102_long_max_and_various_flags_combined_and_23_width.c ├── 103_long_max_and_various_flags_combined_and_dot_precision.c ├── 104_long_max_and_various_flags_combined_and_5_precision.c ├── 105_long_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 106_long_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 107_long_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 108_long_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 109_long_min_and_various_flags.c ├── 110_long_min_and_various_flags_and_1_width.c ├── 111_long_min_and_various_flags_and_23_width.c ├── 112_long_min_and_various_flags_and_dot_precision.c ├── 113_long_min_and_various_flags_and_5_precision.c ├── 114_long_min_and_various_flags_and_1_width_and_dot_precision.c ├── 115_long_min_and_various_flags_and_23_width_and_dot_precision.c ├── 116_long_min_and_various_flags_and_1_width_and_5_precision.c ├── 117_long_min_and_various_flags_and_23_width_and_5_precision.c ├── 118_long_min_and_various_flags_combined.c ├── 119_long_min_and_various_flags_combined_and_1_width.c ├── 120_long_min_and_various_flags_combined_and_23_width.c ├── 121_long_min_and_various_flags_combined_and_dot_precision.c ├── 122_long_min_and_various_flags_combined_and_5_precision.c ├── 123_long_min_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 124_long_min_and_various_flags_combined_and_1_width_and_5_precision.c ├── 125_long_min_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 126_long_min_and_various_flags_combined_and_23_width_and_5_precision.c ├── 127_long_long_max_and_various_flags.c ├── 128_long_long_max_and_various_flags_and_1_width.c ├── 129_long_long_max_and_various_flags_and_23_width.c ├── 130_long_long_max_and_various_flags_and_dot_precision.c ├── 131_long_long_max_and_various_flags_and_5_precision.c ├── 132_long_long_max_and_various_flags_and_1_width_and_dot_precision.c ├── 133_long_long_max_and_various_flags_and_23_width_and_dot_precision.c ├── 134_long_long_max_and_various_flags_and_1_width_and_5_precision.c ├── 135_long_long_max_and_various_flags_and_23_width_and_5_precision.c ├── 136_long_long_max_and_various_flags_combined.c ├── 137_long_long_max_and_various_flags_combined_and_1_width.c ├── 138_long_long_max_and_various_flags_combined_and_23_width.c ├── 139_long_long_max_and_various_flags_combined_and_dot_precision.c ├── 140_long_long_max_and_various_flags_combined_and_5_precision.c ├── 141_long_long_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 142_long_long_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 143_long_long_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 144_long_long_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 145_long_long_max_and_various_flags_and_hh_modifier.c ├── 146_long_long_max_and_various_flags_and_1_width_and_hh_modifier.c ├── 147_long_long_max_and_various_flags_and_23_width_and_hh_modifier.c ├── 148_long_long_max_and_various_flags_and_dot_precision_and_hh_modifier.c ├── 149_long_long_max_and_various_flags_and_5_precision_and_hh_modifier.c ├── 150_long_long_max_and_various_flags_and_1_width_and_dot_precision_and_hh_modifier.c ├── 151_long_long_max_and_various_flags_and_23_width_and_dot_precision_and_hh_modifier.c ├── 152_long_long_max_and_various_flags_and_1_width_and_5_precision_and_hh_modifier.c ├── 153_long_long_max_and_various_flags_and_23_width_and_5_precision_and_hh_modifier.c ├── 154_long_long_max_and_various_flags_combined_and_hh_modifier.c ├── 155_long_long_max_and_various_flags_combined_and_1_width_and_hh_modifier.c ├── 156_long_long_max_and_various_flags_combined_and_23_width_and_hh_modifier.c ├── 157_long_long_max_and_various_flags_combined_and_dot_precision_and_hh_modifier.c ├── 158_long_long_max_and_various_flags_combined_and_5_precision_and_hh_modifier.c ├── 159_long_long_max_and_various_flags_combined_and_1_width_and_dot_precision_and_hh_modifier.c ├── 160_long_long_max_and_various_flags_combined_and_1_width_and_5_precision_and_hh_modifier.c ├── 161_long_long_max_and_various_flags_combined_and_23_width_and_dot_precision_and_hh_modifier.c ├── 162_long_long_max_and_various_flags_combined_and_23_width_and_5_precision_and_hh_modifier.c ├── 163_long_long_max_and_various_flags_and_h_modifier.c ├── 164_long_long_max_and_various_flags_and_1_width_and_h_modifier.c ├── 165_long_long_max_and_various_flags_and_23_width_and_h_modifier.c ├── 166_long_long_max_and_various_flags_and_dot_precision_and_h_modifier.c ├── 167_long_long_max_and_various_flags_and_5_precision_and_h_modifier.c ├── 168_long_long_max_and_various_flags_and_1_width_and_dot_precision_and_h_modifier.c ├── 169_long_long_max_and_various_flags_and_23_width_and_dot_precision_and_h_modifier.c ├── 170_long_long_max_and_various_flags_and_1_width_and_5_precision_and_h_modifier.c ├── 171_long_long_max_and_various_flags_and_23_width_and_5_precision_and_h_modifier.c ├── 172_long_long_max_and_various_flags_combined_and_h_modifier.c ├── 173_long_long_max_and_various_flags_combined_and_1_width_and_h_modifier.c ├── 174_long_long_max_and_various_flags_combined_and_23_width_and_h_modifier.c ├── 175_long_long_max_and_various_flags_combined_and_dot_precision_and_h_modifier.c ├── 176_long_long_max_and_various_flags_combined_and_5_precision_and_h_modifier.c ├── 177_long_long_max_and_various_flags_combined_and_1_width_and_dot_precision_and_h_modifier.c ├── 178_long_long_max_and_various_flags_combined_and_1_width_and_5_precision_and_h_modifier.c ├── 179_long_long_max_and_various_flags_combined_and_23_width_and_dot_precision_and_h_modifier.c ├── 180_long_long_max_and_various_flags_combined_and_23_width_and_5_precision_and_h_modifier.c ├── 181_long_long_max_and_various_flags_and_l_modifier.c ├── 182_long_long_max_and_various_flags_and_1_width_and_l_modifier.c ├── 183_long_long_max_and_various_flags_and_23_width_and_l_modifier.c ├── 184_long_long_max_and_various_flags_and_dot_precision_and_l_modifier.c ├── 185_long_long_max_and_various_flags_and_5_precision_and_l_modifier.c ├── 186_long_long_max_and_various_flags_and_1_width_and_dot_precision_and_l_modifier.c ├── 187_long_long_max_and_various_flags_and_23_width_and_dot_precision_and_l_modifier.c ├── 188_long_long_max_and_various_flags_and_1_width_and_5_precision_and_l_modifier.c ├── 189_long_long_max_and_various_flags_and_23_width_and_5_precision_and_l_modifier.c ├── 190_long_long_max_and_various_flags_combined_and_l_modifier.c ├── 191_long_long_max_and_various_flags_combined_and_1_width_and_l_modifier.c ├── 192_long_long_max_and_various_flags_combined_and_23_width_and_l_modifier.c ├── 193_long_long_max_and_various_flags_combined_and_dot_precision_and_l_modifier.c ├── 194_long_long_max_and_various_flags_combined_and_5_precision_and_l_modifier.c ├── 195_long_long_max_and_various_flags_combined_and_1_width_and_dot_precision_and_l_modifier.c ├── 196_long_long_max_and_various_flags_combined_and_1_width_and_5_precision_and_l_modifier.c ├── 197_long_long_max_and_various_flags_combined_and_23_width_and_dot_precision_and_l_modifier.c ├── 198_long_long_max_and_various_flags_combined_and_23_width_and_5_precision_and_l_modifier.c ├── 199_long_long_max_and_various_flags_and_ll_modifier.c ├── 200_long_long_max_and_various_flags_and_1_width_and_ll_modifier.c ├── 201_long_long_max_and_various_flags_and_23_width_and_ll_modifier.c ├── 202_long_long_max_and_various_flags_and_dot_precision_and_ll_modifier.c ├── 203_long_long_max_and_various_flags_and_5_precision_and_ll_modifier.c ├── 204_long_long_max_and_various_flags_and_1_width_and_dot_precision_and_ll_modifier.c ├── 205_long_long_max_and_various_flags_and_23_width_and_dot_precision_and_ll_modifier.c ├── 206_long_long_max_and_various_flags_and_1_width_and_5_precision_and_ll_modifier.c ├── 207_long_long_max_and_various_flags_and_23_width_and_5_precision_and_ll_modifier.c ├── 208_long_long_max_and_various_flags_combined_and_ll_modifier.c ├── 209_long_long_max_and_various_flags_combined_and_1_width_and_ll_modifier.c ├── 210_long_long_max_and_various_flags_combined_and_23_width_and_ll_modifier.c ├── 211_long_long_max_and_various_flags_combined_and_dot_precision_and_ll_modifier.c ├── 212_long_long_max_and_various_flags_combined_and_5_precision_and_ll_modifier.c ├── 213_long_long_max_and_various_flags_combined_and_1_width_and_dot_precision_and_ll_modifier.c ├── 214_long_long_max_and_various_flags_combined_and_1_width_and_5_precision_and_ll_modifier.c ├── 215_long_long_max_and_various_flags_combined_and_23_width_and_dot_precision_and_ll_modifier.c ├── 216_long_long_max_and_various_flags_combined_and_23_width_and_5_precision_and_ll_modifier.c ├── 217_long_long_min_and_various_flags.c ├── 218_long_long_min_and_various_flags_and_1_width.c ├── 219_long_long_min_and_various_flags_and_23_width.c ├── 220_long_long_min_and_various_flags_and_dot_precision.c ├── 221_long_long_min_and_various_flags_and_5_precision.c ├── 222_long_long_min_and_various_flags_and_1_width_and_dot_precision.c ├── 223_long_long_min_and_various_flags_and_23_width_and_dot_precision.c ├── 224_long_long_min_and_various_flags_and_1_width_and_5_precision.c ├── 225_long_long_min_and_various_flags_and_23_width_and_5_precision.c ├── 226_long_long_min_and_various_flags_combined.c ├── 227_long_long_min_and_various_flags_combined_and_1_width.c ├── 228_long_long_min_and_various_flags_combined_and_23_width.c ├── 229_long_long_min_and_various_flags_combined_and_dot_precision.c ├── 230_long_long_min_and_various_flags_combined_and_5_precision.c ├── 231_long_long_min_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 232_long_long_min_and_various_flags_combined_and_1_width_and_5_precision.c ├── 233_long_long_min_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 234_long_long_min_and_various_flags_combined_and_23_width_and_5_precision.c ├── 235_long_long_min_and_various_flags_and_hh_modifier.c ├── 236_long_long_min_and_various_flags_and_1_width_and_hh_modifier.c ├── 237_long_long_min_and_various_flags_and_23_width_and_hh_modifier.c ├── 238_long_long_min_and_various_flags_and_dot_precision_and_hh_modifier.c ├── 239_long_long_min_and_various_flags_and_5_precision_and_hh_modifier.c ├── 240_long_long_min_and_various_flags_and_1_width_and_dot_precision_and_hh_modifier.c ├── 241_long_long_min_and_various_flags_and_23_width_and_dot_precision_and_hh_modifier.c ├── 242_long_long_min_and_various_flags_and_1_width_and_5_precision_and_hh_modifier.c ├── 243_long_long_min_and_various_flags_and_23_width_and_5_precision_and_hh_modifier.c ├── 244_long_long_min_and_various_flags_combined_and_hh_modifier.c ├── 245_long_long_min_and_various_flags_combined_and_1_width_and_hh_modifier.c ├── 246_long_long_min_and_various_flags_combined_and_23_width_and_hh_modifier.c ├── 247_long_long_min_and_various_flags_combined_and_dot_precision_and_hh_modifier.c ├── 248_long_long_min_and_various_flags_combined_and_5_precision_and_hh_modifier.c ├── 249_long_long_min_and_various_flags_combined_and_1_width_and_dot_precision_and_hh_modifier.c ├── 250_long_long_min_and_various_flags_combined_and_1_width_and_5_precision_and_hh_modifier.c ├── 251_long_long_min_and_various_flags_combined_and_23_width_and_dot_precision_and_hh_modifier.c ├── 252_long_long_min_and_various_flags_combined_and_23_width_and_5_precision_and_hh_modifier.c ├── 253_long_long_min_and_various_flags_and_h_modifier.c ├── 254_long_long_min_and_various_flags_and_1_width_and_h_modifier.c ├── 255_long_long_min_and_various_flags_and_23_width_and_h_modifier.c ├── 256_long_long_min_and_various_flags_and_dot_precision_and_h_modifier.c ├── 257_long_long_min_and_various_flags_and_5_precision_and_h_modifier.c ├── 258_long_long_min_and_various_flags_and_1_width_and_dot_precision_and_h_modifier.c ├── 259_long_long_min_and_various_flags_and_23_width_and_dot_precision_and_h_modifier.c ├── 260_long_long_min_and_various_flags_and_1_width_and_5_precision_and_h_modifier.c ├── 261_long_long_min_and_various_flags_and_23_width_and_5_precision_and_h_modifier.c ├── 262_long_long_min_and_various_flags_combined_and_h_modifier.c ├── 263_long_long_min_and_various_flags_combined_and_1_width_and_h_modifier.c ├── 264_long_long_min_and_various_flags_combined_and_23_width_and_h_modifier.c ├── 265_long_long_min_and_various_flags_combined_and_dot_precision_and_h_modifier.c ├── 266_long_long_min_and_various_flags_combined_and_5_precision_and_h_modifier.c ├── 267_long_long_min_and_various_flags_combined_and_1_width_and_dot_precision_and_h_modifier.c ├── 268_long_long_min_and_various_flags_combined_and_1_width_and_5_precision_and_h_modifier.c ├── 269_long_long_min_and_various_flags_combined_and_23_width_and_dot_precision_and_h_modifier.c ├── 270_long_long_min_and_various_flags_combined_and_23_width_and_5_precision_and_h_modifier.c ├── 271_long_long_min_and_various_flags_and_l_modifier.c ├── 272_long_long_min_and_various_flags_and_1_width_and_l_modifier.c ├── 273_long_long_min_and_various_flags_and_23_width_and_l_modifier.c ├── 274_long_long_min_and_various_flags_and_dot_precision_and_l_modifier.c ├── 275_long_long_min_and_various_flags_and_5_precision_and_l_modifier.c ├── 276_long_long_min_and_various_flags_and_1_width_and_dot_precision_and_l_modifier.c ├── 277_long_long_min_and_various_flags_and_23_width_and_dot_precision_and_l_modifier.c ├── 278_long_long_min_and_various_flags_and_1_width_and_5_precision_and_l_modifier.c ├── 279_long_long_min_and_various_flags_and_23_width_and_5_precision_and_l_modifier.c ├── 280_long_long_min_and_various_flags_combined_and_l_modifier.c ├── 281_long_long_min_and_various_flags_combined_and_1_width_and_l_modifier.c ├── 282_long_long_min_and_various_flags_combined_and_23_width_and_l_modifier.c ├── 283_long_long_min_and_various_flags_combined_and_dot_precision_and_l_modifier.c ├── 284_long_long_min_and_various_flags_combined_and_5_precision_and_l_modifier.c ├── 285_long_long_min_and_various_flags_combined_and_1_width_and_dot_precision_and_l_modifier.c ├── 286_long_long_min_and_various_flags_combined_and_1_width_and_5_precision_and_l_modifier.c ├── 287_long_long_min_and_various_flags_combined_and_23_width_and_dot_precision_and_l_modifier.c ├── 288_long_long_min_and_various_flags_combined_and_23_width_and_5_precision_and_l_modifier.c ├── 289_long_long_min_and_various_flags_and_ll_modifier.c ├── 290_long_long_min_and_various_flags_and_1_width_and_ll_modifier.c ├── 291_long_long_min_and_various_flags_and_23_width_and_ll_modifier.c ├── 292_long_long_min_and_various_flags_and_dot_precision_and_ll_modifier.c ├── 293_long_long_min_and_various_flags_and_5_precision_and_ll_modifier.c ├── 294_long_long_min_and_various_flags_and_1_width_and_dot_precision_and_ll_modifier.c ├── 295_long_long_min_and_various_flags_and_23_width_and_dot_precision_and_ll_modifier.c ├── 296_long_long_min_and_various_flags_and_1_width_and_5_precision_and_ll_modifier.c ├── 297_long_long_min_and_various_flags_and_23_width_and_5_precision_and_ll_modifier.c ├── 298_long_long_min_and_various_flags_combined_and_ll_modifier.c ├── 299_long_long_min_and_various_flags_combined_and_1_width_and_ll_modifier.c ├── 300_long_long_min_and_various_flags_combined_and_23_width_and_ll_modifier.c ├── 301_long_long_min_and_various_flags_combined_and_dot_precision_and_ll_modifier.c ├── 302_long_long_min_and_various_flags_combined_and_5_precision_and_ll_modifier.c ├── 303_long_long_min_and_various_flags_combined_and_1_width_and_dot_precision_and_ll_modifier.c ├── 304_long_long_min_and_various_flags_combined_and_1_width_and_5_precision_and_ll_modifier.c ├── 305_long_long_min_and_various_flags_combined_and_23_width_and_dot_precision_and_ll_modifier.c ├── 306_long_long_min_and_various_flags_combined_and_23_width_and_5_precision_and_ll_modifier.c └── conv_d.h ├── conv_f ├── 000_launcher.c ├── 001_zero_double_various_flags.c ├── 002_zero_double_various_flags_and_5_width.c ├── 003_zero_double_various_flags_and_1_width.c ├── 004_zero_double_various_flags_and_dot_precision.c ├── 005_zero_double_various_flags_and_8_precision.c ├── 006_zero_double_various_flags_and_5_width_and_8_precision.c ├── 007_zero_double_various_flags_and_15_width_and_8_precision.c ├── 008_zero_double_various_flags_combined_with_minus.c ├── 009_zero_double_various_flags_combined_with_plus.c ├── 010_minus_zero_double_various_flags.c ├── 011_minus_zero_double_various_flags_and_5_width.c ├── 012_minus_zero_double_various_flags_and_1_width.c ├── 013_minus_zero_double_various_flags_and_dot_precision.c ├── 014_minus_zero_double_various_flags_and_8_precision.c ├── 015_minus_zero_double_various_flags_and_5_width_and_8_precision.c ├── 016_minus_zero_double_various_flags_and_15_width_and_8_precision.c ├── 017_minus_zero_double_various_flags_combined_with_minus.c ├── 018_minus_zero_double_various_flags_combined_with_plus.c ├── 019_nan_various_flags.c ├── 020_nan_various_flags_and_5_width.c ├── 021_nan_various_flags_and_1_width.c ├── 022_nan_various_flags_and_dot_precision.c ├── 023_nan_various_flags_and_8_precision.c ├── 024_nan_various_flags_and_5_width_and_8_precision.c ├── 025_nan_various_flags_and_15_width_and_8_precision.c ├── 026_nan_various_flags_combined_with_minus.c ├── 027_nan_various_flags_combined_with_plus.c ├── 028_infinity_various_flags.c ├── 029_infinity_various_flags_and_5_width.c ├── 030_infinity_various_flags_and_1_width.c ├── 031_infinity_various_flags_and_dot_precision.c ├── 032_infinity_various_flags_and_8_precision.c ├── 033_infinity_various_flags_and_5_width_and_8_precision.c ├── 034_infinity_various_flags_and_15_width_and_8_precision.c ├── 035_infinity_various_flags_combined_with_minus.c ├── 036_infinity_various_flags_combined_with_plus.c ├── 037_minus_infinity_various_flags.c ├── 038_minus_infinity_various_flags_and_5_width.c ├── 039_minus_infinity_various_flags_and_1_width.c ├── 040_minus_infinity_various_flags_and_dot_precision.c ├── 041_minus_infinity_various_flags_and_8_precision.c ├── 042_minus_infinity_various_flags_and_5_width_and_8_precision.c ├── 043_minus_infinity_various_flags_and_15_width_and_8_precision.c ├── 044_minus_infinity_various_flags_combined_with_minus.c ├── 045_minus_infinity_various_flags_combined_with_plus.c ├── 046_double_various_flags.c ├── 047_double_various_flags_and_5_width.c ├── 048_double_various_flags_and_1_width.c ├── 049_double_various_flags_and_dot_precision.c ├── 050_double_various_flags_and_8_precision.c ├── 051_double_various_flags_and_5_width_and_8_precision.c ├── 052_double_various_flags_and_15_width_and_8_precision.c ├── 053_double_various_flags_combined_with_minus.c ├── 054_double_various_flags_combined_with_plus.c ├── 055_double_various_flags_l_length_modifier.c ├── 056_double_various_flags_and_5_width_l_length_modifier.c ├── 057_double_various_flags_and_1_width_l_length_modifier.c ├── 058_double_various_flags_and_dot_precision_l_length_modifier.c ├── 059_double_various_flags_and_8_precision_l_length_modifier.c ├── 060_double_various_flags_and_5_width_and_8_precision_l_length_modifier.c ├── 061_double_various_flags_and_15_width_and_8_precision_l_length_modifier.c ├── 062_double_various_flags_combined_with_minus_l_length_modifier.c ├── 063_double_various_flags_combined_with_plus_l_length_modifier.c ├── 064_negative_double_various_flags.c ├── 065_negative_double_various_flags_and_5_width.c ├── 066_negative_double_various_flags_and_1_width.c ├── 067_negative_double_various_flags_and_dot_precision.c ├── 068_negative_double_various_flags_and_8_precision.c ├── 069_negative_double_various_flags_and_5_width_and_8_precision.c ├── 070_negative_double_various_flags_and_15_width_and_8_precision.c ├── 071_negative_double_various_flags_combined_with_minus.c ├── 072_negative_double_various_flags_combined_with_plus.c ├── 073_double_max_various_flags.c ├── 074_double_max_various_flags_and_5_width.c ├── 075_double_max_various_flags_and_1_width.c ├── 076_double_max_various_flags_and_dot_precision.c ├── 077_double_max_various_flags_and_8_precision.c ├── 078_double_max_various_flags_and_5_width_and_8_precision.c ├── 079_double_max_various_flags_and_15_width_and_8_precision.c ├── 080_double_max_various_flags_combined_with_minus.c ├── 081_double_max_various_flags_combined_with_plus.c ├── 082_double_min_various_flags.c ├── 083_double_min_various_flags_and_5_width.c ├── 084_double_min_various_flags_and_1_width.c ├── 085_double_min_various_flags_and_dot_precision.c ├── 086_double_min_various_flags_and_8_precision.c ├── 087_double_min_various_flags_and_5_width_and_8_precision.c ├── 088_double_min_various_flags_and_15_width_and_8_precision.c ├── 089_double_min_various_flags_combined_with_minus.c ├── 090_double_min_various_flags_combined_with_plus.c ├── 091_long_double_various_flags.c ├── 092_long_double_various_flags_and_5_width.c ├── 093_long_double_various_flags_and_1_width.c ├── 094_long_double_various_flags_and_dot_precision.c ├── 095_long_double_various_flags_and_8_precision.c ├── 096_long_double_various_flags_and_5_width_and_8_precision.c ├── 097_long_double_various_flags_and_15_width_and_8_precision.c ├── 098_long_double_various_flags_combined_with_minus.c ├── 099_long_double_various_flags_combined_with_plus.c ├── 100_long_double_max.c ├── 101_long_double_min.c ├── 102_rounding_only_nines_1.c ├── 103_rounding_only_nines_2.c ├── 104_rounding_not_only_nines.c ├── 105_rounding_not_only_nines_2.c ├── 106_rounding_normal.c ├── 107_rounding_only_nines_width_small.c ├── 108_rounding_only_nines_width_large.c ├── 109_rounding_middle_down.c ├── 110_rounding_middle_up.c ├── 111_powers_of_10.c ├── 112_negative_powers_of_10.c ├── 113_denormalized_numbers.c ├── 114_errors.c └── conv_f.h ├── conv_i ├── 000_launcher.c ├── 001_zero_and_various_flags.c ├── 002_zero_and_various_flags_and_1_width.c ├── 003_zero_and_various_flags_and_23_width.c ├── 004_zero_and_various_flags_and_dot_precision.c ├── 005_zero_and_various_flags_and_5_precision.c ├── 006_zero_and_various_flags_and_1_width_and_dot_precision.c ├── 007_zero_and_various_flags_and_23_width_and_dot_precision.c ├── 008_zero_and_various_flags_and_1_width_and_5_precision.c ├── 009_zero_and_various_flags_and_23_width_and_5_precision.c ├── 010_zero_and_various_flags_combined.c ├── 011_zero_and_various_flags_combined_and_1_width.c ├── 012_zero_and_various_flags_combined_and_23_width.c ├── 013_zero_and_various_flags_combined_and_dot_precision.c ├── 014_zero_and_various_flags_combined_and_5_precision.c ├── 015_zero_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 016_zero_and_various_flags_combined_and_1_width_and_5_precision.c ├── 017_zero_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 018_zero_and_various_flags_combined_and_23_width_and_5_precision.c ├── 019_minus_zero_and_various_flags.c ├── 020_minus_zero_and_various_flags_and_1_width.c ├── 021_minus_zero_and_various_flags_and_23_width.c ├── 022_minus_zero_and_various_flags_and_dot_precision.c ├── 023_minus_zero_and_various_flags_and_5_precision.c ├── 024_minus_zero_and_various_flags_and_1_width_and_dot_precision.c ├── 025_minus_zero_and_various_flags_and_23_width_and_dot_precision.c ├── 026_minus_zero_and_various_flags_and_1_width_and_5_precision.c ├── 027_minus_zero_and_various_flags_and_23_width_and_5_precision.c ├── 028_minus_zero_and_various_flags_combined.c ├── 029_minus_zero_and_various_flags_combined_and_1_width.c ├── 030_minus_zero_and_various_flags_combined_and_23_width.c ├── 031_minus_zero_and_various_flags_combined_and_dot_precision.c ├── 032_minus_zero_and_various_flags_combined_and_5_precision.c ├── 033_minus_zero_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 034_minus_zero_and_various_flags_combined_and_1_width_and_5_precision.c ├── 035_minus_zero_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 036_minus_zero_and_various_flags_combined_and_23_width_and_5_precision.c ├── 037_int_max_and_various_flags.c ├── 038_int_max_and_various_flags_and_1_width.c ├── 039_int_max_and_various_flags_and_23_width.c ├── 040_int_max_and_various_flags_and_dot_precision.c ├── 041_int_max_and_various_flags_and_5_precision.c ├── 042_int_max_and_various_flags_and_1_width_and_dot_precision.c ├── 043_int_max_and_various_flags_and_23_width_and_dot_precision.c ├── 044_int_max_and_various_flags_and_1_width_and_5_precision.c ├── 045_int_max_and_various_flags_and_23_width_and_5_precision.c ├── 046_int_max_and_various_flags_combined.c ├── 047_int_max_and_various_flags_combined_and_1_width.c ├── 048_int_max_and_various_flags_combined_and_23_width.c ├── 049_int_max_and_various_flags_combined_and_dot_precision.c ├── 050_int_max_and_various_flags_combined_and_5_precision.c ├── 051_int_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 052_int_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 053_int_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 054_int_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 055_int_min_and_various_flags.c ├── 056_int_min_and_various_flags_and_1_width.c ├── 057_int_min_and_various_flags_and_23_width.c ├── 058_int_min_and_various_flags_and_dot_precision.c ├── 059_int_min_and_various_flags_and_5_precision.c ├── 060_int_min_and_various_flags_and_1_width_and_dot_precision.c ├── 061_int_min_and_various_flags_and_23_width_and_dot_precision.c ├── 062_int_min_and_various_flags_and_1_width_and_5_precision.c ├── 063_int_min_and_various_flags_and_23_width_and_5_precision.c ├── 064_int_min_and_various_flags_combined.c ├── 065_int_min_and_various_flags_combined_and_1_width.c ├── 066_int_min_and_various_flags_combined_and_23_width.c ├── 067_int_min_and_various_flags_combined_and_dot_precision.c ├── 068_int_min_and_various_flags_combined_and_5_precision.c ├── 069_int_min_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 070_int_min_and_various_flags_combined_and_1_width_and_5_precision.c ├── 071_int_min_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 072_int_min_and_various_flags_combined_and_23_width_and_5_precision.c ├── 073_uint_max_and_various_flags.c ├── 074_uint_max_and_various_flags_and_1_width.c ├── 075_uint_max_and_various_flags_and_23_width.c ├── 076_uint_max_and_various_flags_and_dot_precision.c ├── 077_uint_max_and_various_flags_and_5_precision.c ├── 078_uint_max_and_various_flags_and_1_width_and_dot_precision.c ├── 079_uint_max_and_various_flags_and_23_width_and_dot_precision.c ├── 080_uint_max_and_various_flags_and_1_width_and_5_precision.c ├── 081_uint_max_and_various_flags_and_23_width_and_5_precision.c ├── 082_uint_max_and_various_flags_combined.c ├── 083_uint_max_and_various_flags_combined_and_1_width.c ├── 084_uint_max_and_various_flags_combined_and_23_width.c ├── 085_uint_max_and_various_flags_combined_and_dot_precision.c ├── 086_uint_max_and_various_flags_combined_and_5_precision.c ├── 087_uint_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 088_uint_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 089_uint_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 090_uint_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 091_long_max_and_various_flags.c ├── 092_long_max_and_various_flags_and_1_width.c ├── 093_long_max_and_various_flags_and_23_width.c ├── 094_long_max_and_various_flags_and_dot_precision.c ├── 095_long_max_and_various_flags_and_5_precision.c ├── 096_long_max_and_various_flags_and_1_width_and_dot_precision.c ├── 097_long_max_and_various_flags_and_23_width_and_dot_precision.c ├── 098_long_max_and_various_flags_and_1_width_and_5_precision.c ├── 099_long_max_and_various_flags_and_23_width_and_5_precision.c ├── 100_long_max_and_various_flags_combined.c ├── 101_long_max_and_various_flags_combined_and_1_width.c ├── 102_long_max_and_various_flags_combined_and_23_width.c ├── 103_long_max_and_various_flags_combined_and_dot_precision.c ├── 104_long_max_and_various_flags_combined_and_5_precision.c ├── 105_long_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 106_long_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 107_long_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 108_long_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 109_long_min_and_various_flags.c ├── 110_long_min_and_various_flags_and_1_width.c ├── 111_long_min_and_various_flags_and_23_width.c ├── 112_long_min_and_various_flags_and_dot_precision.c ├── 113_long_min_and_various_flags_and_5_precision.c ├── 114_long_min_and_various_flags_and_1_width_and_dot_precision.c ├── 115_long_min_and_various_flags_and_23_width_and_dot_precision.c ├── 116_long_min_and_various_flags_and_1_width_and_5_precision.c ├── 117_long_min_and_various_flags_and_23_width_and_5_precision.c ├── 118_long_min_and_various_flags_combined.c ├── 119_long_min_and_various_flags_combined_and_1_width.c ├── 120_long_min_and_various_flags_combined_and_23_width.c ├── 121_long_min_and_various_flags_combined_and_dot_precision.c ├── 122_long_min_and_various_flags_combined_and_5_precision.c ├── 123_long_min_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 124_long_min_and_various_flags_combined_and_1_width_and_5_precision.c ├── 125_long_min_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 126_long_min_and_various_flags_combined_and_23_width_and_5_precision.c ├── 127_long_long_max_and_various_flags.c ├── 128_long_long_max_and_various_flags_and_1_width.c ├── 129_long_long_max_and_various_flags_and_23_width.c ├── 130_long_long_max_and_various_flags_and_dot_precision.c ├── 131_long_long_max_and_various_flags_and_5_precision.c ├── 132_long_long_max_and_various_flags_and_1_width_and_dot_precision.c ├── 133_long_long_max_and_various_flags_and_23_width_and_dot_precision.c ├── 134_long_long_max_and_various_flags_and_1_width_and_5_precision.c ├── 135_long_long_max_and_various_flags_and_23_width_and_5_precision.c ├── 136_long_long_max_and_various_flags_combined.c ├── 137_long_long_max_and_various_flags_combined_and_1_width.c ├── 138_long_long_max_and_various_flags_combined_and_23_width.c ├── 139_long_long_max_and_various_flags_combined_and_dot_precision.c ├── 140_long_long_max_and_various_flags_combined_and_5_precision.c ├── 141_long_long_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 142_long_long_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 143_long_long_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 144_long_long_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 145_long_long_max_and_various_flags_and_hh_modifier.c ├── 146_long_long_max_and_various_flags_and_1_width_and_hh_modifier.c ├── 147_long_long_max_and_various_flags_and_23_width_and_hh_modifier.c ├── 148_long_long_max_and_various_flags_and_dot_precision_and_hh_modifier.c ├── 149_long_long_max_and_various_flags_and_5_precision_and_hh_modifier.c ├── 150_long_long_max_and_various_flags_and_1_width_and_dot_precision_and_hh_modifier.c ├── 151_long_long_max_and_various_flags_and_23_width_and_dot_precision_and_hh_modifier.c ├── 152_long_long_max_and_various_flags_and_1_width_and_5_precision_and_hh_modifier.c ├── 153_long_long_max_and_various_flags_and_23_width_and_5_precision_and_hh_modifier.c ├── 154_long_long_max_and_various_flags_combined_and_hh_modifier.c ├── 155_long_long_max_and_various_flags_combined_and_1_width_and_hh_modifier.c ├── 156_long_long_max_and_various_flags_combined_and_23_width_and_hh_modifier.c ├── 157_long_long_max_and_various_flags_combined_and_dot_precision_and_hh_modifier.c ├── 158_long_long_max_and_various_flags_combined_and_5_precision_and_hh_modifier.c ├── 159_long_long_max_and_various_flags_combined_and_1_width_and_dot_precision_and_hh_modifier.c ├── 160_long_long_max_and_various_flags_combined_and_1_width_and_5_precision_and_hh_modifier.c ├── 161_long_long_max_and_various_flags_combined_and_23_width_and_dot_precision_and_hh_modifier.c ├── 162_long_long_max_and_various_flags_combined_and_23_width_and_5_precision_and_hh_modifier.c ├── 163_long_long_max_and_various_flags_and_h_modifier.c ├── 164_long_long_max_and_various_flags_and_1_width_and_h_modifier.c ├── 165_long_long_max_and_various_flags_and_23_width_and_h_modifier.c ├── 166_long_long_max_and_various_flags_and_dot_precision_and_h_modifier.c ├── 167_long_long_max_and_various_flags_and_5_precision_and_h_modifier.c ├── 168_long_long_max_and_various_flags_and_1_width_and_dot_precision_and_h_modifier.c ├── 169_long_long_max_and_various_flags_and_23_width_and_dot_precision_and_h_modifier.c ├── 170_long_long_max_and_various_flags_and_1_width_and_5_precision_and_h_modifier.c ├── 171_long_long_max_and_various_flags_and_23_width_and_5_precision_and_h_modifier.c ├── 172_long_long_max_and_various_flags_combined_and_h_modifier.c ├── 173_long_long_max_and_various_flags_combined_and_1_width_and_h_modifier.c ├── 174_long_long_max_and_various_flags_combined_and_23_width_and_h_modifier.c ├── 175_long_long_max_and_various_flags_combined_and_dot_precision_and_h_modifier.c ├── 176_long_long_max_and_various_flags_combined_and_5_precision_and_h_modifier.c ├── 177_long_long_max_and_various_flags_combined_and_1_width_and_dot_precision_and_h_modifier.c ├── 178_long_long_max_and_various_flags_combined_and_1_width_and_5_precision_and_h_modifier.c ├── 179_long_long_max_and_various_flags_combined_and_23_width_and_dot_precision_and_h_modifier.c ├── 180_long_long_max_and_various_flags_combined_and_23_width_and_5_precision_and_h_modifier.c ├── 181_long_long_max_and_various_flags_and_l_modifier.c ├── 182_long_long_max_and_various_flags_and_1_width_and_l_modifier.c ├── 183_long_long_max_and_various_flags_and_23_width_and_l_modifier.c ├── 184_long_long_max_and_various_flags_and_dot_precision_and_l_modifier.c ├── 185_long_long_max_and_various_flags_and_5_precision_and_l_modifier.c ├── 186_long_long_max_and_various_flags_and_1_width_and_dot_precision_and_l_modifier.c ├── 187_long_long_max_and_various_flags_and_23_width_and_dot_precision_and_l_modifier.c ├── 188_long_long_max_and_various_flags_and_1_width_and_5_precision_and_l_modifier.c ├── 189_long_long_max_and_various_flags_and_23_width_and_5_precision_and_l_modifier.c ├── 190_long_long_max_and_various_flags_combined_and_l_modifier.c ├── 191_long_long_max_and_various_flags_combined_and_1_width_and_l_modifier.c ├── 192_long_long_max_and_various_flags_combined_and_23_width_and_l_modifier.c ├── 193_long_long_max_and_various_flags_combined_and_dot_precision_and_l_modifier.c ├── 194_long_long_max_and_various_flags_combined_and_5_precision_and_l_modifier.c ├── 195_long_long_max_and_various_flags_combined_and_1_width_and_dot_precision_and_l_modifier.c ├── 196_long_long_max_and_various_flags_combined_and_1_width_and_5_precision_and_l_modifier.c ├── 197_long_long_max_and_various_flags_combined_and_23_width_and_dot_precision_and_l_modifier.c ├── 198_long_long_max_and_various_flags_combined_and_23_width_and_5_precision_and_l_modifier.c ├── 199_long_long_max_and_various_flags_and_ll_modifier.c ├── 200_long_long_max_and_various_flags_and_1_width_and_ll_modifier.c ├── 201_long_long_max_and_various_flags_and_23_width_and_ll_modifier.c ├── 202_long_long_max_and_various_flags_and_dot_precision_and_ll_modifier.c ├── 203_long_long_max_and_various_flags_and_5_precision_and_ll_modifier.c ├── 204_long_long_max_and_various_flags_and_1_width_and_dot_precision_and_ll_modifier.c ├── 205_long_long_max_and_various_flags_and_23_width_and_dot_precision_and_ll_modifier.c ├── 206_long_long_max_and_various_flags_and_1_width_and_5_precision_and_ll_modifier.c ├── 207_long_long_max_and_various_flags_and_23_width_and_5_precision_and_ll_modifier.c ├── 208_long_long_max_and_various_flags_combined_and_ll_modifier.c ├── 209_long_long_max_and_various_flags_combined_and_1_width_and_ll_modifier.c ├── 210_long_long_max_and_various_flags_combined_and_23_width_and_ll_modifier.c ├── 211_long_long_max_and_various_flags_combined_and_dot_precision_and_ll_modifier.c ├── 212_long_long_max_and_various_flags_combined_and_5_precision_and_ll_modifier.c ├── 213_long_long_max_and_various_flags_combined_and_1_width_and_dot_precision_and_ll_modifier.c ├── 214_long_long_max_and_various_flags_combined_and_1_width_and_5_precision_and_ll_modifier.c ├── 215_long_long_max_and_various_flags_combined_and_23_width_and_dot_precision_and_ll_modifier.c ├── 216_long_long_max_and_various_flags_combined_and_23_width_and_5_precision_and_ll_modifier.c ├── 217_long_long_min_and_various_flags.c ├── 218_long_long_min_and_various_flags_and_1_width.c ├── 219_long_long_min_and_various_flags_and_23_width.c ├── 220_long_long_min_and_various_flags_and_dot_precision.c ├── 221_long_long_min_and_various_flags_and_5_precision.c ├── 222_long_long_min_and_various_flags_and_1_width_and_dot_precision.c ├── 223_long_long_min_and_various_flags_and_23_width_and_dot_precision.c ├── 224_long_long_min_and_various_flags_and_1_width_and_5_precision.c ├── 225_long_long_min_and_various_flags_and_23_width_and_5_precision.c ├── 226_long_long_min_and_various_flags_combined.c ├── 227_long_long_min_and_various_flags_combined_and_1_width.c ├── 228_long_long_min_and_various_flags_combined_and_23_width.c ├── 229_long_long_min_and_various_flags_combined_and_dot_precision.c ├── 230_long_long_min_and_various_flags_combined_and_5_precision.c ├── 231_long_long_min_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 232_long_long_min_and_various_flags_combined_and_1_width_and_5_precision.c ├── 233_long_long_min_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 234_long_long_min_and_various_flags_combined_and_23_width_and_5_precision.c ├── 235_long_long_min_and_various_flags_and_hh_modifier.c ├── 236_long_long_min_and_various_flags_and_1_width_and_hh_modifier.c ├── 237_long_long_min_and_various_flags_and_23_width_and_hh_modifier.c ├── 238_long_long_min_and_various_flags_and_dot_precision_and_hh_modifier.c ├── 239_long_long_min_and_various_flags_and_5_precision_and_hh_modifier.c ├── 240_long_long_min_and_various_flags_and_1_width_and_dot_precision_and_hh_modifier.c ├── 241_long_long_min_and_various_flags_and_23_width_and_dot_precision_and_hh_modifier.c ├── 242_long_long_min_and_various_flags_and_1_width_and_5_precision_and_hh_modifier.c ├── 243_long_long_min_and_various_flags_and_23_width_and_5_precision_and_hh_modifier.c ├── 244_long_long_min_and_various_flags_combined_and_hh_modifier.c ├── 245_long_long_min_and_various_flags_combined_and_1_width_and_hh_modifier.c ├── 246_long_long_min_and_various_flags_combined_and_23_width_and_hh_modifier.c ├── 247_long_long_min_and_various_flags_combined_and_dot_precision_and_hh_modifier.c ├── 248_long_long_min_and_various_flags_combined_and_5_precision_and_hh_modifier.c ├── 249_long_long_min_and_various_flags_combined_and_1_width_and_dot_precision_and_hh_modifier.c ├── 250_long_long_min_and_various_flags_combined_and_1_width_and_5_precision_and_hh_modifier.c ├── 251_long_long_min_and_various_flags_combined_and_23_width_and_dot_precision_and_hh_modifier.c ├── 252_long_long_min_and_various_flags_combined_and_23_width_and_5_precision_and_hh_modifier.c ├── 253_long_long_min_and_various_flags_and_h_modifier.c ├── 254_long_long_min_and_various_flags_and_1_width_and_h_modifier.c ├── 255_long_long_min_and_various_flags_and_23_width_and_h_modifier.c ├── 256_long_long_min_and_various_flags_and_dot_precision_and_h_modifier.c ├── 257_long_long_min_and_various_flags_and_5_precision_and_h_modifier.c ├── 258_long_long_min_and_various_flags_and_1_width_and_dot_precision_and_h_modifier.c ├── 259_long_long_min_and_various_flags_and_23_width_and_dot_precision_and_h_modifier.c ├── 260_long_long_min_and_various_flags_and_1_width_and_5_precision_and_h_modifier.c ├── 261_long_long_min_and_various_flags_and_23_width_and_5_precision_and_h_modifier.c ├── 262_long_long_min_and_various_flags_combined_and_h_modifier.c ├── 263_long_long_min_and_various_flags_combined_and_1_width_and_h_modifier.c ├── 264_long_long_min_and_various_flags_combined_and_23_width_and_h_modifier.c ├── 265_long_long_min_and_various_flags_combined_and_dot_precision_and_h_modifier.c ├── 266_long_long_min_and_various_flags_combined_and_5_precision_and_h_modifier.c ├── 267_long_long_min_and_various_flags_combined_and_1_width_and_dot_precision_and_h_modifier.c ├── 268_long_long_min_and_various_flags_combined_and_1_width_and_5_precision_and_h_modifier.c ├── 269_long_long_min_and_various_flags_combined_and_23_width_and_dot_precision_and_h_modifier.c ├── 270_long_long_min_and_various_flags_combined_and_23_width_and_5_precision_and_h_modifier.c ├── 271_long_long_min_and_various_flags_and_l_modifier.c ├── 272_long_long_min_and_various_flags_and_1_width_and_l_modifier.c ├── 273_long_long_min_and_various_flags_and_23_width_and_l_modifier.c ├── 274_long_long_min_and_various_flags_and_dot_precision_and_l_modifier.c ├── 275_long_long_min_and_various_flags_and_5_precision_and_l_modifier.c ├── 276_long_long_min_and_various_flags_and_1_width_and_dot_precision_and_l_modifier.c ├── 277_long_long_min_and_various_flags_and_23_width_and_dot_precision_and_l_modifier.c ├── 278_long_long_min_and_various_flags_and_1_width_and_5_precision_and_l_modifier.c ├── 279_long_long_min_and_various_flags_and_23_width_and_5_precision_and_l_modifier.c ├── 280_long_long_min_and_various_flags_combined_and_l_modifier.c ├── 281_long_long_min_and_various_flags_combined_and_1_width_and_l_modifier.c ├── 282_long_long_min_and_various_flags_combined_and_23_width_and_l_modifier.c ├── 283_long_long_min_and_various_flags_combined_and_dot_precision_and_l_modifier.c ├── 284_long_long_min_and_various_flags_combined_and_5_precision_and_l_modifier.c ├── 285_long_long_min_and_various_flags_combined_and_1_width_and_dot_precision_and_l_modifier.c ├── 286_long_long_min_and_various_flags_combined_and_1_width_and_5_precision_and_l_modifier.c ├── 287_long_long_min_and_various_flags_combined_and_23_width_and_dot_precision_and_l_modifier.c ├── 288_long_long_min_and_various_flags_combined_and_23_width_and_5_precision_and_l_modifier.c ├── 289_long_long_min_and_various_flags_and_ll_modifier.c ├── 290_long_long_min_and_various_flags_and_1_width_and_ll_modifier.c ├── 291_long_long_min_and_various_flags_and_23_width_and_ll_modifier.c ├── 292_long_long_min_and_various_flags_and_dot_precision_and_ll_modifier.c ├── 293_long_long_min_and_various_flags_and_5_precision_and_ll_modifier.c ├── 294_long_long_min_and_various_flags_and_1_width_and_dot_precision_and_ll_modifier.c ├── 295_long_long_min_and_various_flags_and_23_width_and_dot_precision_and_ll_modifier.c ├── 296_long_long_min_and_various_flags_and_1_width_and_5_precision_and_ll_modifier.c ├── 297_long_long_min_and_various_flags_and_23_width_and_5_precision_and_ll_modifier.c ├── 298_long_long_min_and_various_flags_combined_and_ll_modifier.c ├── 299_long_long_min_and_various_flags_combined_and_1_width_and_ll_modifier.c ├── 300_long_long_min_and_various_flags_combined_and_23_width_and_ll_modifier.c ├── 301_long_long_min_and_various_flags_combined_and_dot_precision_and_ll_modifier.c ├── 302_long_long_min_and_various_flags_combined_and_5_precision_and_ll_modifier.c ├── 303_long_long_min_and_various_flags_combined_and_1_width_and_dot_precision_and_ll_modifier.c ├── 304_long_long_min_and_various_flags_combined_and_1_width_and_5_precision_and_ll_modifier.c ├── 305_long_long_min_and_various_flags_combined_and_23_width_and_dot_precision_and_ll_modifier.c ├── 306_long_long_min_and_various_flags_combined_and_23_width_and_5_precision_and_ll_modifier.c └── conv_i.h ├── conv_o ├── 000_launcher.c ├── 001_zero_and_various_flags.c ├── 002_zero_and_various_flags_and_1_width.c ├── 003_zero_and_various_flags_and_23_width.c ├── 004_zero_and_various_flags_and_dot_precision.c ├── 005_zero_and_various_flags_and_5_precision.c ├── 006_zero_and_various_flags_and_1_width_and_dot_precision.c ├── 007_zero_and_various_flags_and_23_width_and_dot_precision.c ├── 008_zero_and_various_flags_and_1_width_and_5_precision.c ├── 009_zero_and_various_flags_and_23_width_and_5_precision.c ├── 010_zero_and_various_flags_combined.c ├── 011_zero_and_various_flags_combined_and_1_width.c ├── 012_zero_and_various_flags_combined_and_23_width.c ├── 013_zero_and_various_flags_combined_and_dot_precision.c ├── 014_zero_and_various_flags_combined_and_5_precision.c ├── 015_zero_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 016_zero_and_various_flags_combined_and_1_width_and_5_precision.c ├── 017_zero_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 018_zero_and_various_flags_combined_and_23_width_and_5_precision.c ├── 019_uint_max_and_various_flags.c ├── 020_uint_max_and_various_flags_and_1_width.c ├── 021_uint_max_and_various_flags_and_23_width.c ├── 022_uint_max_and_various_flags_and_dot_precision.c ├── 023_uint_max_and_various_flags_and_5_precision.c ├── 024_uint_max_and_various_flags_and_1_width_and_dot_precision.c ├── 025_uint_max_and_various_flags_and_23_width_and_dot_precision.c ├── 026_uint_max_and_various_flags_and_1_width_and_5_precision.c ├── 027_uint_max_and_various_flags_and_23_width_and_5_precision.c ├── 028_uint_max_and_various_flags_combined.c ├── 029_uint_max_and_various_flags_combined_and_1_width.c ├── 030_uint_max_and_various_flags_combined_and_23_width.c ├── 031_uint_max_and_various_flags_combined_and_dot_precision.c ├── 032_uint_max_and_various_flags_combined_and_5_precision.c ├── 033_uint_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 034_uint_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 035_uint_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 036_uint_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 037_ulong_max_and_various_flags.c ├── 038_ulong_max_and_various_flags_and_1_width.c ├── 039_ulong_max_and_various_flags_and_23_width.c ├── 040_ulong_max_and_various_flags_and_dot_precision.c ├── 041_ulong_max_and_various_flags_and_5_precision.c ├── 042_ulong_max_and_various_flags_and_1_width_and_dot_precision.c ├── 043_ulong_max_and_various_flags_and_23_width_and_dot_precision.c ├── 044_ulong_max_and_various_flags_and_1_width_and_5_precision.c ├── 045_ulong_max_and_various_flags_and_23_width_and_5_precision.c ├── 046_ulong_max_and_various_flags_combined.c ├── 047_ulong_max_and_various_flags_combined_and_1_width.c ├── 048_ulong_max_and_various_flags_combined_and_23_width.c ├── 049_ulong_max_and_various_flags_combined_and_dot_precision.c ├── 050_ulong_max_and_various_flags_combined_and_5_precision.c ├── 051_ulong_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 052_ulong_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 053_ulong_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 054_ulong_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 055_ullong_max_and_various_flags.c ├── 056_ullong_max_and_various_flags_and_1_width.c ├── 057_ullong_max_and_various_flags_and_23_width.c ├── 058_ullong_max_and_various_flags_and_dot_precision.c ├── 059_ullong_max_and_various_flags_and_5_precision.c ├── 060_ullong_max_and_various_flags_and_1_width_and_dot_precision.c ├── 061_ullong_max_and_various_flags_and_23_width_and_dot_precision.c ├── 062_ullong_max_and_various_flags_and_1_width_and_5_precision.c ├── 063_ullong_max_and_various_flags_and_23_width_and_5_precision.c ├── 064_ullong_max_and_various_flags_combined.c ├── 065_ullong_max_and_various_flags_combined_and_1_width.c ├── 066_ullong_max_and_various_flags_combined_and_23_width.c ├── 067_ullong_max_and_various_flags_combined_and_dot_precision.c ├── 068_ullong_max_and_various_flags_combined_and_5_precision.c ├── 069_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 070_ullong_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 071_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 072_ullong_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 073_ullong_max_and_various_flags_hh_modifier.c ├── 074_ullong_max_and_various_flags_and_1_width_hh_modifier.c ├── 075_ullong_max_and_various_flags_and_23_width_hh_modifier.c ├── 076_ullong_max_and_various_flags_and_dot_precision_hh_modifier.c ├── 077_ullong_max_and_various_flags_and_5_precision_hh_modifier.c ├── 078_ullong_max_and_various_flags_and_1_width_and_dot_precision_hh_modifier.c ├── 079_ullong_max_and_various_flags_and_23_width_and_dot_precision_hh_modifier.c ├── 080_ullong_max_and_various_flags_and_1_width_and_5_precision_hh_modifier.c ├── 081_ullong_max_and_various_flags_and_23_width_and_5_precision_hh_modifier.c ├── 082_ullong_max_and_various_flags_combined_hh_modifier.c ├── 083_ullong_max_and_various_flags_combined_and_1_width_hh_modifier.c ├── 084_ullong_max_and_various_flags_combined_and_23_width_hh_modifier.c ├── 085_ullong_max_and_various_flags_combined_and_dot_precision_hh_modifier.c ├── 086_ullong_max_and_various_flags_combined_and_5_precision_hh_modifier.c ├── 087_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_hh_modifier.c ├── 088_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_hh_modifier.c ├── 089_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_hh_modifier.c ├── 090_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_hh_modifier.c ├── 091_ullong_max_and_various_flags_h_modifier.c ├── 092_ullong_max_and_various_flags_and_1_width_h_modifier.c ├── 093_ullong_max_and_various_flags_and_23_width_h_modifier.c ├── 094_ullong_max_and_various_flags_and_dot_precision_h_modifier.c ├── 095_ullong_max_and_various_flags_and_5_precision_h_modifier.c ├── 096_ullong_max_and_various_flags_and_1_width_and_dot_precision_h_modifier.c ├── 097_ullong_max_and_various_flags_and_23_width_and_dot_precision_h_modifier.c ├── 098_ullong_max_and_various_flags_and_1_width_and_5_precision_h_modifier.c ├── 099_ullong_max_and_various_flags_and_23_width_and_5_precision_h_modifier.c ├── 100_ullong_max_and_various_flags_combined_h_modifier.c ├── 101_ullong_max_and_various_flags_combined_and_1_width_h_modifier.c ├── 102_ullong_max_and_various_flags_combined_and_23_width_h_modifier.c ├── 103_ullong_max_and_various_flags_combined_and_dot_precision_h_modifier.c ├── 104_ullong_max_and_various_flags_combined_and_5_precision_h_modifier.c ├── 105_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_h_modifier.c ├── 106_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_h_modifier.c ├── 107_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_h_modifier.c ├── 108_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_h_modifier.c ├── 109_ullong_max_and_various_flags_l_modifier.c ├── 110_ullong_max_and_various_flags_and_1_width_l_modifier.c ├── 111_ullong_max_and_various_flags_and_23_width_l_modifier.c ├── 112_ullong_max_and_various_flags_and_dot_precision_l_modifier.c ├── 113_ullong_max_and_various_flags_and_5_precision_l_modifier.c ├── 114_ullong_max_and_various_flags_and_1_width_and_dot_precision_l_modifier.c ├── 115_ullong_max_and_various_flags_and_23_width_and_dot_precision_l_modifier.c ├── 116_ullong_max_and_various_flags_and_1_width_and_5_precision_l_modifier.c ├── 117_ullong_max_and_various_flags_and_23_width_and_5_precision_l_modifier.c ├── 118_ullong_max_and_various_flags_combined_l_modifier.c ├── 119_ullong_max_and_various_flags_combined_and_1_width_l_modifier.c ├── 120_ullong_max_and_various_flags_combined_and_23_width_l_modifier.c ├── 121_ullong_max_and_various_flags_combined_and_dot_precision_l_modifier.c ├── 122_ullong_max_and_various_flags_combined_and_5_precision_l_modifier.c ├── 123_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_l_modifier.c ├── 124_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_l_modifier.c ├── 125_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_l_modifier.c ├── 126_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_l_modifier.c ├── 127_ullong_max_and_various_flags_ll_modifier.c ├── 128_ullong_max_and_various_flags_and_1_width_ll_modifier.c ├── 129_ullong_max_and_various_flags_and_23_width_ll_modifier.c ├── 130_ullong_max_and_various_flags_and_dot_precision_ll_modifier.c ├── 131_ullong_max_and_various_flags_and_5_precision_ll_modifier.c ├── 132_ullong_max_and_various_flags_and_1_width_and_dot_precision_ll_modifier.c ├── 133_ullong_max_and_various_flags_and_23_width_and_dot_precision_ll_modifier.c ├── 134_ullong_max_and_various_flags_and_1_width_and_5_precision_ll_modifier.c ├── 135_ullong_max_and_various_flags_and_23_width_and_5_precision_ll_modifier.c ├── 136_ullong_max_and_various_flags_combined_ll_modifier.c ├── 137_ullong_max_and_various_flags_combined_and_1_width_ll_modifier.c ├── 138_ullong_max_and_various_flags_combined_and_23_width_ll_modifier.c ├── 139_ullong_max_and_various_flags_combined_and_dot_precision_ll_modifier.c ├── 140_ullong_max_and_various_flags_combined_and_5_precision_ll_modifier.c ├── 141_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_ll_modifier.c ├── 142_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_ll_modifier.c ├── 143_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_ll_modifier.c ├── 144_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_ll_modifier.c └── conv_o.h ├── conv_p ├── 000_launcher.c ├── 001_null_pointer.c ├── 002_random_string.c ├── 003_random_string_and_5_width.c ├── 004_random_string_and_30_width.c ├── 005_random_string_and_minus_flag_and_30_width.c ├── 006_function_pointer.c └── conv_p.h ├── conv_s ├── 000_launcher.c ├── 001_null_pointer_various_flags.c ├── 002_random_string_various_flags.c ├── 003_emoticone_various_flags.c ├── 004_emoticone_utf8_encoded_various_flags.c ├── 005_string_format_and_random_string.c ├── 006_string_format_and_random_string_and_width.c ├── 007_string_format_and_random_string_and_precision.c ├── 008_multiple_random_strings.c ├── 009_only_string_conv.c ├── 010_very_long_string.c └── conv_s.h ├── conv_u ├── 000_launcher.c ├── 001_zero_and_various_flags.c ├── 002_zero_and_various_flags_and_1_width.c ├── 003_zero_and_various_flags_and_23_width.c ├── 004_zero_and_various_flags_and_dot_precision.c ├── 005_zero_and_various_flags_and_5_precision.c ├── 006_zero_and_various_flags_and_1_width_and_dot_precision.c ├── 007_zero_and_various_flags_and_23_width_and_dot_precision.c ├── 008_zero_and_various_flags_and_1_width_and_5_precision.c ├── 009_zero_and_various_flags_and_23_width_and_5_precision.c ├── 010_zero_and_various_flags_combined.c ├── 011_zero_and_various_flags_combined_and_1_width.c ├── 012_zero_and_various_flags_combined_and_23_width.c ├── 013_zero_and_various_flags_combined_and_dot_precision.c ├── 014_zero_and_various_flags_combined_and_5_precision.c ├── 015_zero_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 016_zero_and_various_flags_combined_and_1_width_and_5_precision.c ├── 017_zero_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 018_zero_and_various_flags_combined_and_23_width_and_5_precision.c ├── 019_uint_max_and_various_flags.c ├── 020_uint_max_and_various_flags_and_1_width.c ├── 021_uint_max_and_various_flags_and_23_width.c ├── 022_uint_max_and_various_flags_and_dot_precision.c ├── 023_uint_max_and_various_flags_and_5_precision.c ├── 024_uint_max_and_various_flags_and_1_width_and_dot_precision.c ├── 025_uint_max_and_various_flags_and_23_width_and_dot_precision.c ├── 026_uint_max_and_various_flags_and_1_width_and_5_precision.c ├── 027_uint_max_and_various_flags_and_23_width_and_5_precision.c ├── 028_uint_max_and_various_flags_combined.c ├── 029_uint_max_and_various_flags_combined_and_1_width.c ├── 030_uint_max_and_various_flags_combined_and_23_width.c ├── 031_uint_max_and_various_flags_combined_and_dot_precision.c ├── 032_uint_max_and_various_flags_combined_and_5_precision.c ├── 033_uint_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 034_uint_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 035_uint_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 036_uint_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 037_ulong_max_and_various_flags.c ├── 038_ulong_max_and_various_flags_and_1_width.c ├── 039_ulong_max_and_various_flags_and_23_width.c ├── 040_ulong_max_and_various_flags_and_dot_precision.c ├── 041_ulong_max_and_various_flags_and_5_precision.c ├── 042_ulong_max_and_various_flags_and_1_width_and_dot_precision.c ├── 043_ulong_max_and_various_flags_and_23_width_and_dot_precision.c ├── 044_ulong_max_and_various_flags_and_1_width_and_5_precision.c ├── 045_ulong_max_and_various_flags_and_23_width_and_5_precision.c ├── 046_ulong_max_and_various_flags_combined.c ├── 047_ulong_max_and_various_flags_combined_and_1_width.c ├── 048_ulong_max_and_various_flags_combined_and_23_width.c ├── 049_ulong_max_and_various_flags_combined_and_dot_precision.c ├── 050_ulong_max_and_various_flags_combined_and_5_precision.c ├── 051_ulong_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 052_ulong_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 053_ulong_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 054_ulong_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 055_ullong_max_and_various_flags.c ├── 056_ullong_max_and_various_flags_and_1_width.c ├── 057_ullong_max_and_various_flags_and_23_width.c ├── 058_ullong_max_and_various_flags_and_dot_precision.c ├── 059_ullong_max_and_various_flags_and_5_precision.c ├── 060_ullong_max_and_various_flags_and_1_width_and_dot_precision.c ├── 061_ullong_max_and_various_flags_and_23_width_and_dot_precision.c ├── 062_ullong_max_and_various_flags_and_1_width_and_5_precision.c ├── 063_ullong_max_and_various_flags_and_23_width_and_5_precision.c ├── 064_ullong_max_and_various_flags_combined.c ├── 065_ullong_max_and_various_flags_combined_and_1_width.c ├── 066_ullong_max_and_various_flags_combined_and_23_width.c ├── 067_ullong_max_and_various_flags_combined_and_dot_precision.c ├── 068_ullong_max_and_various_flags_combined_and_5_precision.c ├── 069_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 070_ullong_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 071_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 072_ullong_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 073_ullong_max_and_various_flags_hh_modifier_hh_modifier.c ├── 074_ullong_max_and_various_flags_and_1_width_hh_modifier.c ├── 075_ullong_max_and_various_flags_and_23_width_hh_modifier.c ├── 076_ullong_max_and_various_flags_and_dot_precision_hh_modifier.c ├── 077_ullong_max_and_various_flags_and_5_precision_hh_modifier.c ├── 078_ullong_max_and_various_flags_and_1_width_and_dot_precision_hh_modifier.c ├── 079_ullong_max_and_various_flags_and_23_width_and_dot_precision_hh_modifier.c ├── 080_ullong_max_and_various_flags_and_1_width_and_5_precision_hh_modifier.c ├── 081_ullong_max_and_various_flags_and_23_width_and_5_precision_hh_modifier.c ├── 082_ullong_max_and_various_flags_combined_hh_modifier.c ├── 083_ullong_max_and_various_flags_combined_and_1_width_hh_modifier.c ├── 084_ullong_max_and_various_flags_combined_and_23_width_hh_modifier.c ├── 085_ullong_max_and_various_flags_combined_and_dot_precision_hh_modifier.c ├── 086_ullong_max_and_various_flags_combined_and_5_precision_hh_modifier.c ├── 087_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_hh_modifier.c ├── 088_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_hh_modifier.c ├── 089_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_hh_modifier.c ├── 090_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_hh_modifier.c ├── 091_ullong_max_and_various_flags_h.c ├── 092_ullong_max_and_various_flags_and_1_width_h_modifier.c ├── 093_ullong_max_and_various_flags_and_23_width_h_modifier.c ├── 094_ullong_max_and_various_flags_and_dot_precision_h_modifier.c ├── 095_ullong_max_and_various_flags_and_5_precision_h_modifier.c ├── 096_ullong_max_and_various_flags_and_1_width_and_dot_precision_h_modifier.c ├── 097_ullong_max_and_various_flags_and_23_width_and_dot_precision_h_modifier.c ├── 098_ullong_max_and_various_flags_and_1_width_and_5_precision_h_modifier.c ├── 099_ullong_max_and_various_flags_and_23_width_and_5_precision_h_modifier.c ├── 100_ullong_max_and_various_flags_combined_h_modifier.c ├── 101_ullong_max_and_various_flags_combined_and_1_width_h_modifier.c ├── 102_ullong_max_and_various_flags_combined_and_23_width_h_modifier.c ├── 103_ullong_max_and_various_flags_combined_and_dot_precision_h_modifier.c ├── 104_ullong_max_and_various_flags_combined_and_5_precision_h_modifier.c ├── 105_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_h_modifier.c ├── 106_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_h_modifier.c ├── 107_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_h_modifier.c ├── 108_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_h_modifier.c ├── 109_ullong_max_and_various_flags_l_modifier.c ├── 110_ullong_max_and_various_flags_and_1_width_l_modifier.c ├── 111_ullong_max_and_various_flags_and_23_width_l_modifier.c ├── 112_ullong_max_and_various_flags_and_dot_precision_l_modifier.c ├── 113_ullong_max_and_various_flags_and_5_precision_l_modifier.c ├── 114_ullong_max_and_various_flags_and_1_width_and_dot_precision_l_modifier.c ├── 115_ullong_max_and_various_flags_and_23_width_and_dot_precision_l_modifier.c ├── 116_ullong_max_and_various_flags_and_1_width_and_5_precision_l_modifier.c ├── 117_ullong_max_and_various_flags_and_23_width_and_5_precision_l_modifier.c ├── 118_ullong_max_and_various_flags_combined_l_modifier.c ├── 119_ullong_max_and_various_flags_combined_and_1_width_l_modifier.c ├── 120_ullong_max_and_various_flags_combined_and_23_width_l_modifier.c ├── 121_ullong_max_and_various_flags_combined_and_dot_precision_l_modifier.c ├── 122_ullong_max_and_various_flags_combined_and_5_precision_l_modifier.c ├── 123_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_l_modifier.c ├── 124_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_l_modifier.c ├── 125_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_l_modifier.c ├── 126_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_l_modifier.c ├── 127_ullong_max_and_various_flags_ll_modifier.c ├── 128_ullong_max_and_various_flags_and_1_width_ll_modifier.c ├── 129_ullong_max_and_various_flags_and_23_width_ll_modifier.c ├── 130_ullong_max_and_various_flags_and_dot_precision_ll_modifier.c ├── 131_ullong_max_and_various_flags_and_5_precision_ll_modifier.c ├── 132_ullong_max_and_various_flags_and_1_width_and_dot_precision_ll_modifier.c ├── 133_ullong_max_and_various_flags_and_23_width_and_dot_precision_ll_modifier.c ├── 134_ullong_max_and_various_flags_and_1_width_and_5_precision_ll_modifier.c ├── 135_ullong_max_and_various_flags_and_23_width_and_5_precision_ll_modifier.c ├── 136_ullong_max_and_various_flags_combined_ll_modifier.c ├── 137_ullong_max_and_various_flags_combined_and_1_width_ll_modifier.c ├── 138_ullong_max_and_various_flags_combined_and_23_width_ll_modifier.c ├── 139_ullong_max_and_various_flags_combined_and_dot_precision_ll_modifier.c ├── 140_ullong_max_and_various_flags_combined_and_5_precision_ll_modifier.c ├── 141_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_ll_modifier.c ├── 142_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_ll_modifier.c ├── 143_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_ll_modifier.c ├── 144_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_ll_modifier.c └── conv_u.h ├── conv_x ├── 000_launcher.c ├── 001_zero_and_various_flags.c ├── 002_zero_and_various_flags_and_1_width.c ├── 003_zero_and_various_flags_and_23_width.c ├── 004_zero_and_various_flags_and_dot_precision.c ├── 005_zero_and_various_flags_and_5_precision.c ├── 006_zero_and_various_flags_and_1_width_and_dot_precision.c ├── 007_zero_and_various_flags_and_23_width_and_dot_precision.c ├── 008_zero_and_various_flags_and_1_width_and_5_precision.c ├── 009_zero_and_various_flags_and_23_width_and_5_precision.c ├── 010_zero_and_various_flags_combined.c ├── 011_zero_and_various_flags_combined_and_1_width.c ├── 012_zero_and_various_flags_combined_and_23_width.c ├── 013_zero_and_various_flags_combined_and_dot_precision.c ├── 014_zero_and_various_flags_combined_and_5_precision.c ├── 015_zero_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 016_zero_and_various_flags_combined_and_1_width_and_5_precision.c ├── 017_zero_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 018_zero_and_various_flags_combined_and_23_width_and_5_precision.c ├── 019_uint_max_and_various_flags.c ├── 020_uint_max_and_various_flags_and_1_width.c ├── 021_uint_max_and_various_flags_and_23_width.c ├── 022_uint_max_and_various_flags_and_dot_precision.c ├── 023_uint_max_and_various_flags_and_5_precision.c ├── 024_uint_max_and_various_flags_and_1_width_and_dot_precision.c ├── 025_uint_max_and_various_flags_and_23_width_and_dot_precision.c ├── 026_uint_max_and_various_flags_and_1_width_and_5_precision.c ├── 027_uint_max_and_various_flags_and_23_width_and_5_precision.c ├── 028_uint_max_and_various_flags_combined.c ├── 029_uint_max_and_various_flags_combined_and_1_width.c ├── 030_uint_max_and_various_flags_combined_and_23_width.c ├── 031_uint_max_and_various_flags_combined_and_dot_precision.c ├── 032_uint_max_and_various_flags_combined_and_5_precision.c ├── 033_uint_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 034_uint_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 035_uint_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 036_uint_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 037_ulong_max_and_various_flags.c ├── 038_ulong_max_and_various_flags_and_1_width.c ├── 039_ulong_max_and_various_flags_and_23_width.c ├── 040_ulong_max_and_various_flags_and_dot_precision.c ├── 041_ulong_max_and_various_flags_and_5_precision.c ├── 042_ulong_max_and_various_flags_and_1_width_and_dot_precision.c ├── 043_ulong_max_and_various_flags_and_23_width_and_dot_precision.c ├── 044_ulong_max_and_various_flags_and_1_width_and_5_precision.c ├── 045_ulong_max_and_various_flags_and_23_width_and_5_precision.c ├── 046_ulong_max_and_various_flags_combined.c ├── 047_ulong_max_and_various_flags_combined_and_1_width.c ├── 048_ulong_max_and_various_flags_combined_and_23_width.c ├── 049_ulong_max_and_various_flags_combined_and_dot_precision.c ├── 050_ulong_max_and_various_flags_combined_and_5_precision.c ├── 051_ulong_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 052_ulong_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 053_ulong_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 054_ulong_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 055_ullong_max_and_various_flags.c ├── 056_ullong_max_and_various_flags_and_1_width.c ├── 057_ullong_max_and_various_flags_and_23_width.c ├── 058_ullong_max_and_various_flags_and_dot_precision.c ├── 059_ullong_max_and_various_flags_and_5_precision.c ├── 060_ullong_max_and_various_flags_and_1_width_and_dot_precision.c ├── 061_ullong_max_and_various_flags_and_23_width_and_dot_precision.c ├── 062_ullong_max_and_various_flags_and_1_width_and_5_precision.c ├── 063_ullong_max_and_various_flags_and_23_width_and_5_precision.c ├── 064_ullong_max_and_various_flags_combined.c ├── 065_ullong_max_and_various_flags_combined_and_1_width.c ├── 066_ullong_max_and_various_flags_combined_and_23_width.c ├── 067_ullong_max_and_various_flags_combined_and_dot_precision.c ├── 068_ullong_max_and_various_flags_combined_and_5_precision.c ├── 069_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision.c ├── 070_ullong_max_and_various_flags_combined_and_1_width_and_5_precision.c ├── 071_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision.c ├── 072_ullong_max_and_various_flags_combined_and_23_width_and_5_precision.c ├── 073_ullong_max_and_various_flags_hh_modifier.c ├── 074_ullong_max_and_various_flags_and_1_width_hh_modifier.c ├── 075_ullong_max_and_various_flags_and_23_width_hh_modifier.c ├── 076_ullong_max_and_various_flags_and_dot_precision_hh_modifier.c ├── 077_ullong_max_and_various_flags_and_5_precision_hh_modifier.c ├── 078_ullong_max_and_various_flags_and_1_width_and_dot_precision_hh_modifier.c ├── 079_ullong_max_and_various_flags_and_23_width_and_dot_precision_hh_modifier.c ├── 080_ullong_max_and_various_flags_and_1_width_and_5_precision_hh_modifier.c ├── 081_ullong_max_and_various_flags_and_23_width_and_5_precision_hh_modifier.c ├── 082_ullong_max_and_various_flags_combined_hh_modifier.c ├── 083_ullong_max_and_various_flags_combined_and_1_width_hh_modifier.c ├── 084_ullong_max_and_various_flags_combined_and_23_width_hh_modifier.c ├── 085_ullong_max_and_various_flags_combined_and_dot_precision_hh_modifier.c ├── 086_ullong_max_and_various_flags_combined_and_5_precision_hh_modifier.c ├── 087_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_hh_modifier.c ├── 088_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_hh_modifier.c ├── 089_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_hh_modifier.c ├── 090_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_hh_modifier.c ├── 091_ullong_max_and_various_flags_h_modifier.c ├── 092_ullong_max_and_various_flags_and_1_width_h_modifier.c ├── 093_ullong_max_and_various_flags_and_23_width_h_modifier.c ├── 094_ullong_max_and_various_flags_and_dot_precision_h_modifier.c ├── 095_ullong_max_and_various_flags_and_5_precision_h_modifier.c ├── 096_ullong_max_and_various_flags_and_1_width_and_dot_precision_h_modifier.c ├── 097_ullong_max_and_various_flags_and_23_width_and_dot_precision_h_modifier.c ├── 098_ullong_max_and_various_flags_and_1_width_and_5_precision_h_modifier.c ├── 099_ullong_max_and_various_flags_and_23_width_and_5_precision_h_modifier.c ├── 100_ullong_max_and_various_flags_combined_h_modifier.c ├── 101_ullong_max_and_various_flags_combined_and_1_width_h_modifier.c ├── 102_ullong_max_and_various_flags_combined_and_23_width_h_modifier.c ├── 103_ullong_max_and_various_flags_combined_and_dot_precision_h_modifier.c ├── 104_ullong_max_and_various_flags_combined_and_5_precision_h_modifier.c ├── 105_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_h_modifier.c ├── 106_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_h_modifier.c ├── 107_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_h_modifier.c ├── 108_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_h_modifier.c ├── 109_ullong_max_and_various_flags_l_modifier.c ├── 110_ullong_max_and_various_flags_and_1_width_l_modifier.c ├── 111_ullong_max_and_various_flags_and_23_width_l_modifier.c ├── 112_ullong_max_and_various_flags_and_dot_precision_l_modifier.c ├── 113_ullong_max_and_various_flags_and_5_precision_l_modifier.c ├── 114_ullong_max_and_various_flags_and_1_width_and_dot_precision_l_modifier.c ├── 115_ullong_max_and_various_flags_and_23_width_and_dot_precision_l_modifier.c ├── 116_ullong_max_and_various_flags_and_1_width_and_5_precision_l_modifier.c ├── 117_ullong_max_and_various_flags_and_23_width_and_5_precision_l_modifier.c ├── 118_ullong_max_and_various_flags_combined_l_modifier.c ├── 119_ullong_max_and_various_flags_combined_and_1_width_l_modifier.c ├── 120_ullong_max_and_various_flags_combined_and_23_width_l_modifier.c ├── 121_ullong_max_and_various_flags_combined_and_dot_precision_l_modifier.c ├── 122_ullong_max_and_various_flags_combined_and_5_precision_l_modifier.c ├── 123_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_l_modifier.c ├── 124_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_l_modifier.c ├── 125_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_l_modifier.c ├── 126_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_l_modifier.c ├── 127_ullong_max_and_various_flags_ll_modifier.c ├── 128_ullong_max_and_various_flags_and_1_width_ll_modifier.c ├── 129_ullong_max_and_various_flags_and_23_width_ll_modifier.c ├── 130_ullong_max_and_various_flags_and_dot_precision_ll_modifier.c ├── 131_ullong_max_and_various_flags_and_5_precision_ll_modifier.c ├── 132_ullong_max_and_various_flags_and_1_width_and_dot_precision_ll_modifier.c ├── 133_ullong_max_and_various_flags_and_23_width_and_dot_precision_ll_modifier.c ├── 134_ullong_max_and_various_flags_and_1_width_and_5_precision_ll_modifier.c ├── 135_ullong_max_and_various_flags_and_23_width_and_5_precision_ll_modifier.c ├── 136_ullong_max_and_various_flags_combined_ll_modifier.c ├── 137_ullong_max_and_various_flags_combined_and_1_width_ll_modifier.c ├── 138_ullong_max_and_various_flags_combined_and_23_width_ll_modifier.c ├── 139_ullong_max_and_various_flags_combined_and_dot_precision_ll_modifier.c ├── 140_ullong_max_and_various_flags_combined_and_5_precision_ll_modifier.c ├── 141_ullong_max_and_various_flags_combined_and_1_width_and_dot_precision_ll_modifier.c ├── 142_ullong_max_and_various_flags_combined_and_1_width_and_5_precision_ll_modifier.c ├── 143_ullong_max_and_various_flags_combined_and_23_width_and_dot_precision_ll_modifier.c ├── 144_ullong_max_and_various_flags_combined_and_23_width_and_5_precision_ll_modifier.c └── conv_x.h ├── file_paths ├── generator.sh ├── includes ├── ft_printf.h ├── main.h └── tests.h ├── mix ├── 000_launcher.c ├── 001_various_mix_simple.c ├── 002_various_mix_with_flags.c └── mix.h ├── no_type ├── 000_launcher.c ├── 001_empty_string.c ├── 002_newline.c ├── 003_normal_string.c ├── 004_normal_string_with_non_printable.c ├── 005_normal_string_and_newline.c ├── 006_valid_percent_sign.c ├── 007_very_long_string.c └── no_type.h ├── printf ├── 00_launcher.c ├── 01_basic_test.c └── printf.h ├── srcs ├── main.c └── tests.c └── tests.txt /.gitignore: -------------------------------------------------------------------------------- 1 | .obj 2 | *.dSYM* 3 | *.sw* 4 | backup 5 | tests/tests 6 | trace.txt 7 | assets 8 | libftprintf.so 9 | libunit.a 10 | -------------------------------------------------------------------------------- /auteur: -------------------------------------------------------------------------------- 1 | jkettani 2 | -------------------------------------------------------------------------------- /framework/includes/frmk_error.h: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* frmk_error.h :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: jkettani +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2019/03/22 16:40:03 by jkettani #+# #+# */ 9 | /* Updated: 2019/03/22 16:40:15 by jkettani ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #ifndef FRMK_ERROR_H 14 | # define FRMK_ERROR_H 15 | 16 | /* 17 | ** ERROR CODES 18 | ** Error codes in errno.h goes from 1 to 131. 19 | ** So we start at 200 for our own error codes: 20 | ** > ENULL: null pointer in function 21 | ** > EUSIG: undefined signal catched 22 | */ 23 | # define ENULL 200 24 | # define EUSIG 201 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /framework/includes/frmk_stdout_utils.h: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* frmk_stdout_utils.h :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: jkettani +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2019/03/22 16:41:51 by jkettani #+# #+# */ 9 | /* Updated: 2019/03/22 16:41:59 by jkettani ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #ifndef FRMK_STDOUT_UTILS_H 14 | # define FRMK_STDOUT_UTILS_H 15 | 16 | int get_fd(const char *path, t_output_mode output_mode, 17 | t_open_mode open_mode); 18 | int pipe_stdout(int *pfd, int *save_out); 19 | int reconnect_stdout(int *save_out); 20 | int read_pipe(char **str, int *ret, int *pfd, int *save_out); 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /framework/includes/frmk_utils.h: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* frmk_utils.h :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: jkettani +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2019/03/22 16:42:07 by jkettani #+# #+# */ 9 | /* Updated: 2019/03/22 16:42:17 by jkettani ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #ifndef FRMK_UTILS_H 14 | # define FRMK_UTILS_H 15 | 16 | void *memalloc(size_t size); 17 | void *memcat(void *s1, size_t n1, const void *s2, size_t n2); 18 | void *memjoin(const void *s1, size_t n1, const void *s2, size_t n2); 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /images/makefile_libftprintf_path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jkgithubrep/42_printf_unit_tests/1c564111982cabc9a02c522567d42d6908405985/images/makefile_libftprintf_path.png -------------------------------------------------------------------------------- /images/printf_unit_test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jkgithubrep/42_printf_unit_tests/1c564111982cabc9a02c522567d42d6908405985/images/printf_unit_test.png -------------------------------------------------------------------------------- /images/trace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jkgithubrep/42_printf_unit_tests/1c564111982cabc9a02c522567d42d6908405985/images/trace.png -------------------------------------------------------------------------------- /templates/000_launcher_template.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "ft_printf.h" 3 | #include "TMPL_FCT_NAME.h" 4 | 5 | /* Load test format: 6 | if ((err = load_test(&test_list, "TMPL_TEST_NAME", 7 | &TMPL_FCT_NAME_TMPL_TEST_FCT_NAME, SUCCESS))) 8 | return (err); 9 | */ 10 | 11 | int TMPL_FCT_NAME_launcher(void) 12 | { 13 | t_unit_test *test_list; 14 | char *fct_name; 15 | int err; 16 | int fd; 17 | int fd_trace; 18 | 19 | fct_name = "TMPL_FCT_NAME"; 20 | err = 0; 21 | fd = TESTS_OUTPUT_FD; 22 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 23 | test_list = NULL; 24 | print_fct_name_fd(fct_name, fd); 25 | if (fd_trace != fd) 26 | print_fct_name_trace_fd(fct_name, fd_trace); 27 | /*LOAD_TEST_HERE*/ 28 | return (launch_tests(&test_list, fd)); 29 | } 30 | -------------------------------------------------------------------------------- /templates/XXX_test_template.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS TMPL_ARGS 12 | 13 | int TMPL_FCT_NAME_TMPL_TEST_FCT_NAME(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /templates/header_template.h: -------------------------------------------------------------------------------- 1 | #ifndef TMPL_FCT_NAME_H 2 | # define TMPL_FCT_NAME_H 3 | 4 | /*PROTOTYPES_HERE*/ 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /templates/main_template.h: -------------------------------------------------------------------------------- 1 | #ifndef MAIN_H 2 | # define MAIN_H 3 | 4 | /*PROTOTYPES_HERE*/ 5 | 6 | typedef struct s_launcher 7 | { 8 | char *fct_name; 9 | int (*launcher)(void); 10 | } t_launcher; 11 | 12 | t_launcher g_launchtab[] = 13 | { 14 | /*FCTS_HERE*/ 15 | {"", NULL} 16 | }; 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /tests/conv_c/001_char_null.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%c|%-c|%12c|%-12c", 0, 0, 0, 0 12 | 13 | int conv_c_char_null(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_c/005_short_max.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%c|%-c|%12c|%-12c", 1345, 1345, 1345, 1345 12 | 13 | int conv_c_short_max(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_c/conv_c.h: -------------------------------------------------------------------------------- 1 | #ifndef conv_c_H 2 | # define conv_c_H 3 | 4 | int conv_c_char_null(void); 5 | int conv_c_ascii_chars(void); 6 | int conv_c_ascii_chars_8_width(void); 7 | int conv_c_ascii_chars_8_width_flag(void); 8 | int conv_c_short_max(void); 9 | /*PROTOTYPES_HERE*/ 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /tests/conv_cap_x/001_zero_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%X|%-X|%#X|%0X", 0U, 0U, 0U, 0U 12 | 13 | int conv_cap_x_zero_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_cap_x/002_zero_and_various_flags_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%1X|%-1X|%#X|%01X", 0U, 0U, 0U, 0U 12 | 13 | int conv_cap_x_zero_and_various_flags_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_cap_x/003_zero_and_various_flags_and_23_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%23X|%-23X|%#X|%023X", 0U, 0U, 0U, 0U 12 | 13 | int conv_cap_x_zero_and_various_flags_and_23_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_cap_x/004_zero_and_various_flags_and_dot_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.X|%-.X|%#.X|%0.X", 0U, 0U, 0U, 0U 12 | 13 | int conv_cap_x_zero_and_various_flags_and_dot_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_cap_x/005_zero_and_various_flags_and_5_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.5X|%-.5X|%#.5X|%0.5X", 0U, 0U, 0U, 0U 12 | 13 | int conv_cap_x_zero_and_various_flags_and_5_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_cap_x/010_zero_and_various_flags_combined.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-#X|%-0X|%#0X|%-#0X", 0U, 0U, 0U, 0U 12 | 13 | int conv_cap_x_zero_and_various_flags_combined(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_cap_x/019_uint_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%X|%-X|%#X|%0X", UINT_MAX, UINT_MAX, UINT_MAX, UINT_MAX 12 | 13 | int conv_cap_x_uint_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_cap_x/037_ulong_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%X|%-X|%#X|%0X", ULONG_MAX, ULONG_MAX, ULONG_MAX, ULONG_MAX 12 | 13 | int conv_cap_x_ulong_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_cap_x/055_ullong_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%X|%-X|%#X|%0X", ULLONG_MAX, ULLONG_MAX, ULLONG_MAX, ULLONG_MAX 12 | 13 | int conv_cap_x_ullong_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_d/001_zero_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%d|%-d|%+d|% d|%0d", 0, 0, 0, 0, 0 12 | 13 | int conv_d_zero_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_d/002_zero_and_various_flags_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%1d|%-1d|%+1d|% 1d|%01d", 0, 0, 0, 0, 0 12 | 13 | int conv_d_zero_and_various_flags_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_d/003_zero_and_various_flags_and_23_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%23d|%-23d|%+23d|% 23d|%023d", 0, 0, 0, 0, 0 12 | 13 | int conv_d_zero_and_various_flags_and_23_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_d/004_zero_and_various_flags_and_dot_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.d|%-.d|%+.d|% .d|%0.d", 0, 0, 0, 0, 0 12 | 13 | int conv_d_zero_and_various_flags_and_dot_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_d/005_zero_and_various_flags_and_5_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.5d|%-.5d|%+.5d|% .5d|%0.5d", 0, 0, 0, 0, 0 12 | 13 | int conv_d_zero_and_various_flags_and_5_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_d/010_zero_and_various_flags_combined.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-+d|%- d|%-0d|%+ d|%+0d|% 0d|%-+ 0d", 0, 0, 0, 0, 0, 0, 0 12 | 13 | int conv_d_zero_and_various_flags_combined(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_d/019_minus_zero_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%d|%-d|%+d|% d|%0d", -0, -0, -0, -0, -0 12 | 13 | int conv_d_minus_zero_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_d/020_minus_zero_and_various_flags_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%1d|%-1d|%+1d|% 1d|%01d", -0, -0, -0, -0, -0 12 | 13 | int conv_d_minus_zero_and_various_flags_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_d/021_minus_zero_and_various_flags_and_23_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%23d|%-23d|%+23d|% 23d|%023d", -0, -0, -0, -0, -0 12 | 13 | int conv_d_minus_zero_and_various_flags_and_23_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_d/037_int_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%d|%-d|%+d|% d|%0d", INT_MAX, INT_MAX, INT_MAX, INT_MAX, INT_MAX 12 | 13 | int conv_d_int_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_d/055_int_min_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%d|%-d|%+d|% d|%0d", INT_MIN, INT_MIN, INT_MIN, INT_MIN, INT_MIN 12 | 13 | int conv_d_int_min_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_d/073_uint_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%d|%-d|%+d|% d|%0d", UINT_MAX, UINT_MAX, UINT_MAX, UINT_MAX, UINT_MAX 12 | 13 | int conv_d_uint_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_d/091_long_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%d|%-d|%+d|% d|%0d", LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX 12 | 13 | int conv_d_long_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_d/109_long_min_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%d|%-d|%+d|% d|%0d", LONG_MIN, LONG_MIN, LONG_MIN, LONG_MIN, LONG_MIN 12 | 13 | int conv_d_long_min_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/001_zero_double_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%f|%-f|%+f|% f|%#f|%0f", 0., 0., 0., 0., 0., 0. 12 | 13 | int conv_f_zero_double_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/010_minus_zero_double_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%f|%-f|%+f|% f|%#f|%0f", -0., -0., -0., -0., -0., -0. 12 | 13 | int conv_f_minus_zero_double_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/019_nan_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%f|%-f|%+f|% f|%#f|%0f", 0. / 0., 0. / 0., 0. / 0., 0. / 0., 0. / 0., 0. / 0. 12 | 13 | int conv_f_nan_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/046_double_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%f|%-f|%+f|% f|%#f|%0f", 42., 42., 42., 42., 42., 42. 12 | 13 | int conv_f_double_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/047_double_various_flags_and_5_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%5f|%-5f|%+5f|% 5f|%#5f|%05f", 42., 42., 42., 42., 42., 42. 12 | 13 | int conv_f_double_various_flags_and_5_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/048_double_various_flags_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%1f|%-1f|%+1f|% 1f|%#1f|%01f", 42., 42., 42., 42., 42., 42. 12 | 13 | int conv_f_double_various_flags_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/064_negative_double_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%f|%-f|%+f|% f|%#f|%0f", -42., -42., -42., -42., -42., -42. 12 | 13 | int conv_f_negative_double_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/073_double_max_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%f|%-f|%+f|% f|%#f|%0f", DBL_MAX, DBL_MAX, DBL_MAX, DBL_MAX, DBL_MAX, DBL_MAX 12 | 13 | int conv_f_double_max_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/082_double_min_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%f|%-f|%+f|% f|%#f|%0f", DBL_MIN, DBL_MIN, DBL_MIN, DBL_MIN, DBL_MIN, DBL_MIN 12 | 13 | int conv_f_double_min_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/100_long_double_max.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%Lf", LDBL_MAX 12 | 13 | int conv_f_long_double_max(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/101_long_double_min.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%Lf", LDBL_MIN 12 | 13 | int conv_f_long_double_min(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/102_rounding_only_nines_1.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.f|%.1f|%.2f|%.5f|%.12f", 0.000099, 0.000099, 0.000099, 0.000099, 0.000099 12 | 13 | int conv_f_rounding_only_nines_1(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/103_rounding_only_nines_2.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.f|%.1f|%.2f|%.5f|%.12f", 999.99999, 999.99999, 999.99999, 999.99999, 999.99999 12 | 13 | int conv_f_rounding_only_nines_2(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/106_rounding_normal.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.f|%.1f|%.2f|%.5f|%.12f", 42.974234687, 42.974234687, 42.974234687, 42.974234687, 42.974234687 12 | 13 | int conv_f_rounding_normal(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/109_rounding_middle_down.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.f|%.f|%.f|%.f|%.f", 44.5, 44.4, 44.6, 44.50001, 44.5 + 1e-52 12 | 13 | int conv_f_rounding_middle_down(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/110_rounding_middle_up.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.f|%.f|%.f|%.f|%.f", 45.5, 45.4, 45.6, 45.50001, 45.5 + 1e-52 12 | 13 | int conv_f_rounding_middle_up(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/111_powers_of_10.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%f|%f|%f|%f|%f", 1.e1, 1.e2, 1.e18, 1.e57, 1.e201 12 | 13 | int conv_f_powers_of_10(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/112_negative_powers_of_10.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.350f|%.350f|%.350f|%.350f|%.350f", 1.e-1, 1.e-2, 1.e-18, 1.e-57, 1.e-201 12 | 13 | int conv_f_negative_powers_of_10(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_f/114_errors.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.2147483649f|%2147483649f", 1.0, 1.0 12 | 13 | int conv_f_errors(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_i/001_zero_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%i|%-i|%+i|% i|%0i", 0, 0, 0, 0, 0 12 | 13 | int conv_i_zero_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_i/002_zero_and_various_flags_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%1i|%-1i|%+1i|% 1i|%01i", 0, 0, 0, 0, 0 12 | 13 | int conv_i_zero_and_various_flags_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_i/003_zero_and_various_flags_and_23_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%23i|%-23i|%+23i|% 23i|%023i", 0, 0, 0, 0, 0 12 | 13 | int conv_i_zero_and_various_flags_and_23_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_i/004_zero_and_various_flags_and_dot_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.i|%-.i|%+.i|% .i|%0.i", 0, 0, 0, 0, 0 12 | 13 | int conv_i_zero_and_various_flags_and_dot_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_i/005_zero_and_various_flags_and_5_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.5i|%-.5i|%+.5i|% .5i|%0.5i", 0, 0, 0, 0, 0 12 | 13 | int conv_i_zero_and_various_flags_and_5_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_i/010_zero_and_various_flags_combined.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-+i|%- i|%-0i|%+ i|%+0i|% 0i|%-+ 0i", 0, 0, 0, 0, 0, 0, 0 12 | 13 | int conv_i_zero_and_various_flags_combined(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_i/019_minus_zero_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%i|%-i|%+i|% i|%0i", -0, -0, -0, -0, -0 12 | 13 | int conv_i_minus_zero_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_i/020_minus_zero_and_various_flags_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%1i|%-1i|%+1i|% 1i|%01i", -0, -0, -0, -0, -0 12 | 13 | int conv_i_minus_zero_and_various_flags_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_i/037_int_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%i|%-i|%+i|% i|%0i", INT_MAX, INT_MAX, INT_MAX, INT_MAX, INT_MAX 12 | 13 | int conv_i_int_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_i/055_int_min_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%i|%-i|%+i|% i|%0i", INT_MIN, INT_MIN, INT_MIN, INT_MIN, INT_MIN 12 | 13 | int conv_i_int_min_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_i/073_uint_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%i|%-i|%+i|% i|%0i", UINT_MAX, UINT_MAX, UINT_MAX, UINT_MAX, UINT_MAX 12 | 13 | int conv_i_uint_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_i/091_long_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%i|%-i|%+i|% i|%0i", LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX 12 | 13 | int conv_i_long_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_i/109_long_min_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%i|%-i|%+i|% i|%0i", LONG_MIN, LONG_MIN, LONG_MIN, LONG_MIN, LONG_MIN 12 | 13 | int conv_i_long_min_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_o/001_zero_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%o|%-o|%#o|%0o", 0U, 0U, 0U, 0U 12 | 13 | int conv_o_zero_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_o/002_zero_and_various_flags_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%1o|%-1o|%#o|%01o", 0U, 0U, 0U, 0U 12 | 13 | int conv_o_zero_and_various_flags_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_o/003_zero_and_various_flags_and_23_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%23o|%-23o|%#o|%023o", 0U, 0U, 0U, 0U 12 | 13 | int conv_o_zero_and_various_flags_and_23_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_o/004_zero_and_various_flags_and_dot_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.o|%-.o|%#.o|%0.o", 0U, 0U, 0U, 0U 12 | 13 | int conv_o_zero_and_various_flags_and_dot_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_o/005_zero_and_various_flags_and_5_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.5o|%-.5o|%#.5o|%0.5o", 0U, 0U, 0U, 0U 12 | 13 | int conv_o_zero_and_various_flags_and_5_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_o/010_zero_and_various_flags_combined.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-#o|%-0o|%#0o|%-#0o", 0U, 0U, 0U, 0U 12 | 13 | int conv_o_zero_and_various_flags_combined(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_o/019_uint_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%o|%-o|%#o|%0o", UINT_MAX, UINT_MAX, UINT_MAX, UINT_MAX 12 | 13 | int conv_o_uint_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_o/037_ulong_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%o|%-o|%#o|%0o", ULONG_MAX, ULONG_MAX, ULONG_MAX, ULONG_MAX 12 | 13 | int conv_o_ulong_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_o/055_ullong_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%o|%-o|%#o|%0o", ULLONG_MAX, ULLONG_MAX, ULLONG_MAX, ULLONG_MAX 12 | 13 | int conv_o_ullong_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_p/000_launcher.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "ft_printf.h" 3 | #include "conv_p.h" 4 | 5 | /* Load test format: 6 | if ((err = load_test(&test_list, "TMPL_TEST_NAME", 7 | &conv_p_TMPL_TEST_FCT_NAME, SUCCESS))) 8 | return (err); 9 | */ 10 | 11 | int conv_p_launcher(void) 12 | { 13 | t_unit_test *test_list; 14 | char *fct_name; 15 | int err; 16 | int fd; 17 | int fd_trace; 18 | 19 | fct_name = "conv_p"; 20 | err = 0; 21 | fd = TESTS_OUTPUT_FD; 22 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 23 | test_list = NULL; 24 | print_fct_name_fd(fct_name, fd); 25 | if (fd_trace != fd) 26 | print_fct_name_trace_fd(fct_name, fd_trace); 27 | if ((err = load_test(&test_list, "\"%p\", NULL", 28 | &conv_p_null_pointer, SUCCESS))) 29 | return (err); 30 | if ((err = load_test(&test_list, "\"%p\", \"Random string\"", 31 | &conv_p_random_string, SUCCESS))) 32 | return (err); 33 | if ((err = load_test(&test_list, "\"%5p\", \"Random string\"", 34 | &conv_p_random_string_and_5_width, SUCCESS))) 35 | return (err); 36 | if ((err = load_test(&test_list, "\"%30p\", \"Random string\"", 37 | &conv_p_random_string_and_30_width, SUCCESS))) 38 | return (err); 39 | if ((err = load_test(&test_list, "\"%-30p\", \"Random string\"", 40 | &conv_p_random_string_and_minus_flag_and_30_width, SUCCESS))) 41 | return (err); 42 | if ((err = load_test(&test_list, "\"%p\", &printf", 43 | &conv_p_function_pointer, SUCCESS))) 44 | return (err); 45 | /*LOAD_TEST_HERE*/ 46 | return (launch_tests(&test_list, fd)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_p/001_null_pointer.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%p", NULL 12 | 13 | int conv_p_null_pointer(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_p/002_random_string.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%p", "Random string" 12 | 13 | int conv_p_random_string(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_p/003_random_string_and_5_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%5p", "Random string" 12 | 13 | int conv_p_random_string_and_5_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_p/004_random_string_and_30_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%30p", "Random string" 12 | 13 | int conv_p_random_string_and_30_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_p/005_random_string_and_minus_flag_and_30_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-30p", "Random string" 12 | 13 | int conv_p_random_string_and_minus_flag_and_30_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_p/006_function_pointer.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%p", &printf 12 | 13 | int conv_p_function_pointer(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_p/conv_p.h: -------------------------------------------------------------------------------- 1 | #ifndef conv_p_H 2 | # define conv_p_H 3 | 4 | int conv_p_null_pointer(void); 5 | int conv_p_random_string(void); 6 | int conv_p_random_string_and_5_width(void); 7 | int conv_p_random_string_and_30_width(void); 8 | int conv_p_random_string_and_minus_flag_and_30_width(void); 9 | int conv_p_function_pointer(void); 10 | /*PROTOTYPES_HERE*/ 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /tests/conv_s/005_string_format_and_random_string.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "This is a %s", "random string" 12 | 13 | int conv_s_string_format_and_random_string(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_s/006_string_format_and_random_string_and_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "This is a %10s", "random string" 12 | 13 | int conv_s_string_format_and_random_string_and_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_s/007_string_format_and_random_string_and_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "This is a %.5s", "random string" 12 | 13 | int conv_s_string_format_and_random_string_and_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_s/008_multiple_random_strings.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%s %s - %s %s", "string1", "string2", "string3", "string4" 12 | 13 | int conv_s_multiple_random_strings(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_s/009_only_string_conv.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%s%s%s%s", "string1", "string2", "string3", "string4" 12 | 13 | int conv_s_only_string_conv(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_s/conv_s.h: -------------------------------------------------------------------------------- 1 | #ifndef conv_s_H 2 | # define conv_s_H 3 | 4 | int conv_s_null_pointer_various_flags(void); 5 | int conv_s_random_string_various_flags(void); 6 | int conv_s_emoticone_various_flags(void); 7 | int conv_s_emoticone_utf8_encoded_various_flags(void); 8 | int conv_s_string_format_and_random_string(void); 9 | int conv_s_string_format_and_random_string_and_width(void); 10 | int conv_s_string_format_and_random_string_and_precision(void); 11 | int conv_s_multiple_random_strings(void); 12 | int conv_s_only_string_conv(void); 13 | int conv_s_very_long_string(void); 14 | /*PROTOTYPES_HERE*/ 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /tests/conv_u/001_zero_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%u|%-u|%0u", 0U, 0U, 0U 12 | 13 | int conv_u_zero_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/002_zero_and_various_flags_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%1u|%-1u|%01u", 0U, 0U, 0U 12 | 13 | int conv_u_zero_and_various_flags_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/003_zero_and_various_flags_and_23_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%23u|%-23u|%023u", 0U, 0U, 0U 12 | 13 | int conv_u_zero_and_various_flags_and_23_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/004_zero_and_various_flags_and_dot_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.u|%-.u|%0.u", 0U, 0U, 0U 12 | 13 | int conv_u_zero_and_various_flags_and_dot_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/005_zero_and_various_flags_and_5_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.5u|%-.5u|%0.5u", 0U, 0U, 0U 12 | 13 | int conv_u_zero_and_various_flags_and_5_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/010_zero_and_various_flags_combined.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0u", 0U 12 | 13 | int conv_u_zero_and_various_flags_combined(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/011_zero_and_various_flags_combined_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-01u", 0U 12 | 13 | int conv_u_zero_and_various_flags_combined_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/012_zero_and_various_flags_combined_and_23_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-023u", 0U 12 | 13 | int conv_u_zero_and_various_flags_combined_and_23_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/013_zero_and_various_flags_combined_and_dot_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0.u", 0U 12 | 13 | int conv_u_zero_and_various_flags_combined_and_dot_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/014_zero_and_various_flags_combined_and_5_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0.5u", 0U 12 | 13 | int conv_u_zero_and_various_flags_combined_and_5_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/019_uint_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%u|%-u|%0u", UINT_MAX, UINT_MAX, UINT_MAX 12 | 13 | int conv_u_uint_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/020_uint_max_and_various_flags_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%1u|%-1u|%01u", UINT_MAX, UINT_MAX, UINT_MAX 12 | 13 | int conv_u_uint_max_and_various_flags_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/021_uint_max_and_various_flags_and_23_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%23u|%-23u|%023u", UINT_MAX, UINT_MAX, UINT_MAX 12 | 13 | int conv_u_uint_max_and_various_flags_and_23_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/028_uint_max_and_various_flags_combined.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0u", UINT_MAX 12 | 13 | int conv_u_uint_max_and_various_flags_combined(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/029_uint_max_and_various_flags_combined_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-01u", UINT_MAX 12 | 13 | int conv_u_uint_max_and_various_flags_combined_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/030_uint_max_and_various_flags_combined_and_23_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-023u", UINT_MAX 12 | 13 | int conv_u_uint_max_and_various_flags_combined_and_23_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/031_uint_max_and_various_flags_combined_and_dot_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0.u", UINT_MAX 12 | 13 | int conv_u_uint_max_and_various_flags_combined_and_dot_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/032_uint_max_and_various_flags_combined_and_5_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0.5u", UINT_MAX 12 | 13 | int conv_u_uint_max_and_various_flags_combined_and_5_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/037_ulong_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%u|%-u|%0u", ULONG_MAX, ULONG_MAX, ULONG_MAX 12 | 13 | int conv_u_ulong_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/038_ulong_max_and_various_flags_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%1u|%-1u|%01u", ULONG_MAX, ULONG_MAX, ULONG_MAX 12 | 13 | int conv_u_ulong_max_and_various_flags_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/046_ulong_max_and_various_flags_combined.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0u", ULONG_MAX 12 | 13 | int conv_u_ulong_max_and_various_flags_combined(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/047_ulong_max_and_various_flags_combined_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-01u", ULONG_MAX 12 | 13 | int conv_u_ulong_max_and_various_flags_combined_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/048_ulong_max_and_various_flags_combined_and_23_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-023u", ULONG_MAX 12 | 13 | int conv_u_ulong_max_and_various_flags_combined_and_23_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/049_ulong_max_and_various_flags_combined_and_dot_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0.u", ULONG_MAX 12 | 13 | int conv_u_ulong_max_and_various_flags_combined_and_dot_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/050_ulong_max_and_various_flags_combined_and_5_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0.5u", ULONG_MAX 12 | 13 | int conv_u_ulong_max_and_various_flags_combined_and_5_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/055_ullong_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%u|%-u|%0u", ULLONG_MAX, ULLONG_MAX, ULLONG_MAX 12 | 13 | int conv_u_ullong_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/064_ullong_max_and_various_flags_combined.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0u", ULLONG_MAX 12 | 13 | int conv_u_ullong_max_and_various_flags_combined(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/065_ullong_max_and_various_flags_combined_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-01u", ULLONG_MAX 12 | 13 | int conv_u_ullong_max_and_various_flags_combined_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/066_ullong_max_and_various_flags_combined_and_23_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-023u", ULLONG_MAX 12 | 13 | int conv_u_ullong_max_and_various_flags_combined_and_23_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/068_ullong_max_and_various_flags_combined_and_5_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0.5u", ULLONG_MAX 12 | 13 | int conv_u_ullong_max_and_various_flags_combined_and_5_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/082_ullong_max_and_various_flags_combined_hh_modifier.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0hhu", ULLONG_MAX 12 | 13 | int conv_u_ullong_max_and_various_flags_combined_hh_modifier(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/091_ullong_max_and_various_flags_h.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%hu|%-hu|%0hu", ULLONG_MAX, ULLONG_MAX, ULLONG_MAX 12 | 13 | int conv_u_ullong_max_and_various_flags_h(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/100_ullong_max_and_various_flags_combined_h_modifier.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0hu", ULLONG_MAX 12 | 13 | int conv_u_ullong_max_and_various_flags_combined_h_modifier(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/118_ullong_max_and_various_flags_combined_l_modifier.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0lu", ULLONG_MAX 12 | 13 | int conv_u_ullong_max_and_various_flags_combined_l_modifier(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_u/136_ullong_max_and_various_flags_combined_ll_modifier.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-0llu", ULLONG_MAX 12 | 13 | int conv_u_ullong_max_and_various_flags_combined_ll_modifier(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_x/001_zero_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%x|%-x|%#x|%0x", 0U, 0U, 0U, 0U 12 | 13 | int conv_x_zero_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_x/002_zero_and_various_flags_and_1_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%1x|%-1x|%#x|%01x", 0U, 0U, 0U, 0U 12 | 13 | int conv_x_zero_and_various_flags_and_1_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_x/003_zero_and_various_flags_and_23_width.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%23x|%-23x|%#x|%023x", 0U, 0U, 0U, 0U 12 | 13 | int conv_x_zero_and_various_flags_and_23_width(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_x/004_zero_and_various_flags_and_dot_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.x|%-.x|%#.x|%0.x", 0U, 0U, 0U, 0U 12 | 13 | int conv_x_zero_and_various_flags_and_dot_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_x/005_zero_and_various_flags_and_5_precision.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%.5x|%-.5x|%#.5x|%0.5x", 0U, 0U, 0U, 0U 12 | 13 | int conv_x_zero_and_various_flags_and_5_precision(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_x/010_zero_and_various_flags_combined.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%-#x|%-0x|%#0x|%-#0x", 0U, 0U, 0U, 0U 12 | 13 | int conv_x_zero_and_various_flags_combined(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_x/019_uint_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%x|%-x|%#x|%0x", UINT_MAX, UINT_MAX, UINT_MAX, UINT_MAX 12 | 13 | int conv_x_uint_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_x/037_ulong_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%x|%-x|%#x|%0x", ULONG_MAX, ULONG_MAX, ULONG_MAX, ULONG_MAX 12 | 13 | int conv_x_ulong_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/conv_x/055_ullong_max_and_various_flags.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%x|%-x|%#x|%0x", ULLONG_MAX, ULLONG_MAX, ULLONG_MAX, ULLONG_MAX 12 | 13 | int conv_x_ullong_max_and_various_flags(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/includes/ft_printf.h: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* ft_printf.h :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: jkettani +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2019/03/21 15:12:32 by jkettani #+# #+# */ 9 | /* Updated: 2019/03/21 15:14:26 by jkettani ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #ifndef FT_PRINTF_H 14 | # define FT_PRINTF_H 15 | 16 | # include 17 | 18 | int ft_printf(const char * restrict format, ...); 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /tests/includes/main.h: -------------------------------------------------------------------------------- 1 | #ifndef MAIN_H 2 | # define MAIN_H 3 | 4 | int no_type_launcher(void); 5 | int conv_d_launcher(void); 6 | int conv_i_launcher(void); 7 | int conv_u_launcher(void); 8 | int conv_o_launcher(void); 9 | int conv_x_launcher(void); 10 | int conv_cap_x_launcher(void); 11 | int conv_c_launcher(void); 12 | int conv_s_launcher(void); 13 | int conv_p_launcher(void); 14 | int conv_f_launcher(void); 15 | int mix_launcher(void); 16 | /*PROTOTYPES_HERE*/ 17 | 18 | typedef struct s_launcher 19 | { 20 | char *fct_name; 21 | int (*launcher)(void); 22 | } t_launcher; 23 | 24 | t_launcher g_launchtab[] = 25 | { 26 | {"no_type", no_type_launcher}, 27 | {"conv_d", conv_d_launcher}, 28 | {"conv_i", conv_i_launcher}, 29 | {"conv_u", conv_u_launcher}, 30 | {"conv_o", conv_o_launcher}, 31 | {"conv_x", conv_x_launcher}, 32 | {"conv_cap_x", conv_cap_x_launcher}, 33 | {"conv_c", conv_c_launcher}, 34 | {"conv_s", conv_s_launcher}, 35 | {"conv_p", conv_p_launcher}, 36 | {"conv_f", conv_f_launcher}, 37 | {"mix", mix_launcher}, 38 | /*FCTS_HERE*/ 39 | {"", NULL} 40 | }; 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /tests/includes/tests.h: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* tests.h :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: jkettani +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2019/03/03 16:27:36 by jkettani #+# #+# */ 9 | /* Updated: 2019/03/04 19:13:52 by jkettani ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #ifndef TESTS_H 14 | # define TESTS_H 15 | 16 | typedef struct s_test_rslt{ 17 | char *user_str; 18 | char *ref_str; 19 | int user_ret; 20 | int ref_ret; 21 | } t_test_rslt; 22 | 23 | void print_header_fd(int fd); 24 | void print_test_result_values_trace(t_test_rslt *test_rslt, 25 | int fd_trace); 26 | int free_result(t_test_rslt *test_rslt, int ret_value); 27 | 28 | # endif 29 | -------------------------------------------------------------------------------- /tests/mix/000_launcher.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "ft_printf.h" 3 | #include "mix.h" 4 | 5 | /* Load test format: 6 | if ((err = load_test(&test_list, "TMPL_TEST_NAME", 7 | &mix_TMPL_TEST_FCT_NAME, SUCCESS))) 8 | return (err); 9 | */ 10 | 11 | int mix_launcher(void) 12 | { 13 | t_unit_test *test_list; 14 | char *fct_name; 15 | int err; 16 | int fd; 17 | int fd_trace; 18 | 19 | fct_name = "mix"; 20 | err = 0; 21 | fd = TESTS_OUTPUT_FD; 22 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 23 | test_list = NULL; 24 | print_fct_name_fd(fct_name, fd); 25 | if (fd_trace != fd) 26 | print_fct_name_trace_fd(fct_name, fd_trace); 27 | if ((err = load_test(&test_list, "\"abcd%%efg%dgh%u%i%c%s%f\", -42, 42u, -56, 'z', \"this is a string followed by a float: \", 2.33456", 28 | &mix_various_mix_simple, SUCCESS))) 29 | return (err); 30 | if ((err = load_test(&test_list, "\"abcd%%efg%-23.10dgh%42.4u%+2.10i%-22c%.23s%.32f\", -42, 42u, -56, 'z', \"this is a string followed by a float: \", 2.33456", 31 | &mix_various_mix_with_flags, SUCCESS))) 32 | return (err); 33 | /*LOAD_TEST_HERE*/ 34 | return (launch_tests(&test_list, fd)); 35 | } 36 | -------------------------------------------------------------------------------- /tests/mix/001_various_mix_simple.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "abcd%%efg%dgh%u%i%c%s%f", -42, 42u, -56, 'z', "this is a string followed by a float: ", 2.33456 12 | 13 | int mix_various_mix_simple(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/mix/mix.h: -------------------------------------------------------------------------------- 1 | #ifndef mix_H 2 | # define mix_H 3 | 4 | int mix_various_mix_simple(void); 5 | int mix_various_mix_with_flags(void); 6 | /*PROTOTYPES_HERE*/ 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /tests/no_type/001_empty_string.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "" 12 | 13 | int no_type_empty_string(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/no_type/002_newline.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "\n" 12 | 13 | int no_type_newline(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/no_type/003_normal_string.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "test12345678" 12 | 13 | int no_type_normal_string(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/no_type/004_normal_string_with_non_printable.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "test12345678\t\v\n" 12 | 13 | int no_type_normal_string_with_non_printable(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/no_type/005_normal_string_and_newline.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "test\n" 12 | 13 | int no_type_normal_string_and_newline(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/no_type/006_valid_percent_sign.c: -------------------------------------------------------------------------------- 1 | #include "frmk_libunit.h" 2 | #include "tests.h" 3 | #include "ft_printf.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | # define ARGS "%%|%%%%|%%%%%%|%%abc%%def%%ghi%%" 12 | 13 | int no_type_valid_percent_sign(void) 14 | { 15 | t_test_rslt test_rslt; 16 | int pfd[2]; 17 | int nbytes_read; 18 | int ret_value; 19 | int save_out; 20 | int err; 21 | int fd_trace; 22 | 23 | test_rslt = (t_test_rslt){NULL, NULL, 0, 0}; 24 | fd_trace = get_fd(TRACE_FILE, OUTPUT_MODE, OP_APPEND); 25 | if ((err = pipe_stdout(pfd, &save_out))) 26 | return (free_result(&test_rslt, err)); 27 | test_rslt.ref_ret = printf(ARGS); 28 | if ((err = read_pipe(&test_rslt.ref_str, &nbytes_read, pfd, &save_out))) 29 | return (free_result(&test_rslt, err)); 30 | if ((err = pipe_stdout(pfd, &save_out))) 31 | return (free_result(&test_rslt, err)); 32 | test_rslt.user_ret = ft_printf(ARGS); 33 | if ((err = read_pipe(&test_rslt.user_str, &nbytes_read, pfd, &save_out))) 34 | return (free_result(&test_rslt, err)); 35 | if ((test_rslt.user_ret != test_rslt.ref_ret) 36 | || memcmp(test_rslt.user_str, test_rslt.ref_str, test_rslt.ref_ret)) 37 | { 38 | print_test_result_values_trace(&test_rslt, fd_trace); 39 | ret_value = -1; 40 | } 41 | else 42 | { 43 | print_test_result_values_trace(&test_rslt, fd_trace); 44 | ret_value = 0; 45 | } 46 | return (free_result(&test_rslt, ret_value)); 47 | } 48 | -------------------------------------------------------------------------------- /tests/no_type/no_type.h: -------------------------------------------------------------------------------- 1 | #ifndef no_type_H 2 | # define no_type_H 3 | 4 | int no_type_empty_string(void); 5 | int no_type_newline(void); 6 | int no_type_normal_string(void); 7 | int no_type_normal_string_with_non_printable(void); 8 | int no_type_normal_string_and_newline(void); 9 | int no_type_valid_percent_sign(void); 10 | int no_type_very_long_string(void); 11 | /*PROTOTYPES_HERE*/ 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /tests/printf/printf.h: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* printf.h :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: jkettani +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2019/03/04 10:08:56 by jkettani #+# #+# */ 9 | /* Updated: 2019/03/04 10:09:11 by jkettani ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #ifndef PRINTF_H 14 | # define PRINTF_H 15 | 16 | int printf_basic_test(void); 17 | 18 | #endif 19 | --------------------------------------------------------------------------------