Testing
Introduction
Will all Boost libraries work with your compiler? Unfortunately, the answer is "it depends". See the regression testing results to see exactly what works and what doesn't.
Boost libraries rely on modern C++ features such as templates and the C++ Standard Library. Most modern compilers support those major features fairly well. But even today, years after the adoption of the C++ Standard, some compilers still don't support important minor features like partial template specialization.
Boost library authors often expend a great deal of effort trying to work around compiler deficiencies. Nevertheless, some libraries will not compile at all with certain compilers or may have crippled functionality. Even if the current release of a compiler supports a boost library, older versions of the compiler may not work properly.
Boost releases are run through regression tests which automatically generates compiler status tables for various platforms. Unless otherwise indicated, the C++ Standard Library implementation is the one shipped with the compiler.
Warnings:
- These tables are not a good indication of a particular compiler's compliance with the C++ Standard. The Boost libraries often contain workarounds which mask compiler deficiencies.
- Some regression tests are run only occasionally, and so are relatively out-of-date. Check the date for each table.
The development code is being updated several times a day, so it may contain bug fixes, compiler workarounds, new features, and even whole new libraries. It may be unstable, however.
Regression Testing
A group of volunteers donate CPU cycles, and large amounts of disk space, to collectively produce the regression testing result tables. Various Boost releases are tested for the benefit of library developers and interested users:
| Version | Users | Developers | |
|---|---|---|---|
| Local Results | |||
| Main trunk | Summary | Unresolved Issues | |
| Release branch | Summary | Summary | Unresolved Issues |
| Alternate Results @ MetaCommunications | |||
| Main trunk | Summary | Unresolved Issues | |
Smoke Testing
The full regression test reports give a broad and deep view of how Boost libraries perform across many platforms and compilers. But developers often need a quick snapshot of how tests are doing on representative platforms and compilers. The smoke tests check the repository at regular intervals and run incremental tests if anything has changed. Test results may be available as little as 5 minutes later, depending on the platform and how many libraries were affected by changes. More extensive changes take a couple of hours to test.
| Version | Platform and Compiler |
|---|---|
| Main Trunk | Windows (32-bit), Visual C++ 2005 SP1 |
| Main Trunk | Ubuntu Linux (X86 32-bit), gcc-4.1.2 |
Inspection
The Boost Subversion trunk is inspected several times an hour to detect problems such as missing copyrights or licenses. The Boost Inspection Report tells all!
Acknowledgements
The compiler status tables have been prepared with resources donated by a number of individuals, educational institutions, and companies. Boost would like to thank them for their support.
Note, however, that Boost does not endorse any product or service, nor does Boost guarantee that some or all of its libraries work with any of the products or services mentioned above.