SuperTest extended by 3000 new tests and support for C++20

2 min read

Solid Sands, a specialist in testing and validation for C and C++ compilers and libraries, has announced Update #3 to its SuperTest Vermeer Release.

This latest update supports widespread adoption of the C++ programming language in safety-critical applications with comprehensive C++20 language coverage.

Update #3 includes over 800 tests designed to verify the correct implementation of C++ language constructs and also includes 1700 new tests for C++ library functions to make sure they work as intended in all use cases.

The ability of C++ to meet the security, functional safety, and behavioural requirements of ISO 26262 has increased the adoption of C++ in the automotive industry and many of the latest image processing, signal processing, and machine learning algorithms used in Advanced driver-assistance systems (ADAS) are now written in C++.

"Vehicle manufacturers are moving from single-core embedded processors to high-performance multi-core processor solutions, for which C++ has a distinct advantage over C in terms of structuring large software projects. As a result, the AUTOSAR Adaptive Platform now includes programming guidelines for C++," said Marcel Beemster, Chief Technology Officer at Solid Sands. "By upgrading to SuperTest Vermeer Release Update #3, developers who want to make use of the latest features in C++, can now verify that their compiler implements them correctly."

For diagnostic tests that are specifically designed to generate a compiler error, SuperTest's C++ support includes line-number accurate error reporting so that developers can identify the precise language construct that generates the error.

Applicable across SuperTest's full gamut of C language support, SuperTest Vermeer Release Update #3 features improved floating-point accuracy checking, with the default accuracy limit on arithmetic operations now universally set at four ULP (Units in the Last Place - the smallest interval between two subsequent floating-point numbers).

If needed, SuperTest users can change this default limit to a ULP value of their choice. For non-library arithmetic it even can be set to zero to check rounding accuracy.

SuperTest Vermeer Release Update #3 also incorporates other enhancements to SuperTest's arithmetic function testing, including improvements to its powerful arithmetic depth suite that now supports target platforms that do not support floating-point arithmetic.

SuperTest's calling convention test suite has been improved in terms of its ability to randomly select local and global variables. Ensuring that arguments and return values are correctly passed between a calling function and a called function is an important aspect of compiler testing that is sometimes overlooked by developers. The update's improved calling convention tester can be used to verify calling conventions within a compiler, verify that no compiler changes break ABI (Application Binary Interface) integrity between different versions of a compiler, and even test for calling convention consistency between completely different compilers.

SuperTest's section traceability, that is the report that details how each individual test matches the language standard, has been extended to cover all versions of C, including C18, and C++ up to C++17.

This update is also intended to make it easier to manage multiple installs of different versions in the same Windows operating system environment, allowing users to run SuperTest and SuperGuard (Solid Sands' C Library Safety Qualification Suite), or multiple SuperTest versions, on the same machine.

The SuperTest Vermeer Release Update #3 is now available.