Index: Makefile =================================================================== --- Makefile (nonexistent) +++ Makefile (revision 1186) @@ -0,0 +1,31 @@ +# glib: temporary +CFLAGS_OP = -O3 +CFLAGS = -g \ + -I../.. -I../../.. -I../../../src_3rd \ + -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include +LDFLAGS = -lglib-2.0 + +all: test + +test: tester_spd tester.diff + @echo "*** all ok, QC PASS ***" + +tester: tester.o ../../pcb-printf.o + +tester_spd: tester_spd.o ../../pcb-printf.o + +tester.o: tester.c + $(CC) -c $(CFLAGS) -o $@ tester.c + +tester_spd.o: tester.c + $(CC) -c $(CFLAGS_OP) -DSPEED $(CFLAGS) -o $@ tester.c + +tester.stdout: tester + ./tester > tester.stdout + +tester.diff: tester.stdout + diff -u tester.ref tester.stdout + +clean: + rm tester tester.o 2>/dev/null ; true + Index: tester.c =================================================================== --- tester.c (nonexistent) +++ tester.c (revision 1186) @@ -0,0 +1,68 @@ +#include +#include "config.h" +#include "global.h" +#include "pcb-printf.h" + +#ifdef SPEED + char buff[8192]; + int pc = 0; +# define NUMREP 4000 +# define PCB_PRINTF(fmt, ...) \ + do { \ + pc++; \ + pcb_sprintf(buff, fmt, __VA_ARGS__); \ + } while(0) +#else +# define NUMREP 1 +# define PCB_PRINTF pcb_printf +#endif + +int main() +{ + Coord c[] = {0, 1, 1024, 1024*1024, 1024*1024*1024}; + char *fmt[] = { + "%mI", "%mm", "%mM", "%ml", "%mL", "%ms", "%mS", "%md", "%mD", "%m3", "%mr", + "%$mI", "%$mm", "%$mM", "%$ml", "%$mL", "%$ms", "%$mS", "%$md", "%$mD", "%$m3", "%$mr", + NULL }; + char **f; + int n, rep; + + for(rep = 0; rep < NUMREP; rep++) { + for(n = 0; n < sizeof(c) / sizeof(c[0]); n++) { +#ifndef SPEED + printf("---------------\n"); +#endif + /* common format strings */ + for(f = fmt; *f != NULL; f++) { + char fmt_tmp[32]; + sprintf(fmt_tmp, "%s=%s\n", (*f)+1, *f); + PCB_PRINTF(fmt_tmp, c[n], c[n], c[n]); + } + + /* special: custom argument list */ + PCB_PRINTF("m*=%m* mil\n", "mil", c[n]); + PCB_PRINTF("m*=%m* mm\n", "mm", c[n]); + + PCB_PRINTF("ma=%ma\n", 1.1234); + PCB_PRINTF("ma=%ma\n", 130.1234); + PCB_PRINTF("ma=%ma\n", 555.1234); + + PCB_PRINTF("m+=%m+%mS mil\n", ALLOW_MIL, c[n]); + PCB_PRINTF("m+=%m+%mS mm\n", ALLOW_MM, c[n]); + PCB_PRINTF("m+=%m+%mS m\n", ALLOW_M, c[n]); + PCB_PRINTF("m+=%m+%mS mm or m\n", ALLOW_MM | ALLOW_M, c[n]); + } + } + +#ifdef SPEED + { + double spent = (double)clock() / (double)CLOCKS_PER_SEC; + printf("total number of pcb_printf calls: %d\n", pc); + printf("total number of CPU seconds spent: %.4f\n", spent); + printf("Average prints per second: %.4f\n", (double)pc/spent); + } +#endif + return 0; +} + + Index: tester.ref =================================================================== --- tester.ref (nonexistent) +++ tester.ref (revision 1186) @@ -0,0 +1,160 @@ +--------------- +mI=0 +mm=0.0000 +mM=0 +ml=0.00 +mL=0 +ms=0.0000 +mS=0 +md=(0.0000, 0.0000) +mD=(0, 0) +m3=(0, 0, 0) +mr=0 +$mI=0 +$mm=0.0000 +$mM=0 +$ml=0.00 +$mL=0 +$ms=0.0000 +$mS=0 +$md=(0.0000, 0.0000) mm +$mD=(0, 0) nm +$m3=(0, 0, 0) nm +$mr=0 +m*=0.00 mil +m*=0.0000 mm +ma=1 +ma=130 +ma=555 +m+=0.00 mil +m+=0.0000 mm +m+=0.00000 m +m+=0.0000 mm or m +--------------- +mI=1 +mm=0.0000 +mM=1 +ml=0.00 +mL=0 +ms=0.0000 +mS=1 +md=(0.0000, 0.0000) +mD=(1, 1) +m3=(1, 1, 1) +mr=0 +$mI=1 +$mm=0.0000 mm +$mM=1 nm +$ml=0.00 mil +$mL=0 cmil +$ms=0.0000 mm +$mS=1 nm +$md=(0.0000, 0.0000) mm +$mD=(1, 1) nm +$m3=(1, 1, 1) nm +$mr=0 +m*=0.00 mil +m*=0.0000 mm +ma=1 +ma=130 +ma=555 +m+=0.00 mil +m+=0.0000 mm +m+=0.00000 m +m+=0.0000 mm or m +--------------- +mI=1024 +mm=0.0010 +mM=1.02 +ml=0.04 +mL=4 +ms=0.0010 +mS=1.02 +md=(0.0010, 0.0010) +mD=(1.02, 1.02) +m3=(1.02, 1.02, 1.02) +mr=4 +$mI=1024 +$mm=0.0010 mm +$mM=1.02 um +$ml=0.04 mil +$mL=4 cmil +$ms=0.0010 mm +$mS=1.02 um +$md=(0.0010, 0.0010) mm +$mD=(1.02, 1.02) um +$m3=(1.02, 1.02, 1.02) um +$mr=4 +m*=0.04 mil +m*=0.0010 mm +ma=1 +ma=130 +ma=555 +m+=0.04 mil +m+=0.0010 mm +m+=0.00000 m +m+=0.0010 mm or m +--------------- +mI=1048576 +mm=1.0486 +mM=1.0486 +ml=41.28 +mL=41.28 +ms=1.0486 +mS=1.0486 +md=(1.0486, 1.0486) +mD=(1.0486, 1.0486) +m3=(1.0486, 1.0486, 1.0486) +mr=4128 +$mI=1048576 +$mm=1.0486 mm +$mM=1.0486 mm +$ml=41.28 mil +$mL=41.28 mil +$ms=1.0486 mm +$mS=1.0486 mm +$md=(1.0486, 1.0486) mm +$mD=(1.0486, 1.0486) mm +$m3=(1.0486, 1.0486, 1.0486) mm +$mr=4128 +m*=41.28 mil +m*=1.0486 mm +ma=1 +ma=130 +ma=555 +m+=41.28 mil +m+=1.0486 mm +m+=0.00105 m +m+=1.0486 mm or m +--------------- +mI=1073741824 +mm=1073.7418 +mM=1.07374 +ml=42273.30 +mL=42.27330 +ms=1073.7418 +mS=1.07374 +md=(1073.7418, 1073.7418) +mD=(1.07374, 1.07374) +m3=(1.07374, 1.07374, 1.07374) +mr=4227330 +$mI=1073741824 +$mm=1073.7418 mm +$mM=1.07374 m +$ml=42273.30 mil +$mL=42.27330 in +$ms=1073.7418 mm +$mS=1.07374 m +$md=(1073.7418, 1073.7418) mm +$mD=(1.07374, 1.07374) m +$m3=(1.07374, 1.07374, 1.07374) m +$mr=4227330 +m*=42273.30 mil +m*=1073.7418 mm +ma=1 +ma=130 +ma=555 +m+=42273.30 mil +m+=1073.7418 mm +m+=1.07374 m +m+=1.07374 mm or m