From 38d7a7d17dbd505e02628213ca34f5aa37f05e90 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 24 Feb 2006 06:49:31 +0000 Subject: [PATCH] testplatform replaces testtypes, testendian, and testcpuinfo --- test/Makefile.in | 14 +-- test/testcpuinfo.c | 20 ----- test/testendian.c | 73 ---------------- test/testplatform.c | 205 ++++++++++++++++++++++++++++++++++++++++++++ test/testtypes.c | 58 ------------- 5 files changed, 209 insertions(+), 161 deletions(-) delete mode 100644 test/testcpuinfo.c delete mode 100644 test/testendian.c create mode 100644 test/testplatform.c delete mode 100644 test/testtypes.c diff --git a/test/Makefile.in b/test/Makefile.in index b3fd2d384..2824797ef 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -7,7 +7,7 @@ EXE = @EXE@ CFLAGS = @CFLAGS@ LIBS = @LIBS@ -TARGETS = checkkeys$(EXE) graywin$(EXE) loopwave$(EXE) testalpha$(EXE) testbitmap$(EXE) testblitspeed$(EXE) testcdrom$(EXE) testcpuinfo$(EXE) testdyngl$(EXE) testendian$(EXE) testerror$(EXE) testgamma$(EXE) testgl$(EXE) testhread$(EXE) testjoystick$(EXE) testkeys$(EXE) testlock$(EXE) testoverlay2$(EXE) testoverlay$(EXE) testpalette$(EXE) testsem$(EXE) testsprite$(EXE) testtimer$(EXE) testtypes$(EXE) testver$(EXE) testvidinfo$(EXE) testwin$(EXE) testwm$(EXE) threadwin$(EXE) torturethread$(EXE) +TARGETS = checkkeys$(EXE) graywin$(EXE) loopwave$(EXE) testalpha$(EXE) testbitmap$(EXE) testblitspeed$(EXE) testcdrom$(EXE) testdyngl$(EXE) testerror$(EXE) testgamma$(EXE) testgl$(EXE) testhread$(EXE) testjoystick$(EXE) testkeys$(EXE) testlock$(EXE) testoverlay2$(EXE) testoverlay$(EXE) testpalette$(EXE) testplatform$(EXE) testsem$(EXE) testsprite$(EXE) testtimer$(EXE) testver$(EXE) testvidinfo$(EXE) testwin$(EXE) testwm$(EXE) threadwin$(EXE) torturethread$(EXE) all: $(TARGETS) @@ -32,15 +32,9 @@ testblitspeed$(EXE): $(srcdir)/testblitspeed.c testcdrom$(EXE): $(srcdir)/testcdrom.c $(CC) -o $@ $? $(CFLAGS) $(LIBS) -testcpuinfo$(EXE): $(srcdir)/testcpuinfo.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - testdyngl$(EXE): $(srcdir)/testdyngl.c $(CC) -o $@ $? $(CFLAGS) $(LIBS) -testendian$(EXE): $(srcdir)/testendian.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - testerror$(EXE): $(srcdir)/testerror.c $(CC) -o $@ $? $(CFLAGS) $(LIBS) @@ -71,6 +65,9 @@ testoverlay$(EXE): $(srcdir)/testoverlay.c testpalette$(EXE): $(srcdir)/testpalette.c $(CC) -o $@ $? $(CFLAGS) $(LIBS) @MATHLIB@ +testplatform$(EXE): $(srcdir)/testplatform.c + $(CC) -o $@ $? $(CFLAGS) $(LIBS) + testsem$(EXE): $(srcdir)/testsem.c $(CC) -o $@ $? $(CFLAGS) $(LIBS) @@ -80,9 +77,6 @@ testsprite$(EXE): $(srcdir)/testsprite.c testtimer$(EXE): $(srcdir)/testtimer.c $(CC) -o $@ $? $(CFLAGS) $(LIBS) -testtypes$(EXE): $(srcdir)/testtypes.c - $(CC) -o $@ $? $(CFLAGS) $(LIBS) - testver$(EXE): $(srcdir)/testver.c $(CC) -o $@ $? $(CFLAGS) $(LIBS) diff --git a/test/testcpuinfo.c b/test/testcpuinfo.c deleted file mode 100644 index 943485e3b..000000000 --- a/test/testcpuinfo.c +++ /dev/null @@ -1,20 +0,0 @@ - -/* Test program to check SDL's CPU feature detection */ - -#include - -#include "SDL.h" -#include "SDL_cpuinfo.h" - -int main(int argc, char *argv[]) -{ - printf("RDTSC %s\n", SDL_HasRDTSC() ? "detected" : "not detected"); - printf("MMX %s\n", SDL_HasMMX() ? "detected" : "not detected"); - printf("MMX Ext %s\n", SDL_HasMMXExt() ? "detected" : "not detected"); - printf("3DNow %s\n", SDL_Has3DNow() ? "detected" : "not detected"); - printf("3DNow Ext %s\n", SDL_Has3DNowExt() ? "detected" : "not detected"); - printf("SSE %s\n", SDL_HasSSE() ? "detected" : "not detected"); - printf("SSE2 %s\n", SDL_HasSSE2() ? "detected" : "not detected"); - printf("AltiVec %s\n", SDL_HasAltiVec() ? "detected" : "not detected"); - return(0); -} diff --git a/test/testendian.c b/test/testendian.c deleted file mode 100644 index 5ad4671be..000000000 --- a/test/testendian.c +++ /dev/null @@ -1,73 +0,0 @@ - -/* Test program to check SDL's CPU endian detection and byte swapping routines */ - -#include - -#include "SDL.h" -#include "SDL_endian.h" - -int main(int argc, char *argv[]) -{ - Uint16 value16 = 0xCDAB; - Uint32 value32 = 0xEFBEADDE; -#if defined(__GNUC__) && defined(SDL_HAS_64BIT_TYPE) - Uint64 value64 = 0xEFBEADDECDAB3412LL; -#endif - - printf("This system is running %s\n", -#if __AIX__ - "AIX" -#elif __AMIGA__ - "AmigaOS" -#elif __BEOS__ - "BeOS" -#elif __BSDI__ - "BSDI" -#elif __DREAMCAST__ - "Dreamcast" -#elif __FREEBSD__ - "FreeBSD" -#elif __HPUX__ - "HP-UX" -#elif __IRIX__ - "Irix" -#elif __LINUX__ - "Linux" -#elif __MACOS__ - "MacOS Classic" -#elif __MACOSX__ - "MacOS X" -#elif __NETBSD__ - "NetBSD" -#elif __OPENBSD__ - "OpenBSD" -#elif __OS2__ - "OS/2" -#elif __OSF__ - "OSF/1" -#elif __QNXNTO__ - "QNX Neutrino" -#elif __RISCOS__ - "RISC OS" -#elif __SOLARIS__ - "Solaris" -#elif __WIN32__ -#ifdef _WIN32_WCE - "Windows CE" -#else - "Windows" -#endif -#else - "an unknown operating system!" -#endif - ); - - printf("This is a %s endian machine.\n", - (SDL_BYTEORDER == SDL_LIL_ENDIAN) ? "little" : "big"); - printf("Value 16 = 0x%X, swapped = 0x%X\n", value16, SDL_Swap16(value16)); - printf("Value 32 = 0x%X, swapped = 0x%X\n", value32, SDL_Swap32(value32)); -#if defined(__GNUC__) && defined(SDL_HAS_64BIT_TYPE) - printf("Value 64 = 0x%llX, swapped = 0x%llX\n", value64, SDL_Swap64(value64)); -#endif - return(0); -} diff --git a/test/testplatform.c b/test/testplatform.c new file mode 100644 index 000000000..b973a3f15 --- /dev/null +++ b/test/testplatform.c @@ -0,0 +1,205 @@ + +#include + +#include "SDL.h" +#include "SDL_endian.h" +#include "SDL_cpuinfo.h" + +/* + * Watcom C flags these as Warning 201: "Unreachable code" if you just + * compare them directly, so we push it through a function to keep the + * compiler quiet. --ryan. + */ +static int badsize(size_t sizeoftype, size_t hardcodetype) +{ + return sizeoftype != hardcodetype; +} + +int TestTypes(SDL_bool verbose) +{ + int error = 0; + + if ( badsize(sizeof(Uint8), 1) ) { + if ( verbose ) + printf("sizeof(Uint8) != 1, instead = %d\n", + sizeof(Uint8)); + ++error; + } + if ( badsize(sizeof(Uint16), 2) ) { + if ( verbose ) + printf("sizeof(Uint16) != 2, instead = %d\n", + sizeof(Uint16)); + ++error; + } + if ( badsize(sizeof(Uint32), 4) ) { + if ( verbose ) + printf("sizeof(Uint32) != 4, instead = %d\n", + sizeof(Uint32)); + ++error; + } +#ifdef SDL_HAS_64BIT_TYPE + if ( badsize(sizeof(Uint64), 8) ) { + if ( verbose ) + printf("sizeof(Uint64) != 8, instead = %d\n", + sizeof(Uint64)); + ++error; + } +#else + if ( verbose ) { + printf("WARNING: No 64-bit datatype on this platform\n"); + } +#endif + if ( verbose && !error ) + printf("All data types are the expected size.\n"); + + return( error ? 1 : 0 ); +} + +int TestEndian(SDL_bool verbose) +{ + int error = 0; + Uint16 value = 0x1234; + int real_byteorder; + Uint16 value16 = 0xCDAB; + Uint16 swapped16 = 0xABCD; + Uint32 value32 = 0xEFBEADDE; + Uint32 swapped32 = 0xDEADBEEF; +#ifdef SDL_HAS_64BIT_TYPE + Uint64 value64, swapped64; + value64 = 0xEFBEADDE; + value64 <<= 32; + value64 |= 0xCDAB3412; + swapped64 = 0x1234ABCD; + swapped64 <<= 32; + swapped64 |= 0xDEADBEEF; +#endif + + if ( verbose ) { + printf("Detected a %s endian machine.\n", + (SDL_BYTEORDER == SDL_LIL_ENDIAN) ? "little" : "big"); + } + if ( *((char *)&value) == '1' ) { + real_byteorder = SDL_BIG_ENDIAN; + } else { + real_byteorder = SDL_LIL_ENDIAN; + } + if ( real_byteorder != SDL_BYTEORDER ) { + if ( verbose ) { + printf("Actually a %s endian machine!\n", + (real_byteorder == SDL_LIL_ENDIAN) ? "little" : "big"); + } + ++error; + } + if ( verbose ) { + printf("Value 16 = 0x%X, swapped = 0x%X\n", value16, SDL_Swap16(value16)); + } + if ( SDL_Swap16(value16) != swapped16 ) { + if ( verbose ) { + printf("16 bit value swapped incorrectly!\n"); + } + ++error; + } + if ( verbose ) { + printf("Value 32 = 0x%X, swapped = 0x%X\n", value32, SDL_Swap32(value32)); + } + if ( SDL_Swap32(value32) != swapped32 ) { + if ( verbose ) { + printf("32 bit value swapped incorrectly!\n"); + } + ++error; + } +#ifdef SDL_HAS_64BIT_TYPE + if ( verbose ) { + printf("Value 64 = 0x%llX, swapped = 0x%llX\n", value64, SDL_Swap64(value64)); + } + if ( SDL_Swap64(value64) != swapped64 ) { + if ( verbose ) { + printf("64 bit value swapped incorrectly!\n"); + } + ++error; + } +#endif + return( error ? 1 : 0 ); +} + + +int TestCPUInfo(SDL_bool verbose) +{ + if ( verbose ) { + printf("RDTSC %s\n", SDL_HasRDTSC() ? "detected" : "not detected"); + printf("MMX %s\n", SDL_HasMMX() ? "detected" : "not detected"); + printf("MMX Ext %s\n", SDL_HasMMXExt() ? "detected" : "not detected"); + printf("3DNow %s\n", SDL_Has3DNow() ? "detected" : "not detected"); + printf("3DNow Ext %s\n", SDL_Has3DNowExt() ? "detected" : "not detected"); + printf("SSE %s\n", SDL_HasSSE() ? "detected" : "not detected"); + printf("SSE2 %s\n", SDL_HasSSE2() ? "detected" : "not detected"); + printf("AltiVec %s\n", SDL_HasAltiVec() ? "detected" : "not detected"); + } + return(0); +} + +int main(int argc, char *argv[]) +{ + SDL_bool verbose = SDL_TRUE; + int status = 0; + + if ( argv[1] && (SDL_strcmp(argv[1], "-q") == 0) ) { + verbose = SDL_FALSE; + } + if ( verbose ) { + printf("This system is running %s\n", +#if __AIX__ + "AIX" +#elif __AMIGA__ + "AmigaOS" +#elif __BEOS__ + "BeOS" +#elif __BSDI__ + "BSDI" +#elif __DREAMCAST__ + "Dreamcast" +#elif __FREEBSD__ + "FreeBSD" +#elif __HPUX__ + "HP-UX" +#elif __IRIX__ + "Irix" +#elif __LINUX__ + "Linux" +#elif __MINT__ + "Atari MiNT" +#elif __MACOS__ + "MacOS Classic" +#elif __MACOSX__ + "MacOS X" +#elif __NETBSD__ + "NetBSD" +#elif __OPENBSD__ + "OpenBSD" +#elif __OS2__ + "OS/2" +#elif __OSF__ + "OSF/1" +#elif __QNXNTO__ + "QNX Neutrino" +#elif __RISCOS__ + "RISC OS" +#elif __SOLARIS__ + "Solaris" +#elif __WIN32__ +#ifdef _WIN32_WCE + "Windows CE" +#else + "Windows" +#endif +#else + "an unknown operating system! (see SDL_platform.h)" +#endif + ); + } + + status += TestTypes(verbose); + status += TestEndian(verbose); + status += TestCPUInfo(verbose); + return status; +} diff --git a/test/testtypes.c b/test/testtypes.c deleted file mode 100644 index a2eda6443..000000000 --- a/test/testtypes.c +++ /dev/null @@ -1,58 +0,0 @@ - -#include -#include "SDL_main.h" -#include "SDL_stdinc.h" - -/* - * Watcom C flags these as Warning 201: "Unreachable code" if you just - * compare them directly, so we push it through a function to keep the - * compiler quiet. --ryan. - */ -static int badsize(size_t sizeoftype, size_t hardcodetype) -{ - return sizeoftype != hardcodetype; -} - -int main(int argc, char *argv[]) -{ - int error = 0; - int verbose = 1; - - if ( argv[1] && (strcmp(argv[1], "-q") == 0) ) - verbose = 0; - - if ( badsize(sizeof(Uint8), 1) ) { - if ( verbose ) - printf("sizeof(Uint8) != 1, instead = %d\n", - sizeof(Uint8)); - ++error; - } - if ( badsize(sizeof(Uint16), 2) ) { - if ( verbose ) - printf("sizeof(Uint16) != 2, instead = %d\n", - sizeof(Uint16)); - ++error; - } - if ( badsize(sizeof(Uint32), 4) ) { - if ( verbose ) - printf("sizeof(Uint32) != 4, instead = %d\n", - sizeof(Uint32)); - ++error; - } -#ifdef SDL_HAS_64BIT_TYPE - if ( badsize(sizeof(Uint64), 8) ) { - if ( verbose ) - printf("sizeof(Uint64) != 8, instead = %d\n", - sizeof(Uint64)); - ++error; - } -#else - if ( verbose ) { - printf("WARNING: No 64-bit datatype on this platform\n"); - } -#endif - if ( verbose && ! error ) - printf("All data types are the expected size.\n"); - - return( error ? 1 : 0 ); -}