test/testtypes.c
author Ryan C. Gordon <icculus@icculus.org>
Fri, 13 Jan 2006 02:32:07 +0000
changeset 1246 ca51a76a7328
parent 1154 d93862a3d821
child 1387 835c1831f903
permissions -rw-r--r--
Make error message meaningful if dlopen() fails on libX11.
     1 
     2 #include <stdio.h>
     3 #include <stdlib.h>
     4 #include <string.h>
     5 #include "SDL_main.h"
     6 #include "SDL_types.h"
     7 
     8 /*
     9  * Watcom C flags these as Warning 201: "Unreachable code" if you just
    10  *  compare them directly, so we push it through a function to keep the
    11  *  compiler quiet.  --ryan.
    12  */
    13 static int badsize(size_t sizeoftype, size_t hardcodetype)
    14 {
    15     return sizeoftype != hardcodetype;
    16 }
    17 
    18 int main(int argc, char *argv[])
    19 {
    20 	int error = 0;
    21 	int verbose = 1;
    22 
    23 	if ( argv[1] && (strcmp(argv[1], "-q") == 0) )
    24 		verbose = 0;
    25 
    26 	if ( badsize(sizeof(Uint8), 1) ) {
    27 		if ( verbose )
    28 			printf("sizeof(Uint8) != 1, instead = %d\n",
    29 								sizeof(Uint8));
    30 		++error;
    31 	}
    32 	if ( badsize(sizeof(Uint16), 2) ) {
    33 		if ( verbose )
    34 			printf("sizeof(Uint16) != 2, instead = %d\n",
    35 								sizeof(Uint16));
    36 		++error;
    37 	}
    38 	if ( badsize(sizeof(Uint32), 4) ) {
    39 		if ( verbose )
    40 			printf("sizeof(Uint32) != 4, instead = %d\n",
    41 								sizeof(Uint32));
    42 		++error;
    43 	}
    44 #ifdef SDL_HAS_64BIT_TYPE
    45 	if ( badsize(sizeof(Uint64), 8) ) {
    46 		if ( verbose )
    47 			printf("sizeof(Uint64) != 8, instead = %d\n",
    48 								sizeof(Uint64));
    49 		++error;
    50 	}
    51 #else
    52 	if ( verbose ) {
    53 		printf("WARNING: No 64-bit datatype on this platform\n");
    54 	}
    55 #endif
    56 	if ( verbose && ! error )
    57 		printf("All data types are the expected size.\n");
    58 
    59 	return( error ? 1 : 0 );
    60 }