1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
#include <stdio.h>
#include <string.h>
/* The original file was tiformat.c and it has been changed for long long tests\
. */
typedef struct
{
int line;
long long int value;
const char *result;
const char *format_string;
} sprint_int_type;
sprint_int_type sprint_ints[] =
{
{__LINE__, 0x00000000ULL, "0", "%llx"},
{__LINE__, 0xffff00000000208bULL, "ffff00000000208b", "%llx"},
{__LINE__, 0xffff00000000208bULL, "18446462598732849291", "%llu"},
{__LINE__, 18446462598732849291ULL, "ffff00000000208b", "%llx"},
{__LINE__, 18446462598732849291ULL, "18446462598732849291", "%llu"},
{__LINE__, 18359476226655002763ULL, "fec9f65b0000208b", "%llx"},
{__LINE__, 18359476226655002763ULL, "18359476226655002763", "%llu"},
{0},
};
int
main (void)
{
int errcount = 0;
int testcount = 0;
#define BSIZE 1024
char buffer[BSIZE];
sprint_int_type *iptr;
for (iptr = sprint_ints; iptr->line; iptr++)
{
sprintf (buffer, iptr->format_string, iptr->value);
if (strcmp (buffer, iptr->result) != 0)
{
++errcount;
printf ("\
Error in line %d using \"%s\". Result is \"%s\"; should be: \"%s\".\n",
iptr->line, iptr->format_string, buffer, iptr->result);
}
++testcount;
}
if (errcount == 0)
{
printf ("Encountered no errors in %d tests.\n", testcount);
return 0;
}
else
{
printf ("Encountered %d errors in %d tests.\n",
errcount, testcount);
return 1;
}
}
|