Request a Demo
Used by compiler developers and safety-critical software engineers worldwide, SuperTest provides millions of tests to verify correctness, quality, and compliance with functional safety standards.
Hand-crafted and generated test files that thoroughly verify compiler correctness and quality.
Specialized tests targeting compiler optimizations, data models and calling conventions.
Powerful and configurable test driver that seamlessly integrates with any compiler development environment and target processor.
Extensive reporting tools that show traceability between tests and language specifications for compliance documentation.
Systematically structured test suites that cover the ISO C and C++ language standards.
Designed to meet the most up-to-date functional safety standard requirements for critical applications.
SuperTest is the test and validation suite for C and C++ compilers and libraries that has tracked the (ISO) language specifications for more than 40 years. It is a complete validation environment with:
Testing the optimizers is one of the hardest tasks in compiler validation. We have extended our test suite to maximize source code coverage of compiler optimizers, thereby maximizing the test coverage of your compiler.
We developed a test suite that specifically focuses on loop optimizations. Loop optimizations, which transform the program’s control graph significantly, require the additional verification techniques that are included in this optimization suite. For example, the tests in this test suite are designed to execute all of the code and branches that are generated by the compiler at the assembly code level, such that there are no gaps in the test coverage of the optimized program.
There are quite some cases where the language specification requires the compiler to issue a diagnostic. SuperTest contains an elaborate subset of tests that must fail at compile time. If they don’t, SuperTest will tell you about it.
SuperTest’s Code Size Tracking is an easy way to monitor changes in generated code size between compilers or between different compiler settings. Code Size Tracking is built into SuperTest’s test driver. It logs the size of every object file and every linked executable for every test in the Supertest suites. The code size report generator can zoom in to executable, code, data or CSS segment sizes and creates either a one page summary with a histogram and an overview of the top-5 outliers, or a detailed report in CSV format that can be read into a spreadsheet. The report generator can compare the results of two SuperTest runs so that you can review the impact of changes at a glance.
The calling convention of a compiler specifies how functions receive parameters from the functions that called them and how their result is returned to the calling function. This implementation can be very complex, with the goal to make the action of calling a function as efficient as possible. In the verification of a compiler, it is therefore important to test if the calling convention is implemented correctly.
For this purpose, we provide the Calling Convention Tester, which is included in the SuperTest Compiler Test Suite. The Calling Convention Tester generates pairs of source files, which are carefully constructed and self-testing. Of such a pair of files, one file contains a function that checks if the values of the parameters are the expected generated values, and the other file contains a call to this function with parameters set to the generated values and checking return values. This way, the Calling Convention Tester can be used to verify calling conventions within a compiler, verify that there are no ABI-breaking changes between different versions of a compiler or even test for calling convention consistency between completely different compilers.
The Calling Convention Tester is highly configurable in e.g. the number of tests to generate, in the used data types or in the usage of variable length argument lists (varargs). Hence, the Calling Convention Tester can be configured to exactly meet the properties of the tested compiler(s)
When SuperTest started in 1984, there was only K&R C. As ISO standardization progressed, SuperTest was extended to track the latest developments. We plugged holes in the suite by adding tests for errors not initially found. We created generators to add systematic testing for complex parameter spaces. SuperTest is now the most complete validation suite for C and C++ available.
While SuperTest is traditionally positioned as a tool for compiler validation, it is important to understand that the C and C++ language specifications define both the compiler language and the standard library.
SuperTest validates both!
The library suite of SuperTest covers C90, C99, C11, C18, C++03, C++11, C++14, C++17 and C++20.
Using SuperTest provides numerous benefits for organizations developing compilers or safety-critical applications:
Explore our technical resources to help you get the most out of SuperTest.
Explore our comprehensive documentation on supported compiler toolchains and target platforms for SuperTest, including configuration guides and best practices.
View Toolchains and Targets
SuperTest has two kinds of tests, positive and negative.
View SuperTest Examples
Trusted by leading organizations in safety-critical industries.
The SuperTest suite covers the following ISO specifications:
The test suite is systematically structured so that it is clear which section of which standard is tested by each test. Therefore, it is also easy to configure which language version should be tested when executing the test suite.
Standard library qualification requires more than just the library test suite within SuperTest. Since the library code is linked to the application and loaded into the device, safety-critical environments demand requirement-level traceability from the ISO language specification down to individual tests.
To meet these stringent requirements, we offer the SuperGuard Library Safety Qualification Suite – a specialized add-on to SuperTest designed to ensure safety compliance for the standard library.
Read More
Contact us today to learn how our solutions can help you achieve compliance with absolute confidence.
Request a demo Contact Us
Home / Products / SuperTest