Difference between revisions of "Test Unit Pragmas"

From STRIDE Wiki
Jump to: navigation, search
(Test Double Pragma)
(Test Double Pragma)
Line 24: Line 24:
 
: Used to specify a function or method as a teardown fixture for a STRIDE [[Test Units|Test Unit]]. The [[S2scompile|STRIDE Compiler]] will cause [[Intercept Module|IM code]] to be generated that will call the fixture immediately after the execution of each test within the specified test unit.
 
: Used to specify a function or method as a teardown fixture for a STRIDE [[Test Units|Test Unit]]. The [[S2scompile|STRIDE Compiler]] will cause [[Intercept Module|IM code]] to be generated that will call the fixture immediately after the execution of each test within the specified test unit.
  
=== Test Double Pragma ===
+
=== Function Pragma ===
Any function that is to be [[Using Test Doubles|doubled]] requires explicit declaration to the [[S2scompile|STRIDE Compiler]].
+
Any function that is to be [[Function_Capturing#Remoting | remoted]] or [[Function_Capturing#Interception | intercepted]] requires explicit declaration to the [[S2scompile|STRIDE Compiler]].
  
 
; [[scl_function]]
 
; [[scl_function]]
: Used to specify a function for instrumentation to the [[S2scompile|STRIDE Compiler]]. When used with optional arguments, the generated [[Intercept Module|IM code]] will include call interception, thus enabling run-time [[Using Test Doubles|doubling]].
+
: Used to specify a function for instrumentation. Based on the setup the [[S2scompile|STRIDE Compiler]] will cause [[Intercept Module|IM code]] to be generated for either external exposure or call interception.
 +
 
 
<hr/>
 
<hr/>
 
'''Notes'''
 
'''Notes'''

Revision as of 09:40, 5 November 2010

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