Mercurial > printf
view test_snprintf.c @ 0:e3088565a6b8 default tip
*: initial commit
kinda dumb, but wifi was out and I was bored.
most of this code is shit.
| author | Paper <paper@tflc.us> |
|---|---|
| date | Wed, 03 Dec 2025 03:04:39 -0500 |
| parents | |
| children |
line wrap: on
line source
#include "printf.h" #include <stdint.h> #include <stdlib.h> #include <string.h> #include <limits.h> #include <float.h> /* This is a smaller buffer size than test.h needs, because we want to test * NUL-terminating behavior. */ #define BUFSZ 128 int test_snprintf(void) { int n1, n2, b1, b2; char s1[BUFSZ], s2[BUFSZ]; b1 = my_snprintf(NULL, 0, #include "test.h" ); if (b1 < 0) { fprintf(stderr, "my_snprintf(NULL, 0, ...): %s\n", my_strerror(b1)); return -1; } b2 = snprintf(NULL, 0, #include "test.h" ); if (b2 < 0) { perror("snprintf(NULL, 0, ...)"); return -1; } if (b1 != b2) { fprintf(stderr, "snprintf and my_snprintf returned different buffer sizes!\n"); return -1; } n1 = my_snprintf(s1, BUFSZ, #include "test.h" ); if (n1 < 0) { fprintf(stderr, "my_snprintf: %s\n", my_strerror(n1)); return -1; } n2 = snprintf(s2, BUFSZ, #include "test.h" ); if (n2 < 0) { my_free(s1); perror("snprintf"); return -1; } if (n1 != b1) { fprintf(stderr, "my_snprintf with and without a buffer returned different results\n"); return -1; } if (n1 != n2) { printf("snprintf and my_snprintf returned different buffer sizes\n"); return -1; } if (strcmp(s1, s2)) { fprintf(stderr, "Got different results!!\n"); fprintf(stderr, " snprintf: %s", s1); fprintf(stderr, " my_snprintf: %s", s2); return -1; } return 0; }
