diff options
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | README.md | 3 | ||||
| -rw-r--r-- | header.h | 11 | ||||
| -rw-r--r-- | main.c | 538 | ||||
| -rw-r--r-- | pft_tests.c | 1730 | ||||
| -rw-r--r-- | prettier.py | 17 |
6 files changed, 1765 insertions, 536 deletions
@@ -9,7 +9,7 @@ PYTHON = python3 RM = rm -f MAKE = make -j4 -SRC = main.c helper.c moulitest_read_stdout.c +SRC = main.c helper.c pft_tests.c OBJ = $(SRC:.c=.o) run: run_pretty @@ -14,4 +14,5 @@ Clone this repo such that: or modify the `FT_PRINTF_PATH` variable in the Makefile -`> make run` +- `> make run`: run the tests in a pretty format +- `> make run_raw`: run the tests in a ugly but parsable format @@ -31,6 +31,17 @@ void test_setup(void); void test_tear_down(void); char *read_stdout_buf(void); +void test_pft_nacked(void); +void test_pft_percent(void); +void test_pft_string(void); +void test_pft_int_i(void); +void test_pft_int_d(void); +void test_ptf_uint(void); +void test_ptf_hex_low(void); +void test_ptf_hex_up(void); +void test_pft_ptr(void); +void test_pft_char(void); + # define TEST_SEGFAULT(x) do { \ if ((pid = fork()) < 0) \ exit(EXIT_FAILURE); \ @@ -1,539 +1,17 @@ #include <stdio.h> #include "header.h" -void test_pft_nacked(void); -void test_pft_string(void); -void test_pft_int(void); -void test_pft_percent(void); - int main(int argc, char **argv) { test_pft_nacked(); - test_pft_string(); - /* sleep(1); */ - test_pft_int(); test_pft_percent(); + test_pft_string(); + test_pft_int_i(); + test_pft_int_d(); + test_ptf_uint(); + test_ptf_hex_low(); + test_ptf_hex_up(); + test_pft_ptr(); + test_pft_char(); return 0; } - -void test_pft_nacked(void) -{ - ASSERT_PRINTF("hello, world!"); - ASSERT_PRINTF(""); - ASSERT_PRINTF("\t\n\r\v\f\n"); -} - -void test_pft_percent(void) -{ - ASSERT_PRINTF("%%"); - /* ASSERT_PRINTF("%"); */ - ASSERT_PRINTF("%5%"); - ASSERT_PRINTF("%-5%"); - ASSERT_PRINTF("%05%"); - ASSERT_PRINTF("%-05%"); -} - -void test_pft_nocrash(void) -{ - /* ASSERT_PRINTF("%"); */ - ASSERT_PRINTF("%5"); - ASSERT_PRINTF("%05"); - ASSERT_PRINTF("%-05"); - ASSERT_PRINTF("%-5"); -} - -void test_pft_string(void) -{ - ASSERT_PRINTF("hello, %s.", "gavin"); - ASSERT_PRINTF("%s", "testing testing"); - ASSERT_PRINTF("%s%s", "hello", "world"); - ASSERT_PRINTF("..%s stuff %s", "a", "b"); - ASSERT_PRINTF("this %s is empty", ""); - ASSERT_PRINTF("this %s is %s", "hello", ""); - ASSERT_PRINTF("this %s is %s", "", "hello"); - ASSERT_PRINTF("%s%s%s", "1", "2", "3's a charm"); - - ASSERT_PRINTF("%32s", "abc"); - ASSERT_PRINTF("%16s", "nark nark"); - ASSERT_PRINTF("%5s", "goes over"); - ASSERT_PRINTF("%-32s", "abc"); - ASSERT_PRINTF("%-16s", "nark nark"); - ASSERT_PRINTF("%-5s", "goes over"); - ASSERT_PRINTF("%.7s", "hello"); - ASSERT_PRINTF("%.3s", "hello"); - ASSERT_PRINTF("%.s", "hello"); - ASSERT_PRINTF("%.0s", "hello"); - ASSERT_PRINTF("%.3s%.2s", "holla", "bitch"); - ASSERT_PRINTF("%.2s%.7s", "hello", "world"); - ASSERT_PRINTF("%.7s%.2s", "hello", "world"); - ASSERT_PRINTF("%.5s%7s", "yo", "boi"); - ASSERT_PRINTF("%7.5s", "yolo"); - ASSERT_PRINTF("%7.5s", "bombastic"); - ASSERT_PRINTF("%-7.5s", "yolo"); - ASSERT_PRINTF("%-7.5s", "tubular"); - ASSERT_PRINTF("%7.7s%7.7s", "hello", "world"); - ASSERT_PRINTF("%3.7s%7.7s", "hello", "world"); - ASSERT_PRINTF("%7.7s%3.7s", "hello", "world"); - ASSERT_PRINTF("%3.7s%3.7s", "hello", "world"); - ASSERT_PRINTF("%7.3s%7.7s", "hello", "world"); - ASSERT_PRINTF("%3.3s%7.7s", "hello", "world"); - ASSERT_PRINTF("%7.3s%3.7s", "hello", "world"); - ASSERT_PRINTF("%3.3s%3.7s", "hello", "world"); - ASSERT_PRINTF("%7.7s%7.3s", "hello", "world"); - ASSERT_PRINTF("%3.7s%7.3s", "hello", "world"); - ASSERT_PRINTF("%7.7s%3.3s", "hello", "world"); - ASSERT_PRINTF("%3.7s%3.3s", "hello", "world"); - ASSERT_PRINTF("%7.3s%7.3s", "hello", "world"); - ASSERT_PRINTF("%3.3s%7.3s", "hello", "world"); - ASSERT_PRINTF("%7.3s%3.3s", "hello", "world"); - ASSERT_PRINTF("%3.3s%3.3s", "hello", "world"); - ASSERT_PRINTF("%3s%3s", "hello", "world"); - ASSERT_PRINTF("%-7s%5s", "hello", "world"); - ASSERT_PRINTF("%7s%-5s", "hello", "world"); - ASSERT_PRINTF("hello, %s.", NULL); - ASSERT_PRINTF("%s", NULL); - ASSERT_PRINTF("%32s", NULL); - ASSERT_PRINTF("%2s", NULL); - ASSERT_PRINTF("%-32s", NULL); - ASSERT_PRINTF("%-16s", NULL); - ASSERT_PRINTF("%-3s", NULL); - ASSERT_PRINTF("%.9s", "NULL"); - ASSERT_PRINTF("%.3s", "NULL"); - ASSERT_PRINTF("%.s", "NULL"); - ASSERT_PRINTF("%.0s", "NULL"); - - static char *s_hidden = "hi low\0don't print me lol\0"; - ASSERT_PRINTF("%s", s_hidden); - ASSERT_PRINTF("%3s", s_hidden); - ASSERT_PRINTF("%9s", s_hidden); - ASSERT_PRINTF("%.s", s_hidden); - ASSERT_PRINTF("%.9s", s_hidden); - ASSERT_PRINTF("%.03s", s_hidden); - ASSERT_PRINTF("%.09s", s_hidden); - ASSERT_PRINTF("%.03s", NULL); - ASSERT_PRINTF("%.09s", NULL); - ASSERT_PRINTF("%.00s", "\0"); - ASSERT_PRINTF("%.01s", "\0"); - ASSERT_PRINTF("%.03s", "\0"); - ASSERT_PRINTF("%.09s", "\0"); - ASSERT_PRINTF("%3.s", s_hidden); - ASSERT_PRINTF("%10.s", s_hidden); - ASSERT_PRINTF("%3.s", NULL); - ASSERT_PRINTF("%10.s", NULL); - ASSERT_PRINTF("%1.s", "\0"); - ASSERT_PRINTF("%2.s", "\0"); - ASSERT_PRINTF("%9.s", "\0"); - ASSERT_PRINTF("%-3.s", s_hidden); - ASSERT_PRINTF("%-8.s", s_hidden); - ASSERT_PRINTF("%-3.s", NULL); - ASSERT_PRINTF("%-8.s", NULL); - ASSERT_PRINTF("%-1.s", "\0"); - ASSERT_PRINTF("%-2.s", "\0"); - ASSERT_PRINTF("%-6.s", "\0"); - ASSERT_PRINTF("%3.1s", s_hidden); - ASSERT_PRINTF("%10.1s", s_hidden); - ASSERT_PRINTF("%3.1s", NULL); - ASSERT_PRINTF("%9.1s", NULL); - ASSERT_PRINTF("%-3.1s", s_hidden); - ASSERT_PRINTF("%-10.1s", s_hidden); - ASSERT_PRINTF("%-3.1s", NULL); - ASSERT_PRINTF("%-9.1s", NULL); - ASSERT_PRINTF("%-3.1s", "\0"); - ASSERT_PRINTF("%-6.1s", "\0"); - ASSERT_PRINTF("%3.6s", s_hidden); - ASSERT_PRINTF("%20.6s", s_hidden); - ASSERT_PRINTF("%3.6s", NULL); - ASSERT_PRINTF("%20.6s", NULL); - ASSERT_PRINTF("%3.6s", "\0"); - ASSERT_PRINTF("%6.6s", "\0"); - ASSERT_PRINTF("%-3.6s", s_hidden); - ASSERT_PRINTF("%-20.6s", s_hidden); - ASSERT_PRINTF("%-3.8s", s_hidden); - ASSERT_PRINTF("%-10.8s", s_hidden); - ASSERT_PRINTF("%-3.8s", NULL); - ASSERT_PRINTF("%-10.8s", NULL); - ASSERT_PRINTF("%-.00s", s_hidden); - ASSERT_PRINTF("%-.09s", s_hidden); - ASSERT_PRINTF("%+- 06.06s", s_hidden); - ASSERT_PRINTF("% 0+-6.06s", s_hidden); - ASSERT_PRINTF("%0 +-6.06s", s_hidden); - ASSERT_PRINTF("%+-0 6.06s", s_hidden); - ASSERT_PRINTF("%-+ 06.06s", s_hidden); - ASSERT_PRINTF("% -+06.06s", s_hidden); - ASSERT_PRINTF("%+- 07.06s", s_hidden); - ASSERT_PRINTF("% 0+-8.06s", s_hidden); - ASSERT_PRINTF("%0 +-9.06s", s_hidden); - ASSERT_PRINTF("%+-0 10.06s", s_hidden); - ASSERT_PRINTF("%-+ 011.06s", s_hidden); - ASSERT_PRINTF("% -+012.06s", s_hidden); - ASSERT_PRINTF("%+- 06.04s", s_hidden); - ASSERT_PRINTF("% 0+-6.04s", s_hidden); - ASSERT_PRINTF("%0 +-6.04s", s_hidden); - ASSERT_PRINTF("%+-0 6.04s", s_hidden); - ASSERT_PRINTF("%-+ 06.04s", s_hidden); - ASSERT_PRINTF("% 0-+6.04s", s_hidden); - ASSERT_PRINTF("%+- 06.09s", s_hidden); - ASSERT_PRINTF("% 0+-6.09s", s_hidden); - ASSERT_PRINTF("%0 +-6.09s", s_hidden); - ASSERT_PRINTF("%+-0 6.09s", s_hidden); - ASSERT_PRINTF("%-+ 06.09s", s_hidden); - ASSERT_PRINTF("% 0-+6.09s", s_hidden); - ASSERT_PRINTF("%00s", s_hidden); - ASSERT_PRINTF("%000s", s_hidden); - ASSERT_PRINTF("%0000s", s_hidden); - ASSERT_PRINTF("%-00s", s_hidden); - ASSERT_PRINTF("%0-0s", s_hidden); - ASSERT_PRINTF("%00-s", s_hidden); - ASSERT_PRINTF("%03s", s_hidden); - ASSERT_PRINTF("%09s", s_hidden); - ASSERT_PRINTF("%+03s", s_hidden); - ASSERT_PRINTF("%+09s", s_hidden); - ASSERT_PRINTF("%-03s", s_hidden); - ASSERT_PRINTF("%-09s", s_hidden); - ASSERT_PRINTF("%+ 3s", s_hidden); - ASSERT_PRINTF("%+ 6s", s_hidden); -} - -void test_pft_int(void) -{ - ASSERT_PRINTF("this %i number", 17); - ASSERT_PRINTF("this %i number", -267); - ASSERT_PRINTF("this %i number", 0); - ASSERT_PRINTF("%i", 3); - ASSERT_PRINTF("%i", -1); - ASSERT_PRINTF("%i", 0); - ASSERT_PRINTF("this %d number", 17); - ASSERT_PRINTF("this %d number", -267); - ASSERT_PRINTF("this %d number", 0); - ASSERT_PRINTF("%i", 2147483647); - ASSERT_PRINTF("%i", (int)(-2147483678)); - ASSERT_PRINTF("%+i", 5); - ASSERT_PRINTF("%+i", -7); - ASSERT_PRINTF("%+i", 2147483647); - ASSERT_PRINTF("%7i", 33); - ASSERT_PRINTF("%7i", -14); - ASSERT_PRINTF("%3i", 0); - ASSERT_PRINTF("%5i", 52625); - ASSERT_PRINTF("%5i", -2562); - ASSERT_PRINTF("%4i", 94827); - ASSERT_PRINTF("%4i", -2464); - ASSERT_PRINTF("%-7i", 33); - ASSERT_PRINTF("%-7i", -14); - ASSERT_PRINTF("%-3i", 0); - ASSERT_PRINTF("%-5i", 52625); - ASSERT_PRINTF("%-5i", -2562); - ASSERT_PRINTF("%-4i", 94827); - ASSERT_PRINTF("%-4i", -2464); - ASSERT_PRINTF("%+5i", 35); - ASSERT_PRINTF("%+7i", 0); - ASSERT_PRINTF("%+24i", 2147483647); - ASSERT_PRINTF("%.5i", 2); - ASSERT_PRINTF("%.6i", -3); - ASSERT_PRINTF("%.3i", 0); - ASSERT_PRINTF("%.4i", 5263); - ASSERT_PRINTF("%.4i", -2372); - ASSERT_PRINTF("%.3i", 13862); - ASSERT_PRINTF("%.3i",-23646); - ASSERT_PRINTF("%+.7i", 234); - ASSERT_PRINTF("%+.7i", -446); - ASSERT_PRINTF("%+.3i", 3723); - ASSERT_PRINTF("%05i", 43); - ASSERT_PRINTF("%07i", -54); - ASSERT_PRINTF("%03i", 0); - ASSERT_PRINTF("%03i", 634); - ASSERT_PRINTF("%04i", -532); - ASSERT_PRINTF("%04i", -4825); - ASSERT_PRINTF("%+05i", 432); - ASSERT_PRINTF("%+04i", 0); - ASSERT_PRINTF("%8.5i", 34); - ASSERT_PRINTF("%10.5i", -216); - ASSERT_PRINTF("%8.5i", 0); - ASSERT_PRINTF("%8.3i", 8375); - ASSERT_PRINTF("%8.3i", -8473); - ASSERT_PRINTF("%3.7i", 3267); - ASSERT_PRINTF("%3.7i", -2375); - ASSERT_PRINTF("%3.3i", 6983); - ASSERT_PRINTF("%3.3i", -8462); - ASSERT_PRINTF("%-8.5i", 34); - ASSERT_PRINTF("%-10.5i", -216); - ASSERT_PRINTF("%-8.5i", 0); - ASSERT_PRINTF("%-8.3i", 8375); - ASSERT_PRINTF("%-8.3i", -8473); - ASSERT_PRINTF("%-3.7i", 3267); - ASSERT_PRINTF("%-3.7i", -2375); - ASSERT_PRINTF("%-3.3i", 6983); - ASSERT_PRINTF("%-3.3i", -8462); - ASSERT_PRINTF("%+8.5i", 34); - ASSERT_PRINTF("%+10.5i", -216); - ASSERT_PRINTF("%+8.5i", 0); - ASSERT_PRINTF("%+8.3i", 8375); - ASSERT_PRINTF("%+8.3i", -8473); - ASSERT_PRINTF("%+3.7i", 3267); - ASSERT_PRINTF("%+3.7i", -2375); - ASSERT_PRINTF("%+3.3i", 6983); - ASSERT_PRINTF("%+3.3i", -8462); - ASSERT_PRINTF("%+-8.5i", 34); - ASSERT_PRINTF("%+-10.5i", -216); - ASSERT_PRINTF("%+-8.5i", 0); - ASSERT_PRINTF("%+-8.3i", 8375); - ASSERT_PRINTF("%+-8.3i", -8473); - ASSERT_PRINTF("%+-3.7i", 3267); - ASSERT_PRINTF("%+-3.7i", -2375); - ASSERT_PRINTF("%+-3.3i", 6983); - ASSERT_PRINTF("%+-3.3i", -8462); - ASSERT_PRINTF("%08.5i", 34); - ASSERT_PRINTF("%010.5i", -216); - ASSERT_PRINTF("%08.5i", 0); - ASSERT_PRINTF("%08.3i", 8375); - ASSERT_PRINTF("%08.3i", -8473); - ASSERT_PRINTF("%03.7i", 3267); - ASSERT_PRINTF("%03.7i", -2375); - ASSERT_PRINTF("%03.3i", 6983); - ASSERT_PRINTF("%03.3i", -8462); - ASSERT_PRINTF("%0-8.5i", 34); - ASSERT_PRINTF("%0-10.5i", -216); - ASSERT_PRINTF("%0-8.5i", 0); - ASSERT_PRINTF("%0-8.3i", 8375); - ASSERT_PRINTF("%0-8.3i", -8473); - ASSERT_PRINTF("%0-3.7i", 3267); - ASSERT_PRINTF("%0-3.7i", -2375); - ASSERT_PRINTF("%0-3.3i", 6983); - ASSERT_PRINTF("%0-3.3i", -8462); - ASSERT_PRINTF("%0+8.5i", 34); - ASSERT_PRINTF("%0+10.5i", -216); - ASSERT_PRINTF("%0+8.5i", 0); - ASSERT_PRINTF("%0+8.3i", 8375); - ASSERT_PRINTF("%0+8.3i", -8473); - ASSERT_PRINTF("%0+3.7i", 3267); - ASSERT_PRINTF("%0+3.7i", -2375); - ASSERT_PRINTF("%0+3.3i", 6983); - ASSERT_PRINTF("%0+3.3i", -8462); - ASSERT_PRINTF("%0+-8.5i", 34); - ASSERT_PRINTF("%0+-10.5i", -216); - ASSERT_PRINTF("%0+-8.5i", 0); - ASSERT_PRINTF("%0+-8.3i", 8375); - ASSERT_PRINTF("%0+-8.3i", -8473); - ASSERT_PRINTF("%0+-3.7i", 3267); - ASSERT_PRINTF("%0+-3.7i", -2375); - ASSERT_PRINTF("%0+-3.3i", 6983); - ASSERT_PRINTF("%0+-3.3i", -8462); - static char ch_pos_1 = 100, ch_neg_1 = -87; - static short sh_pos_1 = 3047, sh_neg_1 = -8875; - static int i_pos_1 = 878023; - static long l_pos_1 = 22337203685477, l_neg_1 = -22337203685477; - static long long ll_pos_1 = 22337203685477, ll_neg_1 = -22337203685477; - static long lmax = 9223372036854775807; - static long lmin = -9223372036854775807; - static long long llmax = 9223372036854775807; - static long long llmin = -9223372036854775807ll; - ASSERT_PRINTF("%hhi", (char)45); - ASSERT_PRINTF("%hhi", (char)-45); - ASSERT_PRINTF("%hi", (short)385); - ASSERT_PRINTF("%hi", (short)-385); - ASSERT_PRINTF("%li", (long)32); - ASSERT_PRINTF("%li", (long)-32); - ASSERT_PRINTF("%lli", (long long)43); - ASSERT_PRINTF("%lli", (long long)-43); - ASSERT_PRINTF("%hhi", ch_pos_1); - ASSERT_PRINTF("%hhi", ch_neg_1); - ASSERT_PRINTF("%hi", sh_pos_1); - ASSERT_PRINTF("%hi", sh_neg_1); - ASSERT_PRINTF("%li", l_pos_1); - ASSERT_PRINTF("%li", lmax); - ASSERT_PRINTF("%lli", llmax); - ASSERT_PRINTF("%li", l_neg_1); - ASSERT_PRINTF("%lli", ll_pos_1); - ASSERT_PRINTF("%lli", ll_neg_1); - ASSERT_PRINTF("%li", 22337203685477); - ASSERT_PRINTF("%li", -22337203685477); - ASSERT_PRINTF("%lli", 522337203685470ll); - ASSERT_PRINTF("%lli", -522337203685470ll); - ASSERT_PRINTF("%lli", 9223372036854775807ll); - ASSERT_PRINTF("%lli", llmin); - ASSERT_PRINTF("%li", 9223372036854775807l); - ASSERT_PRINTF("%li", lmin); - ASSERT_PRINTF("%hi", (short)32767); - ASSERT_PRINTF("%hi", (short)(-32768)); - ASSERT_PRINTF("%hhi", (char)127); - ASSERT_PRINTF("%hhi", (char)(-128)); - ASSERT_PRINTF("%037li", 22337203685477l); - ASSERT_PRINTF("%.37li", -22337203685477l); - ASSERT_PRINTF("%37lli", 522337203685470ll); - ASSERT_PRINTF("%-37lli", -522337203685470ll); - ASSERT_PRINTF("%+li", 22337203685477l); - ASSERT_PRINTF("[%i] [%i]", i_pos_1, i_pos_1); - ASSERT_PRINTF("[%i] [%li]", i_pos_1, l_pos_1); - ASSERT_PRINTF("[%i] [%lli]", i_pos_1, ll_pos_1); - ASSERT_PRINTF("[%i] [%hi]", i_pos_1, sh_pos_1); - ASSERT_PRINTF("[%i] [%hhi]", i_pos_1, ch_pos_1); - ASSERT_PRINTF("%lli%hhi%lli", ll_pos_1, ch_neg_1, ll_neg_1); - ASSERT_PRINTF("%hi%li%hhi", sh_pos_1, l_neg_1, ch_neg_1); - ASSERT_PRINTF("%li%hhi%hi", l_neg_1, ch_pos_1, sh_pos_1); - ASSERT_PRINTF("%i%lli%hhi", i_pos_1, ll_neg_1, ch_pos_1); - ASSERT_PRINTF("%lli%i%li", ll_neg_1, i_pos_1, l_pos_1); - ASSERT_PRINTF("this % i number", 17); - ASSERT_PRINTF("this % i number", -267); - ASSERT_PRINTF("this % i number", 0); - ASSERT_PRINTF("% i", 3); - ASSERT_PRINTF("% i", -1); - ASSERT_PRINTF("% i", 0); - ASSERT_PRINTF("this % d number", 17); - ASSERT_PRINTF("this % d number", -267); - ASSERT_PRINTF("this % d number", 0); - ASSERT_PRINTF("% i", 2147483647); - ASSERT_PRINTF("% i", (int)(-2147483678)); - ASSERT_PRINTF("% +i", 5); - ASSERT_PRINTF("% +i", -7); - ASSERT_PRINTF("% +i", 2147483647); - ASSERT_PRINTF("% 7i", 33); - ASSERT_PRINTF("% 7i", -14); - ASSERT_PRINTF("% 3i", 0); - ASSERT_PRINTF("% 5i", 52625); - ASSERT_PRINTF("% 5i", -2562); - ASSERT_PRINTF("% 4i", 94827); - ASSERT_PRINTF("% 4i", -2464); - ASSERT_PRINTF("% -7i", 33); - ASSERT_PRINTF("% -7i", -14); - ASSERT_PRINTF("% -3i", 0); - ASSERT_PRINTF("% -5i", 52625); - ASSERT_PRINTF("% -5i", -2562); - ASSERT_PRINTF("% -4i", 94827); - ASSERT_PRINTF("% -4i", -2464); - ASSERT_PRINTF("% +5i", 35); - ASSERT_PRINTF("% +7i", 0); - ASSERT_PRINTF("% +24i", 2147483647); - ASSERT_PRINTF("% .5i", 2); - ASSERT_PRINTF("% .6i", -3); - ASSERT_PRINTF("% .3i", 0); - ASSERT_PRINTF("% .4i", 5263); - ASSERT_PRINTF("% .4i", -2372); - ASSERT_PRINTF("% .3i", 13862); - ASSERT_PRINTF("% .3i",-23646); - ASSERT_PRINTF("% +.7i", 234); - ASSERT_PRINTF("% +.7i", -446); - ASSERT_PRINTF("% +.3i", 3723); - ASSERT_PRINTF("% 05i", 43); - ASSERT_PRINTF("% 07i", -54); - ASSERT_PRINTF("% 03i", 0); - ASSERT_PRINTF("% 03i", 634); - ASSERT_PRINTF("% 04i", -532); - ASSERT_PRINTF("% 04i", -4825); - ASSERT_PRINTF("% +05i", 432); - ASSERT_PRINTF("% +04i", 0); - ASSERT_PRINTF("% 8.5i", 34); - ASSERT_PRINTF("% 10.5i", -216); - ASSERT_PRINTF("% 8.5i", 0); - ASSERT_PRINTF("% 8.3i", 8375); - ASSERT_PRINTF("% 8.3i", -8473); - ASSERT_PRINTF("% 3.7i", 3267); - ASSERT_PRINTF("% 3.7i", -2375); - ASSERT_PRINTF("% 3.3i", 6983); - ASSERT_PRINTF("% 3.3i", -8462); - ASSERT_PRINTF("% -8.5i", 34); - ASSERT_PRINTF("% -10.5i", -216); - ASSERT_PRINTF("% -8.5i", 0); - ASSERT_PRINTF("% -8.3i", 8375); - ASSERT_PRINTF("% -8.3i", -8473); - ASSERT_PRINTF("% -3.7i", 3267); - ASSERT_PRINTF("% -3.7i", -2375); - ASSERT_PRINTF("% -3.3i", 6983); - ASSERT_PRINTF("% -3.3i", -8462); - ASSERT_PRINTF("% +8.5i", 34); - ASSERT_PRINTF("% +10.5i", -216); - ASSERT_PRINTF("% +8.5i", 0); - ASSERT_PRINTF("% +8.3i", 8375); - ASSERT_PRINTF("% +8.3i", -8473); - ASSERT_PRINTF("% +3.7i", 3267); - ASSERT_PRINTF("% +3.7i", -2375); - ASSERT_PRINTF("% +3.3i", 6983); - ASSERT_PRINTF("% +3.3i", -8462); - ASSERT_PRINTF("% +-8.5i", 34); - ASSERT_PRINTF("% +-10.5i", -216); - ASSERT_PRINTF("% +-8.5i", 0); - ASSERT_PRINTF("% +-8.3i", 8375); - ASSERT_PRINTF("% +-8.3i", -8473); - ASSERT_PRINTF("% +-3.7i", 3267); - ASSERT_PRINTF("% +-3.7i", -2375); - ASSERT_PRINTF("% +-3.3i", 6983); - ASSERT_PRINTF("% +-3.3i", -8462); - ASSERT_PRINTF("% 08.5i", 34); - ASSERT_PRINTF("% 010.5i", -216); - ASSERT_PRINTF("% 08.5i", 0); - ASSERT_PRINTF("% 08.3i", 8375); - ASSERT_PRINTF("% 08.3i", -8473); - ASSERT_PRINTF("% 03.7i", 3267); - ASSERT_PRINTF("% 03.7i", -2375); - ASSERT_PRINTF("% 03.3i", 6983); - ASSERT_PRINTF("% 03.3i", -8462); - ASSERT_PRINTF("% 0-8.5i", 34); - ASSERT_PRINTF("% 0-10.5i", -216); - ASSERT_PRINTF("% 0-8.5i", 0); - ASSERT_PRINTF("% 0-8.3i", 8375); - ASSERT_PRINTF("% 0-8.3i", -8473); - ASSERT_PRINTF("% 0-3.7i", 3267); - ASSERT_PRINTF("% 0-3.7i", -2375); - ASSERT_PRINTF("% 0-3.3i", 6983); - ASSERT_PRINTF("% 0-3.3i", -8462); - ASSERT_PRINTF("% 0+8.5i", 34); - ASSERT_PRINTF("% 0+10.5i", -216); - ASSERT_PRINTF("% 0+8.5i", 0); - ASSERT_PRINTF("% 0+8.3i", 8375); - ASSERT_PRINTF("% 0+8.3i", -8473); - ASSERT_PRINTF("% 0+3.7i", 3267); - ASSERT_PRINTF("% 0+3.7i", -2375); - ASSERT_PRINTF("% 0+3.3i", 6983); - ASSERT_PRINTF("% 0+3.3i", -8462); - ASSERT_PRINTF("% 0+-8.5i", 34); - ASSERT_PRINTF("% 0+-10.5i", -216); - ASSERT_PRINTF("% 0+-8.5i", 0); - ASSERT_PRINTF("% 0+-8.3i", 8375); - ASSERT_PRINTF("% 0+-8.3i", -8473); - ASSERT_PRINTF("% 0+-3.7i", 3267); - ASSERT_PRINTF("% 0+-3.7i", -2375); - ASSERT_PRINTF("% 0+-3.3i", 6983); - ASSERT_PRINTF("% 0+-3.3i", -8462); - ASSERT_PRINTF("% hhi", (char)45); - ASSERT_PRINTF("% hhi", (char)-45); - ASSERT_PRINTF("% hi", (short)385); - ASSERT_PRINTF("% hi", (short)-385); - ASSERT_PRINTF("% li", (long)32); - ASSERT_PRINTF("% li", (long)-32); - ASSERT_PRINTF("% lli", (long long)43); - ASSERT_PRINTF("% lli", (long long)-43); - ASSERT_PRINTF("% hhi", ch_pos_1); - ASSERT_PRINTF("% hhi", ch_neg_1); - ASSERT_PRINTF("% hi", sh_pos_1); - ASSERT_PRINTF("% hi", sh_neg_1); - ASSERT_PRINTF("% li", l_pos_1); - ASSERT_PRINTF("% li", l_neg_1); - ASSERT_PRINTF("% lli", ll_pos_1); - ASSERT_PRINTF("% lli", ll_neg_1); - ASSERT_PRINTF("% li", 22337203685477l); - ASSERT_PRINTF("% li", -22337203685477l); - ASSERT_PRINTF("% lli", 522337203685470ll); - ASSERT_PRINTF("% lli", -522337203685470ll); - ASSERT_PRINTF("% lli", 9223372036854775807ll); - ASSERT_PRINTF("% lli", llmin); - ASSERT_PRINTF("% li", 9223372036854775807l); - ASSERT_PRINTF("% li", lmin); - ASSERT_PRINTF("% hi", (short)32767); - ASSERT_PRINTF("% hi", (short)(-32768)); - ASSERT_PRINTF("% hhi", (char)(127)); - ASSERT_PRINTF("% hhi", (char)(-128)); - ASSERT_PRINTF("%.0i", 0); - ASSERT_PRINTF("%.i", 0); - ASSERT_PRINTF("%5.0i", 0); - ASSERT_PRINTF("%5.i", 0); - ASSERT_PRINTF("%-5.0i", 0); - ASSERT_PRINTF("%-5.i", 0); - ASSERT_PRINTF("%+.0i", 0); - ASSERT_PRINTF("%+.i", 0); - ASSERT_PRINTF("%+5.0i", 0); - ASSERT_PRINTF("%+5.i", 0); - ASSERT_PRINTF("%+-5.0i", 0); - ASSERT_PRINTF("%+-5.i", 0); - ASSERT_PRINTF("%hhi", -129); - ASSERT_PRINTF("%hhi", 128); - ASSERT_PRINTF("%hi", 32768); - ASSERT_PRINTF("%hi", -32769); -} diff --git a/pft_tests.c b/pft_tests.c new file mode 100644 index 0000000..0dea3bb --- /dev/null +++ b/pft_tests.c @@ -0,0 +1,1730 @@ +#include "header.h" + +void test_pft_nacked(void) +{ + ASSERT_PRINTF("hello, world!"); + ASSERT_PRINTF(""); + ASSERT_PRINTF("\t\n\r\v\f\n"); +} + +void test_pft_percent(void) +{ + ASSERT_PRINTF("%%"); + ASSERT_PRINTF("%5%"); + ASSERT_PRINTF("%-5%"); + ASSERT_PRINTF("%05%"); + ASSERT_PRINTF("%-05%"); +} + +void test_pft_nocrash(void) +{ + static int ncm_p = 5; + ASSERT_PRINTF("%"); + ASSERT_PRINTF("%5"); + ASSERT_PRINTF("%05"); + ASSERT_PRINTF("%-05"); + ASSERT_PRINTF("%-5"); + + ASSERT_PRINTF("%.4p", &ncm_p); + ASSERT_PRINTF("%.p", &ncm_p); + ASSERT_PRINTF("%#p", &ncm_p); + ASSERT_PRINTF("%05p", &ncm_p); + ASSERT_PRINTF("%0p", &ncm_p); + ASSERT_PRINTF("%+p", &ncm_p); + ASSERT_PRINTF("%+p", &ncm_p); + ASSERT_PRINTF("% p", &ncm_p); + ASSERT_PRINTF("% p", &ncm_p); + ASSERT_PRINTF("%hhp", &ncm_p); + ASSERT_PRINTF("%hp", &ncm_p); + ASSERT_PRINTF("%lp", &ncm_p); + ASSERT_PRINTF("%llp", &ncm_p); + ASSERT_PRINTF("%Lp", &ncm_p); + ASSERT_PRINTF("%-p", &ncm_p); + ASSERT_PRINTF("%Ld", 42); + ASSERT_PRINTF("%#d", 42); + ASSERT_PRINTF("%hhhd", 42); + ASSERT_PRINTF("%hhhhd", 42); + ASSERT_PRINTF("%hhld", 42); + ASSERT_PRINTF("%hhlld", 42); + ASSERT_PRINTF("%llhd", 42); + ASSERT_PRINTF("%llld", 42); + ASSERT_PRINTF("%Li", 42); + ASSERT_PRINTF("%#i", 42); + ASSERT_PRINTF("%hhhi", 42); + ASSERT_PRINTF("%-i", 42); + ASSERT_PRINTF("%+o", 42); + ASSERT_PRINTF("% o", 42); + ASSERT_PRINTF("%Lo", 42); + ASSERT_PRINTF("%hhho", 42); + ASSERT_PRINTF("%hhhho", 42); + ASSERT_PRINTF("%hhlo", 42); + ASSERT_PRINTF("%hhllo", 42); + ASSERT_PRINTF("%llho", 42); + ASSERT_PRINTF("%lllo", 42); + ASSERT_PRINTF("%-o", 42); + ASSERT_PRINTF("%Lu", 42); + ASSERT_PRINTF("%#u", 42); + ASSERT_PRINTF("%+u", 42); + ASSERT_PRINTF("% u", 42); + ASSERT_PRINTF("%hhhu", 42); + ASSERT_PRINTF("%hhhhu", 42); + ASSERT_PRINTF("%hhlu", 42); + ASSERT_PRINTF("%hhllu", 42); + ASSERT_PRINTF("%llhu", 42); + ASSERT_PRINTF("%lllu", 42); + ASSERT_PRINTF("%-u", 42); + ASSERT_PRINTF("%Lx", 42); + ASSERT_PRINTF("%+x", 42); + ASSERT_PRINTF("% x", 42); + ASSERT_PRINTF("%hhhx", 42); + ASSERT_PRINTF("%hhhhx", 42); + ASSERT_PRINTF("%hhlx", 42); + ASSERT_PRINTF("%hhllx", 42); + ASSERT_PRINTF("%llhx", 42); + ASSERT_PRINTF("%lllx", 42); + ASSERT_PRINTF("%LX", 42); + ASSERT_PRINTF("%+X", 42); + ASSERT_PRINTF("% X", 42); + ASSERT_PRINTF("%hhhX", 42); + ASSERT_PRINTF("%llhX", 42); + ASSERT_PRINTF("%-x", 42); + ASSERT_PRINTF("%hhf", 42.5); + ASSERT_PRINTF("%hf", 42.5); + ASSERT_PRINTF("%llf", 42.5); + ASSERT_PRINTF("%lllf", 42.5); + ASSERT_PRINTF("%llllf", 42.5); + ASSERT_PRINTF("%LLf", 42.5); + ASSERT_PRINTF("%Llf", 42.5); + ASSERT_PRINTF("%lLf", 42.5); + ASSERT_PRINTF("%-f", 42.5); + + ASSERT_PRINTF("%-021s", "abc"); + ASSERT_PRINTF("%-05s", "goes over"); + ASSERT_PRINTF("%04.3s%-7.4s", "hello", "world"); + ASSERT_PRINTF("%021s", NULL); + ASSERT_PRINTF("%02s", NULL); + ASSERT_PRINTF("%-021s", NULL); + ASSERT_PRINTF("%-03s", NULL); + ASSERT_PRINTF("%+u", 5); + ASSERT_PRINTF("%+u", 5); + ASSERT_PRINTF("%+u", 4294967295); + ASSERT_PRINTF("%+5u", 35); + ASSERT_PRINTF("%+7u", 0); + ASSERT_PRINTF("%+24u", 4294967295); + ASSERT_PRINTF("%+.7u", 234); + ASSERT_PRINTF("%+.3u", 3723); + ASSERT_PRINTF("%+05u", 432); + ASSERT_PRINTF("%+04u", 0); + ASSERT_PRINTF("%+8.5u", 34); + ASSERT_PRINTF("%+8.5u", 0); + ASSERT_PRINTF("%+8.3u", 8375); + ASSERT_PRINTF("%+3.7u", 3267); + ASSERT_PRINTF("%+3.3u", 6983); + ASSERT_PRINTF("%+-8.5u", 34); + ASSERT_PRINTF("%+-8.5u", 0); + ASSERT_PRINTF("%+-8.3u", 8375); + ASSERT_PRINTF("%+-3.7u", 3267); + ASSERT_PRINTF("%+-3.3u", 6983); + ASSERT_PRINTF("%0+8.5u", 34); + ASSERT_PRINTF("%0+8.5u", 0); + ASSERT_PRINTF("%0+8.3u", 8375); + ASSERT_PRINTF("%0+3.7u", 3267); + ASSERT_PRINTF("%0+3.3u", 6983); + ASSERT_PRINTF("%0+-8.5u", 34); + ASSERT_PRINTF("%0+-8.5u", 0); + ASSERT_PRINTF("%0+-8.3u", 8375); + ASSERT_PRINTF("%0+-3.7u", 3267); + ASSERT_PRINTF("%0+-3.3u", 6983); + ASSERT_PRINTF("%05c", '\0'); + ASSERT_PRINTF("%-05c", '\0'); + ASSERT_PRINTF("%+lu", 22337203685477); + ASSERT_PRINTF("%++d", 42); + ASSERT_PRINTF("% d", 42); + ASSERT_PRINTF("% + d", 42); + ASSERT_PRINTF("%--5d", 42); + ASSERT_PRINTF("%-+-5d", 42); + ASSERT_PRINTF("%##x", 42); + ASSERT_PRINTF("%#++#-5x", 42); + ASSERT_PRINTF("%.4c", 'a'); + ASSERT_PRINTF("%.c", 'a'); + ASSERT_PRINTF("%#c", 'a'); + ASSERT_PRINTF("%05c", 'a'); + ASSERT_PRINTF("%0c", 'a'); + ASSERT_PRINTF("%+c", 'a'); + ASSERT_PRINTF("%+c", -42); + ASSERT_PRINTF("% c", 'a'); + ASSERT_PRINTF("% c", -42); + ASSERT_PRINTF("%hhc", 'a'); + ASSERT_PRINTF("%hc", 'a'); + ASSERT_PRINTF("%lc", L'a'); + ASSERT_PRINTF("%llc", L'a'); + ASSERT_PRINTF("%Lc", L'a'); + ASSERT_PRINTF("%-c", 'a'); + ASSERT_PRINTF("%#s", "hello"); + ASSERT_PRINTF("%05s", "hello"); + ASSERT_PRINTF("%0s", "hello"); + ASSERT_PRINTF("%+s", "hello"); + ASSERT_PRINTF("% s", "hello"); + ASSERT_PRINTF("%hhs", "hello"); + ASSERT_PRINTF("%hs", "hello"); + ASSERT_PRINTF("%ls", L"hello"); + ASSERT_PRINTF("%lls", L"hello"); + ASSERT_PRINTF("%Ls", L"hello"); + ASSERT_PRINTF("%-s", "hello"); + + ASSERT_PRINTF("%1$"); + ASSERT_PRINTF("%0"); + ASSERT_PRINTF("% "); + ASSERT_PRINTF("%#"); + ASSERT_PRINTF("%-"); + ASSERT_PRINTF("%+"); + ASSERT_PRINTF("%23"); + ASSERT_PRINTF("%."); + ASSERT_PRINTF("%hh"); + ASSERT_PRINTF("%h"); + ASSERT_PRINTF("%ll"); + ASSERT_PRINTF("%l"); + ASSERT_PRINTF("%L"); + ASSERT_PRINTF("%p"); + ASSERT_PRINTF("%d"); + ASSERT_PRINTF("%u"); + ASSERT_PRINTF("%x"); + ASSERT_PRINTF("%X"); + ASSERT_PRINTF("%f"); + ASSERT_PRINTF("%c"); + ASSERT_PRINTF("%o"); + ASSERT_PRINTF("%1$s", NULL); + ASSERT_PRINTF("%0s", NULL); + ASSERT_PRINTF("% s", NULL); + ASSERT_PRINTF("%#s", NULL); + ASSERT_PRINTF("%-s", NULL); + ASSERT_PRINTF("%+s", NULL); + ASSERT_PRINTF("%23s", NULL); + ASSERT_PRINTF("%.s", NULL); + ASSERT_PRINTF("%hhs", NULL); + ASSERT_PRINTF("%hs", NULL); + ASSERT_PRINTF("%lls", NULL); + ASSERT_PRINTF("%ls", NULL); + ASSERT_PRINTF("%Ls", NULL); + ASSERT_PRINTF("%p", NULL); + ASSERT_PRINTF("%d", NULL); + ASSERT_PRINTF("%b", NULL); + ASSERT_PRINTF("%u", NULL); + ASSERT_PRINTF("%x", NULL); + ASSERT_PRINTF("%X", NULL); + ASSERT_PRINTF("%f", NULL); + ASSERT_PRINTF("%s", NULL); + ASSERT_PRINTF("%c", NULL); + ASSERT_PRINTF("%o", NULL); +} + +void test_pft_string(void) +{ + ASSERT_PRINTF("hello, %s.", "gavin"); + ASSERT_PRINTF("%s", "testing testing"); + ASSERT_PRINTF("%s%s", "hello", "world"); + ASSERT_PRINTF("..%s stuff %s", "a", "b"); + ASSERT_PRINTF("this %s is empty", ""); + ASSERT_PRINTF("this %s is %s", "hello", ""); + ASSERT_PRINTF("this %s is %s", "", "hello"); + ASSERT_PRINTF("%s%s%s", "1", "2", "3's a charm"); + + ASSERT_PRINTF("%32s", "abc"); + ASSERT_PRINTF("%16s", "nark nark"); + ASSERT_PRINTF("%5s", "goes over"); + ASSERT_PRINTF("%-32s", "abc"); + ASSERT_PRINTF("%-16s", "nark nark"); + ASSERT_PRINTF("%-5s", "goes over"); + ASSERT_PRINTF("%.7s", "hello"); + ASSERT_PRINTF("%.3s", "hello"); + ASSERT_PRINTF("%.s", "hello"); + ASSERT_PRINTF("%.0s", "hello"); + ASSERT_PRINTF("%.3s%.2s", "holla", "bitch"); + ASSERT_PRINTF("%.2s%.7s", "hello", "world"); + ASSERT_PRINTF("%.7s%.2s", "hello", "world"); + ASSERT_PRINTF("%.5s%7s", "yo", "boi"); + ASSERT_PRINTF("%7.5s", "yolo"); + ASSERT_PRINTF("%7.5s", "bombastic"); + ASSERT_PRINTF("%-7.5s", "yolo"); + ASSERT_PRINTF("%-7.5s", "tubular"); + ASSERT_PRINTF("%7.7s%7.7s", "hello", "world"); + ASSERT_PRINTF("%3.7s%7.7s", "hello", "world"); + ASSERT_PRINTF("%7.7s%3.7s", "hello", "world"); + ASSERT_PRINTF("%3.7s%3.7s", "hello", "world"); + ASSERT_PRINTF("%7.3s%7.7s", "hello", "world"); + ASSERT_PRINTF("%3.3s%7.7s", "hello", "world"); + ASSERT_PRINTF("%7.3s%3.7s", "hello", "world"); + ASSERT_PRINTF("%3.3s%3.7s", "hello", "world"); + ASSERT_PRINTF("%7.7s%7.3s", "hello", "world"); + ASSERT_PRINTF("%3.7s%7.3s", "hello", "world"); + ASSERT_PRINTF("%7.7s%3.3s", "hello", "world"); + ASSERT_PRINTF("%3.7s%3.3s", "hello", "world"); + ASSERT_PRINTF("%7.3s%7.3s", "hello", "world"); + ASSERT_PRINTF("%3.3s%7.3s", "hello", "world"); + ASSERT_PRINTF("%7.3s%3.3s", "hello", "world"); + ASSERT_PRINTF("%3.3s%3.3s", "hello", "world"); + ASSERT_PRINTF("%3s%3s", "hello", "world"); + ASSERT_PRINTF("%-7s%5s", "hello", "world"); + ASSERT_PRINTF("%7s%-5s", "hello", "world"); + ASSERT_PRINTF("hello, %s.", NULL); + ASSERT_PRINTF("%s", NULL); + ASSERT_PRINTF("%32s", NULL); + ASSERT_PRINTF("%2s", NULL); + ASSERT_PRINTF("%-32s", NULL); + ASSERT_PRINTF("%-16s", NULL); + ASSERT_PRINTF("%-3s", NULL); + ASSERT_PRINTF("%.9s", "NULL"); + ASSERT_PRINTF("%.3s", "NULL"); + ASSERT_PRINTF("%.s", "NULL"); + ASSERT_PRINTF("%.0s", "NULL"); + + static char *s_hidden = "hi low\0don't print me lol\0"; + ASSERT_PRINTF("%s", s_hidden); + ASSERT_PRINTF("%3s", s_hidden); + ASSERT_PRINTF("%9s", s_hidden); + ASSERT_PRINTF("%.s", s_hidden); + ASSERT_PRINTF("%.9s", s_hidden); + ASSERT_PRINTF("%.03s", s_hidden); + ASSERT_PRINTF("%.09s", s_hidden); + ASSERT_PRINTF("%.03s", NULL); + ASSERT_PRINTF("%.09s", NULL); + ASSERT_PRINTF("%.00s", "\0"); + ASSERT_PRINTF("%.01s", "\0"); + ASSERT_PRINTF("%.03s", "\0"); + ASSERT_PRINTF("%.09s", "\0"); + ASSERT_PRINTF("%3.s", s_hidden); + ASSERT_PRINTF("%10.s", s_hidden); + ASSERT_PRINTF("%3.s", NULL); + ASSERT_PRINTF("%10.s", NULL); + ASSERT_PRINTF("%1.s", "\0"); + ASSERT_PRINTF("%2.s", "\0"); + ASSERT_PRINTF("%9.s", "\0"); + ASSERT_PRINTF("%-3.s", s_hidden); + ASSERT_PRINTF("%-8.s", s_hidden); + ASSERT_PRINTF("%-3.s", NULL); + ASSERT_PRINTF("%-8.s", NULL); + ASSERT_PRINTF("%-1.s", "\0"); + ASSERT_PRINTF("%-2.s", "\0"); + ASSERT_PRINTF("%-6.s", "\0"); + ASSERT_PRINTF("%3.1s", s_hidden); + ASSERT_PRINTF("%10.1s", s_hidden); + ASSERT_PRINTF("%3.1s", NULL); + ASSERT_PRINTF("%9.1s", NULL); + ASSERT_PRINTF("%-3.1s", s_hidden); + ASSERT_PRINTF("%-10.1s", s_hidden); + ASSERT_PRINTF("%-3.1s", NULL); + ASSERT_PRINTF("%-9.1s", NULL); + ASSERT_PRINTF("%-3.1s", "\0"); + ASSERT_PRINTF("%-6.1s", "\0"); + ASSERT_PRINTF("%3.6s", s_hidden); + ASSERT_PRINTF("%20.6s", s_hidden); + ASSERT_PRINTF("%3.6s", NULL); + ASSERT_PRINTF("%20.6s", NULL); + ASSERT_PRINTF("%3.6s", "\0"); + ASSERT_PRINTF("%6.6s", "\0"); + ASSERT_PRINTF("%-3.6s", s_hidden); + ASSERT_PRINTF("%-20.6s", s_hidden); + ASSERT_PRINTF("%-3.8s", s_hidden); + ASSERT_PRINTF("%-10.8s", s_hidden); + ASSERT_PRINTF("%-3.8s", NULL); + ASSERT_PRINTF("%-10.8s", NULL); + ASSERT_PRINTF("%-.00s", s_hidden); + ASSERT_PRINTF("%-.09s", s_hidden); + ASSERT_PRINTF("%+- 06.06s", s_hidden); + ASSERT_PRINTF("% 0+-6.06s", s_hidden); + ASSERT_PRINTF("%0 +-6.06s", s_hidden); + ASSERT_PRINTF("%+-0 6.06s", s_hidden); + ASSERT_PRINTF("%-+ 06.06s", s_hidden); + ASSERT_PRINTF("% -+06.06s", s_hidden); + ASSERT_PRINTF("%+- 07.06s", s_hidden); + ASSERT_PRINTF("% 0+-8.06s", s_hidden); + ASSERT_PRINTF("%0 +-9.06s", s_hidden); + ASSERT_PRINTF("%+-0 10.06s", s_hidden); + ASSERT_PRINTF("%-+ 011.06s", s_hidden); + ASSERT_PRINTF("% -+012.06s", s_hidden); + ASSERT_PRINTF("%+- 06.04s", s_hidden); + ASSERT_PRINTF("% 0+-6.04s", s_hidden); + ASSERT_PRINTF("%0 +-6.04s", s_hidden); + ASSERT_PRINTF("%+-0 6.04s", s_hidden); + ASSERT_PRINTF("%-+ 06.04s", s_hidden); + ASSERT_PRINTF("% 0-+6.04s", s_hidden); + ASSERT_PRINTF("%+- 06.09s", s_hidden); + ASSERT_PRINTF("% 0+-6.09s", s_hidden); + ASSERT_PRINTF("%0 +-6.09s", s_hidden); + ASSERT_PRINTF("%+-0 6.09s", s_hidden); + ASSERT_PRINTF("%-+ 06.09s", s_hidden); + ASSERT_PRINTF("% 0-+6.09s", s_hidden); + ASSERT_PRINTF("%00s", s_hidden); + ASSERT_PRINTF("%000s", s_hidden); + ASSERT_PRINTF("%0000s", s_hidden); + ASSERT_PRINTF("%-00s", s_hidden); + ASSERT_PRINTF("%0-0s", s_hidden); + ASSERT_PRINTF("%00-s", s_hidden); + ASSERT_PRINTF("%03s", s_hidden); + ASSERT_PRINTF("%09s", s_hidden); + ASSERT_PRINTF("%+03s", s_hidden); + ASSERT_PRINTF("%+09s", s_hidden); + ASSERT_PRINTF("%-03s", s_hidden); + ASSERT_PRINTF("%-09s", s_hidden); + ASSERT_PRINTF("%+ 3s", s_hidden); + ASSERT_PRINTF("%+ 6s", s_hidden); +} + +void test_pft_int_i(void) +{ + ASSERT_PRINTF("this %i number", 17); + ASSERT_PRINTF("this %i number", -267); + ASSERT_PRINTF("this %i number", 0); + ASSERT_PRINTF("%i", 3); + ASSERT_PRINTF("%i", -1); + ASSERT_PRINTF("%i", 0); + ASSERT_PRINTF("this %d number", 17); + ASSERT_PRINTF("this %d number", -267); + ASSERT_PRINTF("this %d number", 0); + ASSERT_PRINTF("%i", 2147483647); + ASSERT_PRINTF("%i", (int)(-2147483678)); + ASSERT_PRINTF("%+i", 5); + ASSERT_PRINTF("%+i", -7); + ASSERT_PRINTF("%+i", 2147483647); + ASSERT_PRINTF("%7i", 33); + ASSERT_PRINTF("%7i", -14); + ASSERT_PRINTF("%3i", 0); + ASSERT_PRINTF("%5i", 52625); + ASSERT_PRINTF("%5i", -2562); + ASSERT_PRINTF("%4i", 94827); + ASSERT_PRINTF("%4i", -2464); + ASSERT_PRINTF("%-7i", 33); + ASSERT_PRINTF("%-7i", -14); + ASSERT_PRINTF("%-3i", 0); + ASSERT_PRINTF("%-5i", 52625); + ASSERT_PRINTF("%-5i", -2562); + ASSERT_PRINTF("%-4i", 94827); + ASSERT_PRINTF("%-4i", -2464); + ASSERT_PRINTF("%+5i", 35); + ASSERT_PRINTF("%+7i", 0); + ASSERT_PRINTF("%+24i", 2147483647); + ASSERT_PRINTF("%.5i", 2); + ASSERT_PRINTF("%.6i", -3); + ASSERT_PRINTF("%.3i", 0); + ASSERT_PRINTF("%.4i", 5263); + ASSERT_PRINTF("%.4i", -2372); + ASSERT_PRINTF("%.3i", 13862); + ASSERT_PRINTF("%.3i",-23646); + ASSERT_PRINTF("%+.7i", 234); + ASSERT_PRINTF("%+.7i", -446); + ASSERT_PRINTF("%+.3i", 3723); + ASSERT_PRINTF("%05i", 43); + ASSERT_PRINTF("%07i", -54); + ASSERT_PRINTF("%03i", 0); + ASSERT_PRINTF("%03i", 634); + ASSERT_PRINTF("%04i", -532); + ASSERT_PRINTF("%04i", -4825); + ASSERT_PRINTF("%+05i", 432); + ASSERT_PRINTF("%+04i", 0); + ASSERT_PRINTF("%8.5i", 34); + ASSERT_PRINTF("%10.5i", -216); + ASSERT_PRINTF("%8.5i", 0); + ASSERT_PRINTF("%8.3i", 8375); + ASSERT_PRINTF("%8.3i", -8473); + ASSERT_PRINTF("%3.7i", 3267); + ASSERT_PRINTF("%3.7i", -2375); + ASSERT_PRINTF("%3.3i", 6983); + ASSERT_PRINTF("%3.3i", -8462); + ASSERT_PRINTF("%-8.5i", 34); + ASSERT_PRINTF("%-10.5i", -216); + ASSERT_PRINTF("%-8.5i", 0); + ASSERT_PRINTF("%-8.3i", 8375); + ASSERT_PRINTF("%-8.3i", -8473); + ASSERT_PRINTF("%-3.7i", 3267); + ASSERT_PRINTF("%-3.7i", -2375); + ASSERT_PRINTF("%-3.3i", 6983); + ASSERT_PRINTF("%-3.3i", -8462); + ASSERT_PRINTF("%+8.5i", 34); + ASSERT_PRINTF("%+10.5i", -216); + ASSERT_PRINTF("%+8.5i", 0); + ASSERT_PRINTF("%+8.3i", 8375); + ASSERT_PRINTF("%+8.3i", -8473); + ASSERT_PRINTF("%+3.7i", 3267); + ASSERT_PRINTF("%+3.7i", -2375); + ASSERT_PRINTF("%+3.3i", 6983); + ASSERT_PRINTF("%+3.3i", -8462); + ASSERT_PRINTF("%+-8.5i", 34); + ASSERT_PRINTF("%+-10.5i", -216); + ASSERT_PRINTF("%+-8.5i", 0); + ASSERT_PRINTF("%+-8.3i", 8375); + ASSERT_PRINTF("%+-8.3i", -8473); + ASSERT_PRINTF("%+-3.7i", 3267); + |
