Test Unit Pragmas
SCL Pragmas
SCL Pragmas [1] comprise a set of compiler directives that allow annotations within C and C++ source files that are meaningful to the STRIDE Compiler but ignored by standard language compilers.
SCL Pragmas have wide application in remoting of interfaces within the STRIDE runtime environment; the pragmas that are relevant to Test Unit testing are highlighted here.
Test Unit Pragmas
These pragmas specify Test Units to the STRIDE Compiler and--by extension--to the subsequent Build Tools, thus generating IM source code that provides harnessing for the tests.
For additional information and examples, see the linked articles.
- scl_test_class
- Used to specify a C++ class as a STRIDE Test Unit. The STRIDE Compiler will cause IM code to be generated that can instantiate an instance of this class and execute its test methods.
- scl_test_cclass
- Used to specify a C class (structure containing member pointers to test methods) as a STRIDE Test Unit. The STRIDE Compiler will cause IM code to be generated that can instantiate an instance of this class and execute its test methods.
- scl_test_flist
- Used to specify a list of free functions as a STRIDE Test Unit. The STRIDE Compiler will cause IM code to be generated that can execute each test function.
Fixturing Pragmas
These pragmas specify optional test fixturing functions/methods that are called immediately before and after each test method in the specified STRIDE Test Unit.
- scl_test_setup
- Used to specify a function or method as a setup fixture for a STRIDE Test Unit. The STRIDE Compiler will cause IM code to be generated that will call the fixture immediately before the execution of each test within the specified test unit.
- scl_test_teardown
- Used to specify a function or method as a teardown fixture for a STRIDE Test Unit. The STRIDE Compiler will cause IM code to be generated that will call the fixture immediately after the execution of each test within the specified test unit.
Function Pragma
Any function that is to be remoted or intercepted requires explicit declaration to the STRIDE Compiler.
- scl_function
- Used to specify a function for instrumentation. Based on the setup the STRIDE Compiler will cause IM code to be generated for either external exposure or call interception.
Notes
- ↑ SCL is an acronym for STRIDE Communication Language