Test Unit Pragmas

From STRIDE Wiki
Jump to: navigation, search

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

  1. SCL is an acronym for STRIDE Communication Language