TEST_CASE_BODY = [ FUNCTION_TEMPLATE | COMMENT ]+
C-API-FunctionName HandleKeyWord1 Handle1 HandleKeyWord2 Handle2 ... ParameterKeyWord1 Parameter1 ParameterKeyWord2 Parameter2 ... ExpectedParameterKeyWord1 ExpectedParam.1 ExpectedParameterKeyWord2 ExpectedParam.2 ... End
/* comment line 1
...
comment line n */
Table 1 : Valid user-defined handle values (external representation) Handle name Handle range ------------------------------------------------------- ActivityInstanceHdl 1-49 ActivityInstanceVectorHdl 1-49 ActivityInstanceNotificationHdl 1-49 ActivityInstanceNotificationVectorHdl 1-49 BlockInstanceMonitorHdl 1-49 ContainerElementHdl 1-49 ContainerElementVectorHdl 1-49 ControlConnectorInstanceHdl 1-49 ControlConnectorInstanceVectorHdl 1-49 DateTimeHdl 1-49 DllOptionsHdl 1-49 ErrorHdl 1-49 ExecutionDataHdl 1-49 ExecutionServiceHdl 1-49 ExeOptionsHdl 1-49 ExternalOptionsHdl 1-49 ImplementationDataHdl 1-49 ImplementationDataVectorHdl 1-49 InstanceMonitorHdl 1-49 ItemHdl 1-49 ItemVectorHdl 1-49 PersonHdl 1-49 PointHdl 1-49 PointVectorHdl 1-49 ProcessInstanceHdl 1-49 ProcessInstanceListHdl 1-49 ProcessInstanceListVectorHdl 1-49 ProcessInstanceMonitorHdl 1-49 ProcessInstanceNotificationHdl 1-49 ProcessInstanceNotificationVectorHdl 1-49 ProcessInstanceVectorHdl 1-49 ProcessTemplateHdl 1-49 ProcessTemplateListHdl 1-49 ProcessTemplateListVectorHdl 1-49 ProcessTemplateVectorHdl 1-49 ProgramDataHdl 1-49 ProgramTemplateHdl 1-49 ReadOnlyContainerHdl 1-49 ReadWriteContainerHdl 1-49 ResultHdl 1-49 StringVectorHdl 1-49 SymbolLayoutHandle 1-49 WorkitemHdl 1-49 WorkitemVectorHdl 1-49 WorklistHdl 1-49 WorklistVectorHdl 1-49 CorrelId(Hdl) 1-49 PersistentOidHdl 1-49 SessionIdHdl 1-49 StreamHdl 1-49
RETURN CODES AND EVALUATION
One of the major advantages of the tool is that you can specify an expected
result or API return code. You can use XpRc for API return codes and
XpValue for expected results. If you do not specify values for these, the
tool does not check the return values.
If you use the parameter ALL (...VectorHdl),
then XpValue will not be evaluated.
KEYWORD ABBREVIATIONS:
The following are abbreviations of keywords, which are used for defining data in the
test case body. These abreviations are standardized to make the test and modify even if
changes need to be made in the future.
Ac... Actual.... Xp... Expected... ...Rc ...Return Code ...Hdl ...Handle ...Obj... ...Object...
i Handle value of existing object, for example: 1 i+ Handle value of existing object. The result will be appended to the existing object. n Handle of an object, which will be created with "...Allocate", e.g. 1 int int value short short value long long value unsigned long unsigned long value double double value value string value without blanks, e.g. ADMIN "value" string value with blanks, e.g. "WL of ADMIN" If '"' should be a part of the string then use '""' "dt_value" date-time string value, for example, "04-16-1998 08:32:59PM" "sc_value" sort criteria string value, for example "NAME DESC" "fi_value" filter string value, e.g. "NAME = 'Life_Insurance'" "hex_value" hex string value, e.g. "9FA7BB78..." (representing a binary value) "value1;value2;..." several string values separated by ';' "<CL-VALUE>" string value will be taken from the command line arguments FileSpec e.g. d:\tc\handle.lst NULL Reference of a NULL pointer
| ... | API 1 /-->| StartLoop( NoOfLoops ) | | API 2 | | API 3 | | API 4 \---| JumpToStartLoop | API 5 V ...
| ... + If | API with XpRc/XpValue as "API Expression" | [... more APIs ] with XpRc/XpValue as "API Expression" | If all single "API expressions" are TRUE, | the "IF expression" will be TRUE + Then | [ API ] | [... more APIs ] + Else else is optional | [ API ] | [... more APIs ] + EndIf V ...
DLL name: fmctjca0.dll / libfmctjca0.a (with version 3 signature) Entry point: CApiTestToolDll 1st argument: Parameter string (same as EXE) Behaviour: Same as EXE version of MQ Workflow C API Test Tool
DLL name: fmctjca2.dll / libfmctjca2.a (with version 2 signature) Entry point: CApiTestToolDll 1st argument: ProgramID 2nd argument: Parameter string (same as EXE) Behaviour: Same as EXE version of MQ Workflow C API Test Tool Remark: 1st argument is generated and passed from PEA
Usage: fmctjca1 <[path]tc fn> <[path]log fn> or Usage: fmctjca1 <[path]tc fn> NoOutput or Usage: fmctjca1 Syntax <FileSpec> or Usage: fmctjca1 ApiRCs <FileSpec> or Usage: fmctjca1 ToolRCs <FileSpec>
tc test case fn file name log result
fmctjca1 d:\testcase\tc01.dat d:\result\tc01.log
... PROGRAM 'FMCTJCA0_tc02' ( 'PersonInfo', 'PersonInfo' ) DESCRIPTION 'Activity implementation as DLL - MQ Workflow C API Test Tool' OS2 PATH_AND_FILENAME 'd:\fmc\dll\FMCTJCA0.DLL' OS2 ENTRY_POINT 'CApiTestToolDll' OS2 PARAMETER 'd:\testcase\tc02.dat d:\result\tc02.log' END 'FMCTJCA0_tc02' ...
fmctjca1 syntax d:\testcase\syntax.txt
fmctjca1 tc01a tc01a (application A) fmctjca1 tc01b tc01b (application B)
fmctjca1 -h
Error type Return value -------------------------------- no error 0 usage error 4 error 8 severe error 12 user defined return code int
If this tool is running on a OS/390 platform and a skip statement <NOT_390> occurs within a test case script, then everything will be skipped until a skip-end statement </NOT_390> occurs.
Inside CICS you can use also the <NOT_390CICS> flag to skip APIs that will be called in OS/390 native and on LAN platforms. The corresponding end skip statement is: </NOT_390CICS>.
On every other platform, the same thing happens with the <NOT_WORKSTATION>
and </NOT_WORKSTATION> statements.
The following statements will be ignored:
<NOT_CPP> </NOT_CPP> <NOT_JAVA> </NOT_JAVA> <NOT_X> </NOT_X> <NOT_VB> </NOT_VB>