STLport Test Suite

by Boris Fomitchev

Abstract

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.

The Story

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.

Portability

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.

How To

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.

Linux (glibc) note

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.


Table of Contents


Copyright 2001 by STLport