Skip to content

Commit 433b458

Browse files
committed
Tests completed
1 parent a136d00 commit 433b458

File tree

2 files changed

+135
-30
lines changed

2 files changed

+135
-30
lines changed

demo/test.c

Lines changed: 132 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -345,128 +345,226 @@ static int test_mp_printf_extension(void)
345345
"Right aligned AAA +404289102523688521157725445716877277 BBB\n",
346346
"Left aligned AAA +404289102523688521157725445716877277 BBB\n",
347347
"Right aligned AAA 404289102523688521157725445716877277 BBB\n",
348-
"Left aligned AAA 404289102523688521157725445716877277 BBB\n",
348+
"Left aligned AAA 404289102523688521157725445716877277 BBB\n", /* 5 */
349349
"hex with right align AAA 4DDCFDE0D20EF8663B34D19F829FDD BBB\n",
350350
"hex with left align AAA 4DDCFDE0D20EF8663B34D19F829FDD BBB\n",
351351
"hex with right align AAA +4DDCFDE0D20EF8663B34D19F829FDD BBB\n",
352352
"hex with left align AAA +4DDCFDE0D20EF8663B34D19F829FDD BBB\n",
353-
"hex with right align AAA 4DDCFDE0D20EF8663B34D19F829FDD BBB\n",
353+
"hex with right align AAA 4DDCFDE0D20EF8663B34D19F829FDD BBB\n", /* 10 */
354354
"hex with left align AAA 4DDCFDE0D20EF8663B34D19F829FDD BBB\n",
355355
"hex with right align AAA 0x4DDCFDE0D20EF8663B34D19F829FDD BBB\n",
356356
"hex with left align AAA 0x4DDCFDE0D20EF8663B34D19F829FDD BBB\n",
357357
"hex with right align AAA +0x4DDCFDE0D20EF8663B34D19F829FDD BBB\n",
358-
"hex with left align AAA +0x4DDCFDE0D20EF8663B34D19F829FDD BBB\n",
358+
"hex with left align AAA +0x4DDCFDE0D20EF8663B34D19F829FDD BBB\n", /* 15 */
359359
"hex with right align AAA 0x4DDCFDE0D20EF8663B34D19F829FDD BBB\n",
360360
"hex with left align AAA 0x4DDCFDE0D20EF8663B34D19F829FDD BBB\n",
361361
"Right aligned AAA -424986725583297217766029037085924959 BBB\n",
362362
"Left aligned AAA -424986725583297217766029037085924959 BBB\n",
363-
"Right aligned AAA -424986725583297217766029037085924959 BBB\n",
363+
"Right aligned AAA -424986725583297217766029037085924959 BBB\n", /* 20 */
364364
"Left aligned AAA -424986725583297217766029037085924959 BBB\n",
365365
"Right aligned AAA -424986725583297217766029037085924959 BBB\n",
366366
"Left aligned AAA -424986725583297217766029037085924959 BBB\n",
367367
"hex with right align AAA -51D9769BDAE5B38121F2A31D881E5F BBB\n",
368-
"hex with left align AAA -51D9769BDAE5B38121F2A31D881E5F BBB\n",
368+
"hex with left align AAA -51D9769BDAE5B38121F2A31D881E5F BBB\n", /* 25 */
369369
"hex with right align AAA -51D9769BDAE5B38121F2A31D881E5F BBB\n",
370370
"hex with left align AAA -51D9769BDAE5B38121F2A31D881E5F BBB\n",
371371
"hex with right align AAA -51D9769BDAE5B38121F2A31D881E5F BBB\n",
372372
"hex with left align AAA -51D9769BDAE5B38121F2A31D881E5F BBB\n",
373-
"hex with right align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n",
373+
"hex with right align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n", /* 30 */
374374
"hex with left align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n",
375375
"hex with right align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n",
376376
"hex with left align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n",
377377
"hex with right align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n",
378-
"hex with left align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n",
378+
"hex with left align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n", /* 35 */
379379
"Right aligned AAA 0 BBB\n",
380380
"Left aligned AAA 0 BBB\n",
381381
"hex with right align AAA 0x0 BBB\n",
382382
"hex with left align AAA 0x0 BBB\n",
383-
"Right aligned AAA 10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n",
383+
"Right aligned AAA 10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n", /* 40 */
384384
"Left aligned AAA 10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n",
385385
"Right aligned AAA +10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n",
386386
"Left aligned AAA +10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n",
387387
"Right aligned AAA 10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n",
388-
"Left aligned AAA 10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n",
388+
"Left aligned AAA 10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n", /* 45 */
389389
"Right aligned AAA JTpzuD8E+6OxDD6VWf/T BBB\n",
390390
"Left aligned AAA JTpzuD8E+6OxDD6VWf/T BBB\n",
391391
"Right aligned AAA +JTpzuD8E+6OxDD6VWf/T BBB\n",
392392
"Left aligned AAA +JTpzuD8E+6OxDD6VWf/T BBB\n",
393-
"Right aligned AAA JTpzuD8E+6OxDD6VWf/T BBB\n",
393+
"Right aligned AAA JTpzuD8E+6OxDD6VWf/T BBB\n", /* 50 */
394394
"Left aligned AAA JTpzuD8E+6OxDD6VWf/T BBB\n",
395395
"Right aligned AAA 0@JTpzuD8E+6OxDD6VWf/T BBB\n",
396396
"Left aligned AAA 0@JTpzuD8E+6OxDD6VWf/T BBB\n",
397397
"Right aligned AAA +0@JTpzuD8E+6OxDD6VWf/T BBB\n",
398-
"Left aligned AAA +0@JTpzuD8E+6OxDD6VWf/T BBB\n",
398+
"Left aligned AAA +0@JTpzuD8E+6OxDD6VWf/T BBB\n", /* 55 */
399399
"Right aligned AAA 0@JTpzuD8E+6OxDD6VWf/T BBB\n",
400-
"Left aligned AAA 0@JTpzuD8E+6OxDD6VWf/T BBB\n"
400+
"Left aligned AAA 0@JTpzuD8E+6OxDD6VWf/T BBB\n",
401+
402+
"Right aligned AAA 449010662782443485 BBB\n",
403+
"Left aligned AAA 449010662782443485 BBB\n",
404+
"Right aligned AAA +449010662782443485 BBB\n", /* 60 */
405+
"Left aligned AAA +449010662782443485 BBB\n",
406+
"Right aligned AAA 449010662782443485 BBB\n",
407+
"Left aligned AAA 449010662782443485 BBB\n",
408+
"Right aligned AAA 63B34D19F829FDD BBB\n",
409+
"Left aligned AAA 63B34D19F829FDD BBB\n", /* 65 */
410+
"Right aligned AAA +63B34D19F829FDD BBB\n",
411+
"Left aligned AAA +63B34D19F829FDD BBB\n",
412+
"Right aligned AAA 63B34D19F829FDD BBB\n",
413+
"Left aligned AAA 63B34D19F829FDD BBB\n",
414+
"Right aligned AAA 0x63B34D19F829FDD BBB\n", /* 70 */
415+
"Left aligned AAA 0x63B34D19F829FDD BBB\n",
416+
"Right aligned AAA +0x63B34D19F829FDD BBB\n",
417+
"Left aligned AAA +0x63B34D19F829FDD BBB\n",
418+
"Right aligned AAA 0x63B34D19F829FDD BBB\n",
419+
"Left aligned AAA 0x63B34D19F829FDD BBB\n", /* 75 */
420+
"Right aligned AAA 11000111011001101001101000110011111100000101001111111011101 BBB\n",
421+
"Left aligned AAA 11000111011001101001101000110011111100000101001111111011101 BBB\n",
422+
"Right aligned AAA +11000111011001101001101000110011111100000101001111111011101 BBB\n",
423+
"Left aligned AAA +11000111011001101001101000110011111100000101001111111011101 BBB\n",
424+
"Right aligned AAA 11000111011001101001101000110011111100000101001111111011101 BBB\n", /* 80 */
425+
"Left aligned AAA 11000111011001101001101000110011111100000101001111111011101 BBB\n",
426+
"Right aligned AAA OxDD6VWf/T BBB\n",
427+
"Left aligned AAA OxDD6VWf/T BBB\n",
428+
"Right aligned AAA +OxDD6VWf/T BBB\n",
429+
"Left aligned AAA +OxDD6VWf/T BBB\n", /* 85 */
430+
"Right aligned AAA OxDD6VWf/T BBB\n",
431+
"Left aligned AAA OxDD6VWf/T BBB\n",
432+
"Right aligned AAA 0@OxDD6VWf/T BBB\n",
433+
"Left aligned AAA 0@OxDD6VWf/T BBB\n",
434+
"Right aligned AAA +0@OxDD6VWf/T BBB\n", /* 90 */
435+
"Left aligned AAA +0@OxDD6VWf/T BBB\n",
436+
"Right aligned AAA 0@OxDD6VWf/T BBB\n",
437+
"Left aligned AAA 0@OxDD6VWf/T BBB\n",
438+
"Right aligned AAA 63B34D19F829FDD,4DDCFDE0D20EF86, BBB\n",
439+
"Left aligned AAA 63B34D19F829FDD,4DDCFDE0D20EF86, BBB\n", /* 95 */
440+
"Right aligned AAA 63B34D19F829FDD,4DDCFDE0D20EF86, BBB\n",
441+
"Left aligned AAA 63B34D19F829FDD,4DDCFDE0D20EF86, BBB\n",
442+
"Right aligned AAA 63B34D19F829FDD,4DDCFDE0D20EF86, BBB\n",
443+
"Left aligned AAA 63B34D19F829FDD,4DDCFDE0D20EF86, BBB\n",
444+
"Right aligned AAA 000011000111011001101001101000110011111100000101001111111011101,000010011011101110011111101111000001101001000001110111110000110, BBB\n", /* 100 */
445+
"Left aligned AAA 000011000111011001101001101000110011111100000101001111111011101,000010011011101110011111101111000001101001000001110111110000110, BBB\n",
446+
"Right aligned AAA 000011000111011001101001101000110011111100000101001111111011101,000010011011101110011111101111000001101001000001110111110000110, BBB\n",
447+
"Left aligned AAA 000011000111011001101001101000110011111100000101001111111011101,000010011011101110011111101111000001101001000001110111110000110, BBB\n",
448+
"Right aligned AAA 000011000111011001101001101000110011111100000101001111111011101,000010011011101110011111101111000001101001000001110111110000110, BBB\n",
449+
"Left aligned AAA 000011000111011001101001101000110011111100000101001111111011101,000010011011101110011111101111000001101001000001110111110000110, BBB\n", /* 105 */
401450
};
402451

403-
const char *print_strings[58] = {
452+
const char *print_strings[106] = {
404453
"Right aligned AAA %50Zd BBB\n",
405454
"Left aligned AAA %-50Zd BBB\n",
406455
"Right aligned AAA %+50Zd BBB\n",
407456
"Left aligned AAA %+-50Zd BBB\n",
408457
"Right aligned AAA %' '50Zd BBB\n",
409-
"Left aligned AAA %' '-50Zd BBB\n",
458+
"Left aligned AAA %' '-50Zd BBB\n", /* 5 */
410459

411460
"hex with right align AAA %50Zx BBB\n",
412461
"hex with left align AAA %-50Zx BBB\n",
413462
"hex with right align AAA %+50Zx BBB\n",
414463
"hex with left align AAA %+-50Zx BBB\n",
415-
"hex with right align AAA %' '50Zx BBB\n",
464+
"hex with right align AAA %' '50Zx BBB\n", /* 10 */
416465
"hex with left align AAA %' '-50Zx BBB\n",
417466

418467
"hex with right align AAA %#50Zx BBB\n",
419468
"hex with left align AAA %#-50Zx BBB\n",
420469
"hex with right align AAA %#+50Zx BBB\n",
421-
"hex with left align AAA %#+-50Zx BBB\n",
470+
"hex with left align AAA %#+-50Zx BBB\n", /* 15 */
422471
"hex with right align AAA %#' '50Zx BBB\n",
423472
"hex with left align AAA %#' '-50Zx BBB\n",
424473
/* at idx == 18 mp_exch(&p,&q); */
425474
"Right aligned AAA %50Zd BBB\n",
426475
"Left aligned AAA %-50Zd BBB\n",
427-
"Right aligned AAA %+50Zd BBB\n",
476+
"Right aligned AAA %+50Zd BBB\n", /* 20 */
428477
"Left aligned AAA %+-50Zd BBB\n",
429478
"Right aligned AAA %' '50Zd BBB\n",
430479
"Left aligned AAA %' '-50Zd BBB\n",
431480

432481
"hex with right align AAA %50Zx BBB\n",
433-
"hex with left align AAA %-50Zx BBB\n",
482+
"hex with left align AAA %-50Zx BBB\n", /* 25 */
434483
"hex with right align AAA %+50Zx BBB\n",
435484
"hex with left align AAA %+-50Zx BBB\n",
436485
"hex with right align AAA %' '50Zx BBB\n",
437486
"hex with left align AAA %' '-50Zx BBB\n",
438487

439-
"hex with right align AAA %#50Zx BBB\n",
488+
"hex with right align AAA %#50Zx BBB\n", /* 30 */
440489
"hex with left align AAA %#-50Zx BBB\n",
441490
"hex with right align AAA %#+50Zx BBB\n",
442491
"hex with left align AAA %#+-50Zx BBB\n",
443492
"hex with right align AAA %#' '50Zx BBB\n",
444-
"hex with left align AAA %#' '-50Zx BBB\n",
445-
493+
"hex with left align AAA %#' '-50Zx BBB\n", /* 35 */
446494
/* at idx == 36 mp_zero(&p); */
447495
"Right aligned AAA %50Zd BBB\n",
448496
"Left aligned AAA %-50Zd BBB\n",
449497
"hex with right align AAA %#50Zx BBB\n",
450498
"hex with left align AAA %#-50Zx BBB\n",
451499
/* at idx == 40 mp_exch(&p,&q); */
452-
"Right aligned AAA %50Zb BBB\n",
500+
"Right aligned AAA %50Zb BBB\n", /* 40 */
453501
"Left aligned AAA %-50Zb BBB\n",
454502
"Right aligned AAA %+50Zb BBB\n",
455503
"Left aligned AAA %+-50Zb BBB\n",
456504
"Right aligned AAA %' '50Zb BBB\n",
457-
"Left aligned AAA %' '-50Zb BBB\n",
505+
"Left aligned AAA %' '-50Zb BBB\n", /* 45 */
458506
"Right aligned AAA %50Z@ BBB\n",
459507
"Left aligned AAA %-50Z@ BBB\n",
460508
"Right aligned AAA %+50Z@ BBB\n",
461509
"Left aligned AAA %+-50Z@ BBB\n",
462-
"Right aligned AAA %' '50Z@ BBB\n",
510+
"Right aligned AAA %' '50Z@ BBB\n", /* 50 */
463511
"Left aligned AAA %' '-50Z@ BBB\n",
464512
"Right aligned AAA %#50Z@ BBB\n",
465513
"Left aligned AAA %#-50Z@ BBB\n",
466514
"Right aligned AAA %#+50Z@ BBB\n",
467-
"Left aligned AAA %#+-50Z@ BBB\n",
515+
"Left aligned AAA %#+-50Z@ BBB\n", /* 55 */
468516
"Right aligned AAA %#' '50Z@ BBB\n",
469-
"Left aligned AAA %#' '-50Z@ BBB\n"
517+
"Left aligned AAA %#' '-50Z@ BBB\n",
518+
/* Starting mp_digit tests at pos. 58 */
519+
"Right aligned AAA %50Md BBB\n",
520+
"Left aligned AAA %-50Md BBB\n",
521+
"Right aligned AAA %+50Md BBB\n", /* 60 */
522+
"Left aligned AAA %+-50Md BBB\n",
523+
"Right aligned AAA %' '50Md BBB\n",
524+
"Left aligned AAA %' '-50Md BBB\n",
525+
"Right aligned AAA %50Mx BBB\n",
526+
"Left aligned AAA %-50Mx BBB\n", /* 65 */
527+
"Right aligned AAA %+50Mx BBB\n",
528+
"Left aligned AAA %+-50Mx BBB\n",
529+
"Right aligned AAA %' '50Mx BBB\n",
530+
"Left aligned AAA %' '-50Mx BBB\n",
531+
"Right aligned AAA %#50Mx BBB\n", /* 70 */
532+
"Left aligned AAA %#-50Mx BBB\n",
533+
"Right aligned AAA %#+50Mx BBB\n",
534+
"Left aligned AAA %#+-50Mx BBB\n",
535+
"Right aligned AAA %#' '50Mx BBB\n",
536+
"Left aligned AAA %#' '-50Mx BBB\n", /* 75 */
537+
"Right aligned AAA %50Mb BBB\n",
538+
"Left aligned AAA %-50Mb BBB\n",
539+
"Right aligned AAA %+50Mb BBB\n",
540+
"Left aligned AAA %+-50Mb BBB\n",
541+
"Right aligned AAA %' '50Mb BBB\n", /* 80 */
542+
"Left aligned AAA %' '-50Mb BBB\n",
543+
"Right aligned AAA %50M@ BBB\n",
544+
"Left aligned AAA %-50M@ BBB\n",
545+
"Right aligned AAA %+50M@ BBB\n",
546+
"Left aligned AAA %+-50M@ BBB\n", /* 85 */
547+
"Right aligned AAA %' '50M@ BBB\n",
548+
"Left aligned AAA %' '-50M@ BBB\n",
549+
"Right aligned AAA %#50M@ BBB\n",
550+
"Left aligned AAA %#-50M@ BBB\n",
551+
"Right aligned AAA %#+50M@ BBB\n", /* 90 */
552+
"Left aligned AAA %#+-50M@ BBB\n",
553+
"Right aligned AAA %#' '50M@ BBB\n",
554+
"Left aligned AAA %#' '-50M@ BBB\n",
555+
/* Array printing starts at pos. 94 */
556+
"Right aligned AAA %#50Nx BBB\n",
557+
"Left aligned AAA %#-50Nx BBB\n", /* 95 */
558+
"Right aligned AAA %#+50Nx BBB\n",
559+
"Left aligned AAA %#+-50Nx BBB\n",
560+
"Right aligned AAA %#' '50Nx BBB\n",
561+
"Left aligned AAA %#' '-50Nx BBB\n",
562+
"Right aligned AAA %#50Nb BBB\n", /* 100 */
563+
"Left aligned AAA %#-50Nb BBB\n",
564+
"Right aligned AAA %#+50Nb BBB\n",
565+
"Left aligned AAA %#+-50Nb BBB\n",
566+
"Right aligned AAA %#' '50Nb BBB\n",
567+
"Left aligned AAA %#' '-50Nb BBB\n" /* 105 */
470568
};
471569

472570
mp_int p, q;
@@ -485,7 +583,7 @@ static int test_mp_printf_extension(void)
485583

486584
DO(mp_printf_extension_init());
487585

488-
for (idx = 0; idx < 52; idx++) {
586+
for (idx = 0; idx < 106; idx++) {
489587
if (idx == 18) {
490588
mp_exch(&p,&q);
491589
}
@@ -495,7 +593,11 @@ static int test_mp_printf_extension(void)
495593
if (idx == 40) {
496594
mp_exch(&p,&q);
497595
}
498-
characters_printed = fprintf(test_file, print_strings[idx], &p);
596+
if ((idx > 57) && (idx < 94)) {
597+
characters_printed = fprintf(test_file, print_strings[idx], p.dp[0]);
598+
} else {
599+
characters_printed = fprintf(test_file, print_strings[idx], &p);
600+
}
499601
slen = strlen(test_strings[idx]);
500602
if ((characters_printed - (int)slen) != 0) {
501603
mp_printf_extension_clear();
@@ -516,6 +618,8 @@ static int test_mp_printf_extension(void)
516618
if (strcmp(line_buffer, test_strings[idx]) != 0) {
517619
mp_printf_extension_clear();
518620
fprintf(stderr, "test_mp_fprintf: file content is not equal to test string #%d\n",idx);
621+
fprintf(stderr, "%s",line_buffer);
622+
fprintf(stderr, "%s",test_strings[idx]);
519623
goto LBL_ERR;
520624
}
521625
}

mp_printf_extension_init.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,14 @@ static int s_mp_print_mp_int(FILE *stream, const struct printf_info *info, con
7171
/* Print the raw array a->dp, with fixed formatting */
7272
if (info->user & modN) {
7373
for (idx = 0; idx < a->used; idx++) {
74-
len = s_mp_print_mp_digit(a->dp[idx], (mp_digit)base, true, &limb_buffer[0]);
74+
len = s_mp_print_mp_digit(a->dp[idx], (mp_digit)base, true, limb_buffer);
7575
res += len;
7676
for (i = 0; i < len; i++) {
7777
MP_FPUTC(limb_buffer[i],stream);
7878
}
7979
/* TODO: offer sth to change it? */
8080
MP_FPUTC(',',stream);
81+
res++;
8182
}
8283
return res;
8384
}
@@ -131,7 +132,7 @@ static int s_mp_print_mp_int(FILE *stream, const struct printf_info *info, con
131132
return -1;
132133
}
133134
} else {
134-
written = (size_t)s_mp_print_mp_digit(d, (mp_digit)base, false, &limb_buffer[0]);
135+
written = (size_t)s_mp_print_mp_digit(d, (mp_digit)base, false, limb_buffer);
135136
}
136137

137138
/* RTL is not supported */

0 commit comments

Comments
 (0)