Main Page | Modules | File List | Globals | Related Pages

Run-time Testing and Verification

POSH has an integral run-time verification system that is executed whenever POSH_GetArchString() is called. This system runs the various endianess and serialization routines and double checks their output to make sure that the run-time system matches that of the statically configured compile time system.

When testing a new system, we compile and run archtest, which is located in the POSH distribution in tests/arch/archtest.c. Its only dependency is on <stdio.h> (for the actual printing) -- building it doesn't require a makefile or projectfile, you can typically just compile it on the command line and go.

For example, when built under Cygwin/gcc:

$ gcc archtest.c $ ./a.exe archtest: -------- OS:..............Cygwin CPU:.............x86 endian:..........little ptr size:........32-bits 64-bit ints......yes floating point...enabled

Pretty much any compiler will just do the right thing (for those wondering, archtest.c actually just includes posh.c directly, which is why you don't have to specify it on the command line or use a makefile).

Currently Tested Platforms

We have attempted to compile and test POSH on a wide range of platforms. Unfortunately there are many compilers, platforms and run-times that I don't have access to, so there will be fairly significant gaps in POSH's support. In some cases, we've tested that POSH will cross-compile for a target, but we don't have the means to test that target.

The following table shows what platforms we've compiled and, in most cases, tested on. If you find that it works (or not) on a platform not documented here, please drop me a note at with the relevant information.

Generated on Tue Jan 31 18:27:35 2006 for POSH by doxygen 1.3.7