Difference between revisions of "Scl test setup"

From STRIDE Wiki
Jump to: navigation, search
(Example)
(Example)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
= The scl_test_setup pragma =
 
= The scl_test_setup pragma =
  
The scl_test_setup pragma declares a member method to be a setup fixture for an existing test unit. The setup method will be called before the execution of each test method.
+
The ''scl_test_setup'' pragma declares a member method to be a setup fixture for an existing test unit. The setup method will be called before the execution of each test method.
  
 
== Syntax ==
 
== Syntax ==
Line 13: Line 13:
 
|-
 
|-
 
| ''test-unit-name''
 
| ''test-unit-name''
| String
+
| Identifier
 
| Name of a captured test unit.
 
| Name of a captured test unit.
 
|-  
 
|-  
 
| ''function-name''
 
| ''function-name''
| String
+
| Identifier
 
| Name of a member function of the test unit to be used as a setup fixture.  
 
| Name of a member function of the test unit to be used as a setup fixture.  
 
|}
 
|}
  
 
== Notes ==
 
== Notes ==
* This pragma identifies the setup fixture of an existing test unit, i.e. either a class with [[scl_test_class]] applied to it, or a function name with scl_test_flist applied to it.
+
* This pragma identifies the setup fixture of an existing test unit, i.e. either a class with [[scl_test_class]] applied to it, a set of functions with [[scl_test_flist]] applied to it, or a C struct with [[scl_test_cclass]] applied to it.
 
* There may be only one setup fixture per test unit.
 
* There may be only one setup fixture per test unit.
* The test unit name must match the class-name parameter of an [[scl_test_class|scl_test_class pragma]], or the test-unit-name parameter of an [[scl_test_flist|scl_test_flist pragma]] that has already been declared.
 
* This pragma can only work in STRIDE version 2.1 or later.
 
* The host PC must also have a recent distribution of ActiveState Perl installed.
 
  
 
== Example ==
 
== Example ==
Line 36: Line 33:
 
   void setup (void)  
 
   void setup (void)  
 
   {
 
   {
     srTestCaseAddComment(srTEST_CASE_DEFAULT, srNULL, "setup called");
+
     srTestCaseAddAnnotation(srTEST_CASE_DEFAULT, srTEST_ANNOTATION_LEVEL_INFO, srNULL, "setup called");
 
   }
 
   }
 
   void teardown (void)  
 
   void teardown (void)  
 
   {
 
   {
     srTestCaseAddComment(srTEST_CASE_DEFAULT, srNULL, "teardown called");
+
     srTestCaseAddAnnotation(srTEST_CASE_DEFAULT, srTEST_ANNOTATION_LEVEL_INFO, srNULL, "teardown called");
 
   }
 
   }
 
   void tc_ExpectPass(void)  
 
   void tc_ExpectPass(void)  
 
   {
 
   {
     srTestCaseAddComment(srTEST_CASE_DEFAULT, srNULL, "this test should pass");
+
     srTestCaseAddAnnotation(srTEST_CASE_DEFAULT, srTEST_ANNOTATION_LEVEL_INFO, srNULL, "this test should pass");
 
     srTestCaseSetStatus(srTEST_CASE_DEFAULT, srTEST_PASS, 0);  
 
     srTestCaseSetStatus(srTEST_CASE_DEFAULT, srTEST_PASS, 0);  
 
   }
 
   }
 
   void tc_ExpectFail(void)  
 
   void tc_ExpectFail(void)  
 
   {
 
   {
     srTestCaseAddComment(srTEST_CASE_DEFAULT, srNULL, "this test should fail");
+
     srTestCaseAddAnnotation(srTEST_CASE_DEFAULT, srTEST_ANNOTATION_LEVEL_ERROR, srNULL, "this test should fail");
 
     srTestCaseSetStatus(srTEST_CASE_DEFAULT, srTEST_FAIL, 0);  
 
     srTestCaseSetStatus(srTEST_CASE_DEFAULT, srTEST_FAIL, 0);  
 
   }
 
   }
Line 62: Line 59:
  
 
== See Also ==
 
== See Also ==
* Refer to the [[Test Units]] page for more information on capturing and qualifying test classes.
+
* Refer to the [[Test Units]] page for more information on capturing and qualifying test units.
  
 
[[Category: Test Units]]
 
[[Category: Test Units]]
 
[[Category: SCL]]
 
[[Category: SCL]]

Latest revision as of 13:24, 5 August 2014

The scl_test_setup pragma

The scl_test_setup pragma declares a member method to be a setup fixture for an existing test unit. The setup method will be called before the execution of each test method.

Syntax

#pragma scl_test_setup(test-unit-name, function-name)
Parameters Type Description
test-unit-name Identifier Name of a captured test unit.
function-name Identifier Name of a member function of the test unit to be used as a setup fixture.

Notes

  • This pragma identifies the setup fixture of an existing test unit, i.e. either a class with scl_test_class applied to it, a set of functions with scl_test_flist applied to it, or a C struct with scl_test_cclass applied to it.
  • There may be only one setup fixture per test unit.

Example

#include <srtest.h>

class RuntimeServices_fixtures {
public:
  void setup (void) 
  {
    srTestCaseAddAnnotation(srTEST_CASE_DEFAULT, srTEST_ANNOTATION_LEVEL_INFO, srNULL, "setup called");
  }
  void teardown (void) 
  {
    srTestCaseAddAnnotation(srTEST_CASE_DEFAULT, srTEST_ANNOTATION_LEVEL_INFO, srNULL, "teardown called");
  }
  void tc_ExpectPass(void) 
  {
    srTestCaseAddAnnotation(srTEST_CASE_DEFAULT, srTEST_ANNOTATION_LEVEL_INFO, srNULL, "this test should pass");
    srTestCaseSetStatus(srTEST_CASE_DEFAULT, srTEST_PASS, 0); 
  }
  void tc_ExpectFail(void) 
  {
    srTestCaseAddAnnotation(srTEST_CASE_DEFAULT, srTEST_ANNOTATION_LEVEL_ERROR, srNULL, "this test should fail");
    srTestCaseSetStatus(srTEST_CASE_DEFAULT, srTEST_FAIL, 0); 
  }
};
    
#ifdef _SCL
#pragma scl_test_class(RuntimeServices_fixtures)
#pragma scl_test_setup(RuntimeServices_fixtures, setup)
#pragma scl_test_teardown(RuntimeServices_fixtures, teardown)
#endif

See Also

  • Refer to the Test Units page for more information on capturing and qualifying test units.