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