by Boris Fomitchev
STLport test suite performs extensive test of basic STLport
functionality.
One of the problems one is faced when deciding whether using STL is the
question of reliability. It's a common place when compiler crashes on
templates.
Obvious question is - how can I be sure the compiler produces valid code
when it does not crash ?
This test suite answers to this question. It doesn't use too complex
construct with STL items. But it does instantiate about every item and
checks if it works properly.
This test suite is derived from Cygnus Solutions STL test suite, which is based on ObjectSpace STL examples. The changes that have been made mostly involve restructuring. You can run a single short test for particular STL construct , or try to compile them all and link to single executable. You may also test if your compiler can handle extremely long source files by compiling a single source including all others.
Makefiles for most supported compilers are provided with the suite. Look for .mak files in the distribution. It should be not difficult to adjust one of them to your compiler.
The test suite comes in directory test/eh with your STLport
distribution.
You may have to edit appropriate makefile to fit your compiler and
include directories .
After you've done, try "make check". This target is
output (stl_test.out) of single executable containing all the
tests.
Compare it with stl_test.exp output. There should be no
differences. Note that some tests use random number generators. stl_test.exp
is for those having lrand48() function. If your configuration
uses rand() function, you should compare the result with stl_test.rand.exp.
Obviously, there is no guarantee for matching of different rand()
implementations.
If some test fails to compile, you may try "make test_name.out"
to produce single test executable and run it.
GNU libc, being used widely on Linux platforms, has different random generator implementation than one used on most UNIX platforms. You should ignore the output difference of tests using random generator.