SAF Test Project: An open-source repository for SAF-conformance test suites

SAF Test Suite B.01.01
Snapshot taken April 31, 2006

This page presents all of the tests in the SAF Test suite for easy review and coverage analysis. All test case assertion total number and completed test number are listed. All complete HPI B.01.01 and AIS B.01.01 tests with their descriptions can be reviewed here along with the respective specification coverage. The test descriptions are from the assertion.xml files checked in with the tests. Sorry for the long initial load time (this will be improved).

Tip: The code for each test can be viewed by clicking the test name in the left-most column (e.g. 1.c, 2.c, ...).

Expand All    Collapse All   
  • AIS-clm-B.01.01(complete/total:142/194)
    • operation(complete/total:87/123)
      • saClmClusterNodeGetCallbackT(complete/total:8 /14)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P34-14:P34-16 saClmClusterNodeGetAsync is called with a invocation. Check if the invocation match the value in Callback.   Y Y
          2-1.c P34-18:P34-20 saClmClusterNodeGetAsync is called with nodeId is SA_CLM_LOCAL_NODE_ID. error in callback should be SA_AIS_OK. SA_CLM_LOCAL_NODE_ID. error in callback should be SA_AIS_OK Y Y
          2-2.c P34-18:P34-20 saClmClusterNodeGetAsync is called with invalid nodeId value. error in callback should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM N N
          3.c P34-24:P34-24 aClmClusterNodeGetAsync is called with normal params. error in callback should be SA_AIS_OK. Same with 2-1 SA_AIS_OK. Same with 2-1 Y Y
          4.c P34-25:P34-26 Test if the error in saClmClusterNodeGetCallback is SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          5.c P34-27:P34-29 Test if the error in saClmClusterNodeGetCallback is SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          6.c P34-30:P34-31 Test if the error in saClmClusterNodeGetCallback is SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          7.c P34-33:P34-34 saClmClusterNodeGetAsync is called with invalid nodeId value. error in callback should be SA_AIS_ERR_INVALID_PARAM. Same with 2-2 SA_AIS_ERR_INVALID_PARAM. Same with 2-2 N N
          8.c P34-35:P34-36 Test if the error in saClmClusterNodeGetCallback is SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Y N
          9.c P34-37:P34-38 Test if the error in saClmClusterNodeGetCallback is SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Y N
          10.c P35-3:P35-9 saClmClusterNodeGetAsync is called with all valid parameters. Check if the clusterNode information is correct in the saClmClusterNodeGetCallback.   N N
          11.c P35-9:P35-12 The process sets the value of invocation when it invokes the saClmClusterNodeGetAsync() function. The Cluster Membership Service uses invocation when it invokes this callback function, so that the process can associate its request with this callback. Same with 1   Y Y
          12.c P35-13:P35-14 Let a node leave membership, then saClmClusterNodeGetAsync is called with all valid parameters. Check the member field of the clusterNode parameter in the saClmClusterNodeGetCallback. The node will be expressed not a member of this cluster.   N N

      • saClmClusterNodeGetAsync(complete/total:13 /17)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P32-39:P32-40 saClmClusterNodeGetAsync is called with valid clmHandle. Return should be SA_AIS_OK. SA_AIS_OK Y Y
          2.c P33-1:P33-3 saClmClusterNodeGetAsync is called with a invocation. Return should be SA_AIS_OK. Check if the invocation match the value in Callback. SA_AIS_OK. Check if the invocation match the value in Callback Y Y
          3-1.c P33-4:P33-5 saClmClusterNodeGetAsync is called with nodeId is SA_CLM_LOCAL_NODE_ID. Return should be SA_AIS_OK. Same with 1 SA_CLM_LOCAL_NODE_ID. Return should be SA_AIS_OK. Same with 1 Y Y
          3-2.c P33-4:P33-5 saClmClusterNodeGetAsync is called with nodeId is invalid value. Return should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM N N
          4.c P33-9:P33-10 saClmClusterNodeGetAsync is called with all valid parameters. Return should be SA_AIS_OK. Check if the clusterNode information is correct. SA_AIS_OK. Check if the clusterNode information is correct N N
          5.c P33-10:P33-11 saClmClusterNodeGetAsync is called with the constant SA_CLM_LOCAL_NODE_ID is used as nodeId, Check if the returned information is about the cluster node that hosts the invoking process. SA_CLM_LOCAL_NODE_ID is used as nodeId, Check if the returned information is about the cluster node that hosts the invoking process N N
          6.c P33-12:P33-14 The process sets invocation, which it uses subsequently to match the corresponding callback, saClmClusterNodeGetCallback(), with this particular invocation. Same with 2   Y Y
          7.c P33-15:P33-16 saClmClusterNodeGetAsync is called after the intialization which has not saClmClusterNodeGetCallback() supplied. Return should be SA_AIS_ERR_INIT. SA_AIS_ERR_INIT Y Y
          8.c P33-19:P33-19 saClmClusterNodeGetAsync is called with valid clmHandle. Return should be SA_AIS_OK. Same with 1 SA_AIS_OK. Same with 1 Y Y
          9.c P33-20:P33-21 Test if the saClmClusterNodeGetAsync can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          10.c P33-23:P33-25 Test if the saClmClusterNodeGetAsync can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          11.c P33-27:P33-28 Test if the saClmClusterNodeGetAsync can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          12-1.c P33-29:P33-30 saClmClusterNodeGetAsync is called with an unintialized saClmHandle. Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          12-2.c P33-29:P33-30 saClmClusterNodeGetAsync is called with an finalized saClmHandle. Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          13.c P33-31:P33-32 The previous initialization with saClmInitialize() was incomplete, since the saClmClusterNodeGetCallback() callback function is missing. Same with 7.   Y Y
          14.c P33-34:P33-34 saClmClusterNodeGetAsync is called with the invalid nodeId. Return value should be SA_AIS_ERR_INVALID_PARAM Same with 3-2. SA_AIS_ERR_INVALID_PARAM Same with 3-2 N N

      • saClmClusterTrackCallbackT(complete/total:8 /17)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P28-14:P28-18 Change the view number and don't change membership, Call saClmClusterTrack with flag SA_TRACK_CHANGES, In saClmClusterTrackCallback, check if the clusterChanges field in each entry of notificationBuffer is set to SA_CLM_NODE_NO_CHANGE. SA_TRACK_CHANGES, In saClmClusterTrackCallback, check if the clusterChanges field in each entry of notificationBuffer is set to SA_CLM_NODE_NO_CHANGE Y N
          2.c P28-19:P28-20 Change the view number and don't change membership, Call saClmClusterTrack with flag SA_TRACK_CHANGES_ONLY. In saClmClusterTrackCallback, check if the notificationBuffer does not contain any items. SA_TRACK_CHANGES_ONLY. In saClmClusterTrackCallback, check if the notificationBuffer does not contain any items Y N
          3.c P28-21:P28-22 Change the view number and don't change membership, Call saClmClusterTrack with flag SA_TRACK_CURRENT. In saClmClusterTrackCallback, check if the the view number of the most recent transition is delivered. SA_TRACK_CURRENT. In saClmClusterTrackCallback, check if the the view number of the most recent transition is delivered Y N
          4.c P28-24:P28-24 Call saClmClusterTrack with normal parameters, and then saClmDispatch, Check if the numberOfMembers parameter in saClmClusterTrackCallback is equal to the number of members in the current cluster..   N N
          5.c P28-28:P28-28 Call saClmClusterTrack() with normal parameters, and then saClmDispatch(), Check if the error parameter in saClmClusterTrackCallback() is SA_AIS_OK. SA_AIS_OK Y Y
          6.c P28-29:P28-30 Test if the saClmClusterTrackCallback() can get SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY Y N
          7.c P28-31:P28-33 Test if the saClmClusterTrackCallback() can get SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          8.c P28-34:P28-35 Test if the saClmClusterTrackCallback() can get SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          9.c P28-36:P28-39 Test if the saClmClusterTrackCallback() can get SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Y N
          10.c P28-40:P29-2 Test if the saClmClusterTrackCallback() can get SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Y N
          11.c P29-4:P29-7 If the error returned is SA_AIS_ERR_NO_MEMORY or SA_AIS_ERR_NO_RESOURCES, the process that invoked saClmClusterTrack() should invoke saClmClusterTrackStop() and then invoke saClmClusterTrack() again to resynchronize with the current state. SA_AIS_ERR_NO_MEMORY or SA_AIS_ERR_NO_RESOURCES, the process that invoked saClmClusterTrack() should invoke saClmClusterTrackStop() and then invoke saClmClusterTrack() again to resynchronize with the current state Y N
          12-1.c P29-11:P29-16 Call saClmClusterTrack() with flag SA_TRACK_CURRENT and null notificationBuffer pointer parameters, and then saClmDispatch(), check if the callback function returns information about the cluster nodes in the notificationBuffer parameter. SA_TRACK_CURRENT and null notificationBuffer pointer parameters, and then saClmDispatch(), check if the callback function returns information about the cluster nodes in the notificationBuffer parameter Y Y
          12-2.c P29-11:P29-16 Call saClmClusterTrack() with flag SA_TRACK_CHANGES and non-null notificationBuffer pointer parameters, let a node leave the cluster and then saClmDispatch(), check if the callback function returns information about the cluster nodes in the notificationBuffer parameter. SA_TRACK_CHANGES and non-null notificationBuffer pointer parameters, let a node leave the cluster and then saClmDispatch(), check if the callback function returns information about the cluster nodes in the notificationBuffer parameter N N
          12-3.c P29-11:P29-16 Call saClmClusterTrack() with flag SA_TRACK_CHANGES_ONLY and non-null notificationBuffer pointer parameters, let a node leave the cluster and then saClmDispatch(), check if the callback function returns information about the cluster nodes in the notificationBuffer parameter. SA_TRACK_CHANGES_ONLY and non-null notificationBuffer pointer parameters, let a node leave the cluster and then saClmDispatch(), check if the callback function returns information about the cluster nodes in the notificationBuffer parameter N N
          13.c P29-17:P29-20 Two processes request tracking with the same flags set. For a particular view number, check if the Cluster Membership Service shall provide the same information about the cluster membership when it invokes the saClmClusterTrackCallback() function of those processes. 13-fork.c will be the child process.   Y Y
          14-1.c P29-22:P29-27 Call saClmClusterTrack() with the SA_TRACK_CHANGES or SA_TRACK_CHANGES_ONLY flag is set. Check if notificationBuffer might contain information about the current members of the cluster and also about nodes that have recently left the cluster membership. SA_TRACK_CHANGES or SA_TRACK_CHANGES_ONLY flag is set. Check if notificationBuffer might contain information about the current members of the cluster and also about nodes that have recently left the cluster membership N N
          14-2.c P29-22:P29-27 Call saClmClusterTrack() with the SA_TRACK_CHANGES or SA_TRACK_CHANGES_ONLY is set. Check if the value of the numberOfItems attribute in the notificationBuffer parameter is greater than the value of the numberOfMembers parameter. SA_TRACK_CHANGES or SA_TRACK_CHANGES_ONLY is set. Check if the value of the numberOfItems attribute in the notificationBuffer parameter is greater than the value of the numberOfMembers parameter N N

      • saClmClusterNodeGet(complete/total:12 /18)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P31-19:P31-20 saClmClusterNodeGet is called with valid clmHandle. Return should be SA_AIS_OK. SA_AIS_OK Y Y
          2-1.c P31-22:P31-23 saClmClusterNodeGet is called with nodeId is SA_CLM_LOCAL_NODE_ID. Return should be SA_AIS_OK. Same with 1 SA_CLM_LOCAL_NODE_ID. Return should be SA_AIS_OK. Same with 1 Y Y
          2-2.c P31-22:P31-23 saClmClusterNodeGet is called with nodeId is invalid value. Return should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM N N
          3.c P31-24:P31-25 saClmClusterNodeGet is called with timeout is zero. Return should be SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT Y Y
          4-1.c P31-27:P31-29 saClmClusterNodeGet is called with clusterNode is NULL. Return should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM Y Y
          4-2.c P31-27:P31-29 saClmClusterNodeGet is called with clusterNode is valid. Return should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1 Y Y
          5.c P31-32:P31-38 saClmClusterNodeGet is called with all valid parameters. Return should be SA_AIS_OK. Check if the clusterNode information is correct. SA_AIS_OK. Check if the clusterNode information is correct N N
          6.c P31-39:P31-40 saClmClusterNodeGet is called with the constant SA_CLM_LOCAL_NODE_ID is used as nodeId, Check if the returned information is about the cluster node that hosts the invoking process. SA_CLM_LOCAL_NODE_ID is used as nodeId, Check if the returned information is about the cluster node that hosts the invoking process N N
          7.c P32-2:P32-2 saClmClusterNodeGet is called with valid clmHandle. Return should be SA_AIS_OK. Same with 1 SA_AIS_OK. Same with 1 Y Y
          8.c P32-4:P32-5 Test if the saClmClusterNodeGet can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          9.c P32-7:P32-9 Test if the saClmClusterNodeGet can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          10.c P32-10:P32-11 Test if the saClmClusterNodeGet can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          11-1.c P32-12:P32-13 saClmClusterNodeGet is called with an unintialized saClmHandle. Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          11-2.c P32-12:P32-13 saClmClusterNodeGet is called with an finalized saClmHandle. Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          12.c P32-15:P32-15 saClmClusterNodeGet is called with the invalid nodeId. Return value should be SA_AIS_ERR_INVALID_PARAM Same with 2-2. SA_AIS_ERR_INVALID_PARAM Same with 2-2 N N
          13.c P32-17:P32-18 Test if the saClmClusterNodeGet can return SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Y N
          14.c P32-19:P32-20 Test if the saClmClusterNodeGet can return SA_AIS_ERR_RESOURCES SA_AIS_ERR_RESOURCES Y N

      • saClmClusterTrackStop(complete/total:9 /14)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P30-11:P30-12 Call saClmClusterTrackStop with valid clmHandle which is started with flag SA_TRACK_CHANGES, return should be SA_AIS_OK. SA_TRACK_CHANGES, return should be SA_AIS_OK Y Y
          2.c P30-16:P30-17 Call saClmClusterTrack, then use this function stops any further notifications through the handle clmHandle. Test if callback isn't in use through select.   N N
          3.c P30-21:P30-21 Call saClmClusterTrackStop with normal params. return should be SA_AIS_OK. Same with 1 SA_AIS_OK. Same with 1 Y Y
          4.c P30-22:P30-23 Test if the saClmClusterTrackStop can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          5.c P30-25:P30-27 Test if the saClmClusterTrackStop can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          6.c P30-28:P30-29 Test if the saClmClusterTrackStop can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          7-1.c P30-31:P30-32 saClmClusterTrackStop is called with an unintialized saClmHandle. Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          7-2.c P30-31:P30-32 saClmClusterTrackStop is called with an finalized saClmHandle. Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          8.c P30-33:P30-34 Test if the saClmClusterTrackStop can return SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Y N
          9.c P30-36:P30-37 Test if the saClmClusterTrackStop can return SA_AIS_ERR_RESOURCES SA_AIS_ERR_RESOURCES Y N
          10-1.c P30-38:P30-42 saClmClusterTrackStop a saClmHandle which has not been started at all. Return value should be SA_AIS_ERR_NOT_EXIST SA_AIS_ERR_NOT_EXIST Y Y
          10-2.c P30-38:P30-42 saClmClusterTrackStop a saClmHandle which was started with flag SA_TRACK_CURRENT. Return value should be SA_AIS_ERR_NOT_EXIST SA_TRACK_CURRENT. Return value should be SA_AIS_ERR_NOT_EXIST Y Y
          10-3.c P30-38:P30-42 saClmClusterTrackStop a saClmHandle which was started with flag SA_TRACK_CHANGES and has been stopped. Return value should be SA_AIS_ERR_NOT_EXIST. SA_TRACK_CHANGES and has been stopped. Return value should be SA_AIS_ERR_NOT_EXIST Y Y
          10-4.c P30-38:P30-42 saClmClusterTrackStop a saClmHandle which was started with flag SA_TRACK_CHANGES_ONLY and has been stoped. Return value should be SA_AIS_ERR_NOT_EXIST. SA_TRACK_CHANGES_ONLY and has been stoped. Return value should be SA_AIS_ERR_NOT_EXIST Y Y

      • saClmClusterTrack(complete/total:37 /43)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P25-16:P25-18 saClmClusterTrack correctly, Set a valid clmHandle and valid track Flag as SA_TRACK_CURRENT. The function completes successfully. Return value should be SA_AIS_OK SA_TRACK_CURRENT. The function completes successfully. Return value should be SA_AIS_OK Y Y
          1-2.c P25-16:P25-18 saClmClusterTrack is called with a finalized clmhandle. Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P25-16:P25-18 saClmClusterTrack is called with an unintialized clmhandle. Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          2.c P25-19:P25-22 saClmClusterTrack is called with an track flag other than "SA_TRACK_CURRENT, SA_TRACK_CHANGES or SA_TRACK_CHANGES_ONLY". Return value should be SA_AIS_ERR_BAD_FLAGS SA_TRACK_CURRENT, SA_TRACK_CHANGES or SA_TRACK_CHANGES_ONLY". Return value should be SA_AIS_ERR_BAD_FLAGS Y Y
          3-1.c P25-23:P25-27 Call saClmClusterTrack correctly, set a valid clmHandle and valid track Flag as SA_TRACK_CURRENT and set notificationBuffer not NULL. The function completes successfully. Return value should be SA_AIS_OK Same with 1-1 SA_TRACK_CURRENT and set notificationBuffer not NULL. The function completes successfully. Return value should be SA_AIS_OK Same with 1-1 Y Y
          3-2.c P25-23:P25-27 Call saClmClusterTrack correctly, set a valid clmHandle and valid track Flag as SA_TRACK_CURRENT and set notificationBuffer as NULL. The function completes successfully. Return value should be SA_AIS_OK SA_TRACK_CURRENT and set notificationBuffer as NULL. The function completes successfully. Return value should be SA_AIS_OK Y Y
          3-3.c P25-23:P25-27 Call saClmClusterTrack correctly, set a valid clmHandle and valid track Flag as SA_TRACK_CURRENT and set notificationBuffer as NULL. The specified current node should be returned in callback correctly. Return value should be SA_AIS_OK. SA_TRACK_CURRENT and set notificationBuffer as NULL. The specified current node should be returned in callback correctly. Return value should be SA_AIS_OK N N
          3-4.c P25-23:P25-27 Call saClmClusterTrack correctly, set a valid clmHandle and valid track Flag as SA_TRACK_CURRENT and set notificationBuffer as NULL. The specified left node should be not returned in callback correctly. Return value should be SA_AIS_OK. SA_TRACK_CURRENT and set notificationBuffer as NULL. The specified left node should be not returned in callback correctly. Return value should be SA_AIS_OK N N
          4-1.c P25-28:P25-34 Call saClmClusterTrack correctly, Set track Flag to SA_TRACK_CHANGES. The function completes successfully. The specified unchanged node should be returned in callbacks. Return value should be SA_AIS_OK SA_TRACK_CHANGES. The function completes successfully. The specified unchanged node should be returned in callbacks. Return value should be SA_AIS_OK N N
          4-2.c P25-28:P25-34 Call saClmClusterTrack correctly, Set track Flag to SA_TRACK_CHANGES. The function completes successfully. The specified left node should be returned in callbacks. Return value should be SA_AIS_OK SA_TRACK_CHANGES. The function completes successfully. The specified left node should be returned in callbacks. Return value should be SA_AIS_OK N N
          5-1.c P25-35:P25-41 Call saClmClusterTrack correctly, Set track Flag to SA_TRACK_CHANGES_ONLY. The function completes successfully. The new added node should be returne in callback function. Return value should be SA_AIS_OK SA_TRACK_CHANGES_ONLY. The function completes successfully. The new added node should be returne in callback function. Return value should be SA_AIS_OK N N
          5-2.c P25-35:P25-41 Call saClmClusterTrack correctly, Set track Flag to SA_TRACK_CHANGES_ONLY. The function completes successfully. The left node should be returne in callback function. Return value should be SA_AIS_OK SA_TRACK_CHANGES_ONLY. The function completes successfully. The left node should be returne in callback function. Return value should be SA_AIS_OK N N
          6.c P26-7:P26-9 saClmClusterTrack with bad parameter, Set track Flag to SA_TRACK_CHANGES and SA_TRACK_CHANGES_ONLY. Return value should be SA_AIS_ERR_BAD_FLAGS SA_TRACK_CHANGES and SA_TRACK_CHANGES_ONLY. Return value should be SA_AIS_ERR_BAD_FLAGS Y Y
          7-1.c P26-10:P26-15 saClmClusterTrack correctly, Set a valid clmHandle and valid track Flag as SA_TRACK_CURRENT. The function completes successfully. Return value should be SA_AIS_OK Same with 1-1 SA_TRACK_CURRENT. The function completes successfully. Return value should be SA_AIS_OK Same with 1-1 Y Y
          7-2.c P26-10:P26-15 saClmClusterTrack correctly, Set a valid clmHandle and valid track Flag as SA_TRACK_CURRENT and set notificationBuffer as NULL. The function completes successfully. Return value should be SA_AIS_OK Same with 3-2 SA_TRACK_CURRENT and set notificationBuffer as NULL. The function completes successfully. Return value should be SA_AIS_OK Same with 3-2 Y Y
          8-1.c P26-32:P26-37 saClmClusterTrack correctly, Set a valid clmHandle and valid track Flag as SA_TRACK_CURRENT. The function completes successfully. Return value should be SA_AIS_OK Same with 1-1 SA_TRACK_CURRENT. The function completes successfully. Return value should be SA_AIS_OK Same with 1-1 Y Y
          8-2.c P26-32:P26-37 saClmClusterTrack correctly, Set a valid clmHandle and valid track Flag as SA_TRACK_CURRENT and set notificationBuffer as NULL. The function completes successfully. Return value should be SA_AIS_OK Same with 3-2 SA_TRACK_CURRENT and set notificationBuffer as NULL. The function completes successfully. Return value should be SA_AIS_OK Same with 3-2 Y Y
          9.c P26-37:P26-39 Call saClmInitalize with missing saClmClusterTrackTrackCallback, then call saClmClusterTrack. Return value should be SA_AIS_ERR_INIT SA_AIS_ERR_INIT Y Y
          10-1.c P26-40:P26-43 call saClmClusterTrack repeatedly with callbacks for the same value of clmHandle. Return value should be SA_AIS_OK SA_AIS_OK Y Y
          10-2.c P26-40:P26-43 call saClmClusterTrack repeatedly without callbacks invoked for the same value of clmHandle. Return value should be SA_AIS_OK SA_AIS_OK Y Y
          11-1.c P27-1:P27-5 First call saClmClusterTrack using the flag of SA_TRACK_CHANGES, then call it using SA_TRACK_CHANGES_ONLY. Test whether a new callbacks is used. Return value should be SA_AIS_OK SA_TRACK_CHANGES, then call it using SA_TRACK_CHANGES_ONLY. Test whether a new callbacks is used. Return value should be SA_AIS_OK N N
          11-2.c P27-1:P27-5 First call saClmClusterTrack using the flag of SA_TRACK_CHANGES_ONLY, then call it using SA_TRACK_CHANGES. Test whether a new callbacks is used. Return value should be SA_AIS_OK SA_TRACK_CHANGES_ONLY, then call it using SA_TRACK_CHANGES. Test whether a new callbacks is used. Return value should be SA_AIS_OK Y Y
          12-1.c P27-6:P27-9 Call saClmClusterTrack with flag of SA_TRACK_CHANGES, and then call saClmClusterTrackStop. Change the cluster member and test whether the callback still enable. SA_TRACK_CHANGES, and then call saClmClusterTrackStop. Change the cluster member and test whether the callback still enable N N
          12-2.c P27-6:P27-9 Call saClmClusterTrack with flag of SA_TRACK_CHANGES_ONLY, and then call saClmClusterTrackStop. Change the cluster member and test whether the callback still enable. SA_TRACK_CHANGES_ONLY, and then call saClmClusterTrackStop. Change the cluster member and test whether the callback still enable N N
          12-3.c P27-6:P27-9 Call saClmClusterTrack with flag of SA_TRACK_CHANGES, and then call saClmFinalize. Change the cluster member and test whether the callback still enable. SA_TRACK_CHANGES, and then call saClmFinalize. Change the cluster member and test whether the callback still enable N N
          12-4.c P27-6:P27-9 Call saClmClusterTrack with flag of SA_TRACK_CHANGES_ONLY, and then call saClmFinalize. Change the cluster member and test whether the callback still enable. SA_TRACK_CHANGES_ONLY, and then call saClmFinalize. Change the cluster member and test whether the callback still enable N N
          13.c P27-10:P27-12 Test whether this API saClmClusterTrack can return a value of SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          14.c P27-13:P27-14 Test whether this API saClmClusterTrack can return a value of SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          15.c P27-15:P27-18 Test whether this API saClmClusterTrack can return a value of SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          16.c P27-19:P27-20 Test whether this API saClmClusterTrack can return a value of SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          17-1.c P27-21:P27-22 Test whether this API saClmClusterTrack can return a value of SA_AIS_ERR_BAD_HANDLE , saClmClusterTrack is called with a finalized clmhandle.Return value should be SA_AIS_ERR_BAD_HANDLE Same with test case 1-2 SA_AIS_ERR_BAD_HANDLE , saClmClusterTrack is called with a finalized clmhandle.Return value should be SA_AIS_ERR_BAD_HANDLE Same with test case 1-2 Y Y
          17-2.c P27-21:P27-22 Test whether this API saClmClusterTrack can return a value of SA_AIS_ERR_BAD_HANDLE Same with test case 1-3 SA_AIS_ERR_BAD_HANDLE Same with test case 1-3 Y Y
          18.c P27-23:P27-25 Call saClmInitalize with missing saClmClusterTrackTrackCallback, then call saClmClusterTrack. Return value should be SA_AIS_ERR_INIT Same with test case 9 SA_AIS_ERR_INIT Same with test case 9 Y Y
          19.c P27-26:P27-27 In notificationBuffer, set notification as not NULL, but set numberOfItems as 0. Return value should be SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Y Y
          20.c P27-28:P27-30 Test whether this API saClmClusterTrack can return a value of SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Y N
          21.c P27-31:P27-33 Test whether this API saClmClusterTrack can return a value of SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Y N
          22.c P27-34:P27-38 Test whether this API saClmClusterTrack can return a value of SA_AIS_ERR_NO_SPACE SA_AIS_ERR_NO_SPACE Y N
          23-1.c P27-39:P27-40 Test whether this API saClmClusterTrack can return a value of SA_AIS_ERR_BAD_FLAGS Same with 2 SA_AIS_ERR_BAD_FLAGS Same with 2 Y Y
          23-2.c P27-39:P27-40 Test whether this API saClmClusterTrack can return a value of SA_AIS_ERR_BAD_FLAGS Same with 6 SA_AIS_ERR_BAD_FLAGS Same with 6 Y Y
          24.c P26-1:P26-6 saClmClusterTrack correctly, Set track Flag to SA_TRACK_CHANGES_CURRENT and SA_TRACK_CHANGES_ONLY. The function completes successfully. The current node should be returned in callback. Return value should be SA_AIS_OK SA_TRACK_CHANGES_CURRENT and SA_TRACK_CHANGES_ONLY. The function completes successfully. The current node should be returned in callback. Return value should be SA_AIS_OK Y N
          25.c P26-16:P26-20 Test the view number implemant If the application has implemented the view number, then a change may cause the view number change   Y N
          26.c P26-21:P26-27 Use numberOfItems to specify the buffer size pointed by notification Test whether the return value is less than or equal with input one   Y Y
          27.c P26-28:P26-31 Call saClmClusterTrack with NULL notification for notificatonBuffer, and free the allocated memory in the callback.   Y Y

    • lifecycle(complete/total:55/71)
      • saClmSelectionObjectGet(complete/total:11 /17)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P21-25:P21-27 Get the selectionObject with valid parameter, including clmHandle, and selectionObject Return value should be SA_AIS_OK SA_AIS_OK Y Y
          1-2.c P21-25:P21-27 Get object without initialize Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P21-25:P21-27 Get object after finalize, which will cause the clmHandle unvalid Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P21-28:P21-30 Get the selectionObject with valid parameter, including clmHandle, and selectionObject Return value should be SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          2-2.c P21-28:P21-30 Set the return selectionObject as NULL Return value should be SA_AIS_INVALID_PARAM SA_AIS_INVALID_PARAM Y Y
          3-1.c P21-31:P22-2 Call the selectionObject with valid parameter, including clmHandle, and selectionObject Return value should be SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          3-2.c P21-31:P22-2 Call the selectionObject with valid parameter, including clmHandle, and selectionObject, and then call saClmClusterTrack to invoke a callback, and use select to detect pending callback. Return value should be SA_AIS_OK SA_AIS_OK Y Y
          4.c P22-3:P22-5 Test whether the API saClmSelectionObjectGet can return the value SA_AIS_OK ,when Get the selectionObject with valid parameter, including clmHandle,and selectionObject Return value should be SA_AIS_OK Same with 1-1 SA_AIS_OK ,when Get the selectionObject with valid parameter, including clmHandle,and selectionObject Return value should be SA_AIS_OK Same with 1-1 Y Y
          5.c P22-6:P22-8 Test whether the API saClmSelectionObjectGet can return the value SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          6.c P22-9:P22-11 Test whether the API saClmSelectionObjectGet can return the value SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          7.c P22-12:P22-14 Test whether the API saClmSelectionObjectGet can return the value SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          8-1.c P22-15:P22-17 Test whether the API saClmSelectionObjectGet can return the value SA_AIS_ERR_BAD_HANDLE, when Get object without initialize Same with 1-2 SA_AIS_ERR_BAD_HANDLE, when Get object without initialize Same with 1-2 Y Y
          8-2.c P22-15:P22-17 Test whether the API saClmSelectionObjectGet can return the value SA_AIS_ERR_BAD_HANDLE,when Get object after finalize, which will cause the clmHandle unvalid Same with 1-3 SA_AIS_ERR_BAD_HANDLE,when Get object after finalize, which will cause the clmHandle unvalid Same with 1-3 Y Y
          9.c P22-18:P22-18 Test whether the API saClmSelectionObjectGet can return the value SA_AIS_ERR_INVALID_PARAM, when Set the return selectionObject as NULL Same with 2-2 SA_AIS_ERR_INVALID_PARAM, when Set the return selectionObject as NULL Same with 2-2 Y Y
          10.c P22-19:P22-20 Test whether the API saClmSelectionObjectGet can return the value SA_AIS_NO_MEMORY SA_AIS_NO_MEMORY Y N
          11.c P22-21:P22-23 Test whether the API saClmSelectionObjectGet can return the value SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Y N

      • saClmFinalize(complete/total:10 /13)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P23-41:P23-42 Call this function by valid clmHandle Return value should be SA_AIS_OK SA_AIS_OK Y Y
          1-2.c P23-41:P23-42 finalize an finalized clmhandle Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P23-41:P23-42 Finalize an uninitialized clmhandle Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          2.c P24-1:P24-7 Call this function by valid clmHandle Return value should be SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          3.c P24-8:P24-10 After finalizing, we call track associated with the clmHandle Return value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          4.c P24-10:P24-14 After finalizing, we try to call callbacks related to the clmHandle Return value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          5.c P24-15:P24-15 After finalizing, we call saClmSelectionObjectGet related to the clmHandle Return value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          6.c P24-16:P24-19 Test whether API saClmFinalize can return the value of SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          7.c P24-20:P24-22 Test whether API saClmFinalize can return the value of SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          8.c P24-23:P24-25 Test whether API saClmFinalize can return the value of SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          9.c P24-26:P24-28 Test whether API saClmFinalize can return the value of SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          10-1.c P24-29:P24-30 Test whether API saClmFinalize can return the value of SA_AIS_ERR_BAD_HANDLE Same with 1-2 SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          10-2.c P24-29:P24-30 Test whether API saClmFinalize can return the value of SA_AIS_ERR_BAD_HANDLE Same with 1-3 SA_AIS_ERR_BAD_HANDLE Same with 1-3 Y Y

      • saClmDispatch(complete/total:14 /17)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P22-40:P22-41 Dispatch correctly, Set valid clmHandle value and dispatch Flag to SA_DISPATCH_ONE. The function should complete successfully. Return value should be SA_AIS_OK SA_DISPATCH_ONE. The function should complete successfully. Return value should be SA_AIS_OK Y Y
          1-2.c P22-40:P22-41 Dispatch is called with an unintialized saClmHandle. Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P23-1:P23-5 Dispatch is called with a finalized clmhandle. Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P23-1:P23-5 Dispatch correctly, Set valid clmHandle value and dispatch Flag to SA_DISPATCH_ONE. The function should complete successfully. Return value should be SA_AIS_OK Same with 1-1 SA_DISPATCH_ONE. The function should complete successfully. Return value should be SA_AIS_OK Same with 1-1 Y Y
          2-2.c P23-1:P23-5 Dispatch correctly, Set dispatch Flag to SA_DISPATCH_ALL. The function completes successfully. Return value should be SA_AIS_OK SA_DISPATCH_ALL. The function completes successfully. Return value should be SA_AIS_OK Y Y
          2-3.c P23-1:P23-5 Dispatch correctly, Set dispatch Flag to SA_DISPATCH_BLOCKING. The function completes successfully. Return value should be SA_AIS_OK SA_DISPATCH_BLOCKING. The function completes successfully. Return value should be SA_AIS_OK Y Y
          2-4.c P23-1:P23-5 Dispatch is called with an dispatch flag other than "SA_DISPATCH_ONE, SA_DISPATCH_ALL or SA_DISPATCH_BLOCKING". Return value should be SA_AIS_ERR_INVALID_PARAM. SA_DISPATCH_ONE, SA_DISPATCH_ALL or SA_DISPATCH_BLOCKING". Return value should be SA_AIS_ERR_INVALID_PARAM Y Y
          3.c P23-6:P23-9 Dispatch correctly, Set valid clmHandle value and dispatch Flag Return value should be SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          4-1.c P23-10:P23-12 Test whether the API saClmDispatch can return value SA_AIS_OK when Set valid clmHandle value and dispatch Flag Same with 1-1 SA_AIS_OK when Set valid clmHandle value and dispatch Flag Same with 1-1 Y Y
          4-2.c P23-10:P23-12 Test whether the API saClmDispatch can return value SA_AIS_OK when dispatch correctly, Set dispatch Flag to SA_DISPATCH_ALL. The function completes successfully. Same with 2-2 SA_AIS_OK when dispatch correctly, Set dispatch Flag to SA_DISPATCH_ALL. The function completes successfully. Same with 2-2 Y Y
          4-3.c P23-10:P23-12 Test whether the API saClmDispatch can return value SA_AIS_OK,when dispatch correctly, Set dispatch Flag to SA_DISPATCH_BLOCKING. The function completes successfully. Same with 2-3 SA_AIS_OK,when dispatch correctly, Set dispatch Flag to SA_DISPATCH_BLOCKING. The function completes successfully. Same with 2-3 Y Y
          5.c P23-13:P23-15 Test whether the API saClmDispatch can return value SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          6.c P23-16:P23-19 Test whether the API saClmDispatch can return value SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          7.c P23-20:P23-22 Test whether the API saClmDispatch can return value SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          8-1.c P23-23:P23-24 Test whether the API saClmDispatch can return value SA_AIS_ERR_BAD_HANDLE when Dispatch is called with an unintialized saClmHandle. Same with 1-2 SA_AIS_ERR_BAD_HANDLE when Dispatch is called with an unintialized saClmHandle. Same with 1-2 Y Y
          8-2.c P23-23:P23-24 Test whether the API saClmDispatch can return value SA_AIS_ERR_BAD_HANDLE when Dispatch is called with a finalized clmhandle. Same with 1-3 SA_AIS_ERR_BAD_HANDLE when Dispatch is called with a finalized clmhandle. Same with 1-3 Y Y
          9.c P23-25:P23-25 Test whether the API saClmDispatch can return value SA_AIS_ERR_INVALID_PARAM ,when Dispatch is called with an dispatch flag other than "SA_DISPATCH_ONE,SA_DISPATCH_ALL or SA_DISPATCH_BLOCKING". Same with 2-4 SA_AIS_ERR_INVALID_PARAM ,when Dispatch is called with an dispatch flag other than "SA_DISPATCH_ONE,SA_DISPATCH_ALL or SA_DISPATCH_BLOCKING". Same with 2-4 Y Y

      • saClmInitialize(complete/total:20 /24)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P19-16:P19-18 Initialize the membership service with a valid clmHandle and other valid parameter. Return value should be SA_AIS_OK SA_AIS_OK Y Y
          1-2.c P19-16:P19-18 Initialize the membership service with a NULL clmhandle. Return value should be SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Y Y
          2-1.c P19-19:P19-23 Initialize the membership service with correct parameter such as normal handle,verion and callback, and callback is not NULL. Return value should be SA_AIS_OK SA_AIS_OK Y Y
          2-2.c P19-19:P19-23 Initialize the membership service with correct parameter such as normal handle,verion and callback, but callback function in structure is set to NULL. Return value should be SA_AIS_OK SA_AIS_OK Y Y
          2-3.c P19-19:P19-23 Initialize the membership service with correct parameter such as normal handle,verion and callback, but callback is set to NULL. Return value should be SA_AIS_OK SA_AIS_OK Y Y
          3-1.c P19-24:P19-29 Initialize the membership service with a valid clmHandle and other valid parameter. Return value should be SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          3-2.c P19-24:P19-29 Initialize the membership service with a NULL version code. Return value should be SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Y Y
          3-3.c P19-24:P19-29 Initialize the membership service with a version code, whose minorVersion number is not equal to required minorVersion Return value should be SA_AIS_OK. SA_AIS_OK Y Y
          4.c P19-30:P19:37 Initialize the membership service with a valid clmHandle and other valid parameter. Return value should be SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          5.c P19-38:P20-5 Initialize the membership service with a version code. Suppose the returned major version number is bigger or equal with the required majorversion number Return value should be SA_AIS_OK. SA_AIS_OK Y Y
          6-1.c P20-6:P20-29 Initialize the membership service with a version code. Suppose the returned major version number is bigger or equal with the required majorversion number Return value should be SA_AIS_OK. Same with 5 SA_AIS_OK. Same with 5 Y Y
          6-2.c P20-6:P20-29 Initialize the membership service with a version code, whose release code is bhigher than current one, and could not be supported now. Return value should be SA_AIS_ERR_VERSION. SA_AIS_ERR_VERSION Y Y
          6-3.c P20-6:P20-29 Initialize the membership service with a version code, whose release code is lower than current one, and is supposed to not be supported. Return value should be SA_AIS_ERR_VERSION. SA_AIS_ERR_VERSION N N
          7-1.c P20-30:P20-31 Test whether this API saClmInitialize can return a value of SA_AIS_OK ,when initialize the membership service with the valid clmhandle and other valid parameters Same with 1-1 SA_AIS_OK ,when initialize the membership service with the valid clmhandle and other valid parameters Same with 1-1 Y Y
          7-2.c P20-30:P20-31 Test whether this API saClmInitialize can return a value of SA_AIS_OK, when Initialize the membership service with correct parameter such as normal handle,verion and callback, and callback is not NULL. Same with 2-1 SA_AIS_OK, when Initialize the membership service with correct parameter such as normal handle,verion and callback, and callback is not NULL. Same with 2-1 Y Y
          7-3.c P20-30:P20-31 Test whether this API saClmInitialize can return a value of SA_AIS_OK, when Initialize the membership service with correct parameter such as normal handle,verion and callback, but callback function in structure is set to NULL. Same with 2-2 SA_AIS_OK, when Initialize the membership service with correct parameter such as normal handle,verion and callback, but callback function in structure is set to NULL. Same with 2-2 Y Y
          8.c P20-32:P20-34 Test whether this API saClmInitialize can return a value of SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          9.c P20-38:P20-40 Test whether this API saClmInitialize can return a value of SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          10-1.c P20-41:P20-41 Test whether this API saClmInitialize can return a value of SA_AIS_ERR_INVALID_PARAM,when Initialize the membership service with a NULL clmhandle. Same with 1-2 SA_AIS_ERR_INVALID_PARAM,when Initialize the membership service with a NULL clmhandle. Same with 1-2 Y Y
          10-2.c P20-41:P20-41 Test whether this API saClmInitialize can return a value of SA_AIS_ERR_INVALID_PARAM,when Initialize the membership service with a NULL version code. Same with 3-2 SA_AIS_ERR_INVALID_PARAM,when Initialize the membership service with a NULL version code. Same with 3-2 Y Y
          11.c P21-1:P21-3 Test whether this API saClmInitialize can return a value of SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Y N
          12.c P21-4:P21-5 Test whether this API saClmInitialize can return a value of SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Y N
          13-2.c P21-6:P21-7 Test whether this API saClmInitialize can return a value of SA_AIS_ERR_VERSION,when Initialize the membership service with a version code, whose release code is bhigher than current one, and could not be supported now. Same with 6-2 SA_AIS_ERR_VERSION,when Initialize the membership service with a version code, whose release code is bhigher than current one, and could not be supported now. Same with 6-2 Y Y
          13-3.c P21-6:P21-7 Test whether this API saClmInitialize can return a value of SA_AIS_ERR_VERSION,when Initialize the membership service with a version code, whose release code is lower than current one, and is supposed to not be supported. Return value should be SA_AIS_ERR_VERSION. Same with 6-3 SA_AIS_ERR_VERSION,when Initialize the membership service with a version code, whose release code is lower than current one, and is supposed to not be supported. Return value should be SA_AIS_ERR_VERSION. Same with 6-3 N N

  • AIS-ckpt-B.01.01(complete/total:401/530)
    • checkpoint_mamagement(complete/total:159/195)
      • saCkptCheckpointUnlink(complete/total:17 /20)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P37-33:P37-34 Call saCkptCheckpointUnlink with normal parameters. The api invocation returned value should be SA_AIS_OK. SA_AIS_OK Y Y
          1-2.c P37-33:P37-34 Call saCkptCheckpointUnlink before initialization. The api invocation returned value should SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P37-33:P37-34 Call saCkptCheckpointUnlink after finalization. The api invocation returned value should SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P37-36:P37-36 Call saCkptCheckpointUnlink with a existing checkpoint name. The api invocation returned value should SA_AIS_OK. Same with 1-1 SA_AIS_OK. Same with 1-1 Y Y
          2-2.c P37-36:P37-36 Call saCkptCheckpointUnlink with an un-existing checkpoint name. The api invocation returned value should SA_AIS_ERR_NOT_EXIST. SA_AIS_ERR_NOT_EXIST Y Y
          2-3.c P37-36:P37-36 Call saCkptCheckpointUnlink with an null pointer of checkpoint name. The api invocation returned value should SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM Y Y
          2-4.c P37-36:P37-36 Call saCkptCheckpointUnlink with an unlinked checkpoint name. The api invocation returned value should SA_AIS_ERR_NOT_EXIST. SA_AIS_ERR_NOT_EXIST Y Y
          3.c P37-39:P37-40 create a checkpoint, close it, then unlink it, check if the checkpoint handle has been invalid. Same with 1-1   Y Y
          4.c P38-1:P38-3 create a checkpoint, close it, then unlink it, check if the checkpoint name is invalid through open it again with read attribute. Same with 1-1   Y Y
          5.c P38-3:P38-7 create a checkpoint, open but do not close it, then unlink it. create another checkpoint with same name and SA_CKPT_CHECKPOINT_CREATE flag, the result should be SA_AIS_OK. get checkpoint status throught old checkpoint handle, it still works. SA_CKPT_CHECKPOINT_CREATE flag, the result should be SA_AIS_OK. get checkpoint status throught old checkpoint handle, it still works Y Y
          6.c P38-9:P38-10 create a checkpoint, close it, then unlink it, check if the checkpoint name has been invalid through get its status and return failure. Same with 1-1.   Y Y
          7.c P38-12:P38-14 create a checkpoint, clsoe it and fork a sub-process, sub-process open the checkpoint, at this time, main process unlink it, the sub process still can access the checkpoint. after sub-process close the checkpoint, the main process try to open the checkpoint will fail because it has been deleted. 7-fork.c is used as its child process   Y Y
          8.c P38-15:P38-19 create a checkpoint and fork a sub-process in which unlink the checkpoint. Return value should be SA_AIS_OK. SA_AIS_OK Y Y
          9.c P38-21:P38-21 Call saCkptCheckpointUnlink with normal param. The api invocation returned value should be SA_AIS_OK. Same with 1-1 SA_AIS_OK. Same with 1-1 Y Y
          10.c P38-23:P38-24 Test if saCkptCheckpointUnlink can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          11.c P38-26:P38-28 Test if saCkptCheckpointUnlink can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          12.c P38-29:P38-30 Test if saCkptCheckpointUnlink can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          13.c P38-32:P38-33 invoke saCkptCheckpointUnlink before inializaion. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. Samw with 1-2 SA_AIS_ERR_BAD_HANDLE. Samw with 1-2 Y Y
          14.c P38-34:P38-34 Call saCkptCheckpointUnlink with null pointer as name. The api invocation returned value should be SA_AIS_ERR_INVALID_PARAM. Same with 2-3 SA_AIS_ERR_INVALID_PARAM. Same with 2-3 Y Y
          15.c P38-36:P38-37 invoke saCkptCheckpointUnlink with an un-existing checkpoint name, it should return SA_AIS_ERR_NOT_EXIST. Same with 2-2 SA_AIS_ERR_NOT_EXIST. Same with 2-2 Y Y

      • saCkptCheckpointOpenAsync(complete/total:40 /47)

          XML error: Invalid document end at line 269
          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P31-31:P31-32 Open checkpoint before initialization. Return value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          1-2.c P31-31:P31-32 Open checkpoint after finalization. Return value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P31-31:P31-32 Call api with valid params. Return value should be SA_AIS_OK. SA_AIS_OK Y Y
          2.c P31-33:P31-36 Call api with the valid invocation value and other valid params. Return value should be SA_AIS_OK. Same with 1-3. SA_AIS_OK. Same with 1-3. Y Y
          3-1.c P31-37:P31-39 Call api with null checkpoint name input. Return value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Y Y
          3-2.c P31-37:P31-39 Call api with valid checkpoint name input and other valid params. Return value should be SA_AIS_OK. Same with 1-3. SA_AIS_OK. Same with 1-3. Y Y
          4-1.c P31-41:P32-2 Call api only to open an existing checkpoint with null create attribute ,SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Y Y
          4-2.c P31-41:P32-2 Call api only to open an existing checkpoint with null create attribute ,SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. Y Y
          4-3.c P31-41:P32-2 Call api only to open an existing checkpoint with null create attribute,SA_CKPT_CHECKPOINT_CREATE and other valid params. Return value be SA_AIS_ERR_INVALID_PARAM. SA_CKPT_CHECKPOINT_CREATE and other valid params. Return value be SA_AIS_ERR_INVALID_PARAM. Y Y
          4-4.c P31-41:P32-2 Call api only to open an existing checkpoint with non-null create attribute,SA_CKPT_CHECKPOINT_READ and other valid params. Return value should be SA_AIS_ERR_INVALID_PARAM. SA_CKPT_CHECKPOINT_READ and other valid params. Return value should be SA_AIS_ERR_INVALID_PARAM. Y Y
          5-1.c P32-3:P32-6 Call api to open and create a checkpoint with non-null and un-existing create attribute,SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value be SA_AIS_OK. SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value be SA_AIS_OK. Y Y
          5-2.c P32-3:P32-6 Call api to open and create a checkpoint with null create attribute,SA_CKPT_CHECKPOINT_CREATE and other valid params . Return value be SA_AIS_ERR_INVALID_PARAM. SA_CKPT_CHECKPOINT_CREATE and other valid params . Return value be SA_AIS_ERR_INVALID_PARAM. Y Y
          5-3.c P32-3:P32-6 Call api to open and create a checkpoint with non-null and un-existing create attribute,SA_CKPT_CHECKPOINT_READ(without SA_CKPT_CHECKPOINT_CREATE)and other valid params. Return value should be SA_AIS_ERR_INVALID_PARAM. SA_CKPT_CHECKPOINT_READ(without SA_CKPT_CHECKPOINT_CREATE)and other valid params. Return value should be SA_AIS_ERR_INVALID_PARAM. Y Y
          6-1.c P32-6:P32-8 Call api to open and create a checkpoint with existing create attribute,SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Y Y
          6-2.c P32-6:P32-8 Call api to open an existing checkpoint with SA_CKPT_CHECKPOINT_CREATE and other valid params except creationFlags does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. SA_CKPT_CHECKPOINT_CREATE and other valid params except creationFlags does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. Y Y
          6-3.c P32-6:P32-8 Call api to open an existing checkpoint with SA_CKPT_CHECKPOINT_CREATE and other valid params except checkpointSize does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. SA_CKPT_CHECKPOINT_CREATE and other valid params except checkpointSize does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. Y Y
          6-4.c P32-6:P32-8 Call api to open an existing checkpoint with SA_CKPT_CHECKPOINT_CREATE and other valid params except retentionDuration does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. SA_CKPT_CHECKPOINT_CREATE and other valid params except retentionDuration does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. Y Y
          6-5.c P32-6:P32-8 Call api to open an existing checkpoint with SA_CKPT_CHECKPOINT_CREATE and other valid params except maxSections does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. SA_CKPT_CHECKPOINT_CREATE and other valid params except maxSections does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. Y Y
          6-6.c P32-6:P32-8 Call api to open an existing checkpoint with SA_CKPT_CHECKPOINT_CREATE and other valid params except maxSectionSize does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. SA_CKPT_CHECKPOINT_CREATE and other valid params except maxSectionSize does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. Y Y
          6-7.c P32-6:P32-8 Call api to open an existing checkpoint with SA_CKPT_CHECKPOINT_CREATE and other valid params except maxSectionIdSize does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. SA_CKPT_CHECKPOINT_CREATE and other valid params except maxSectionIdSize does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. Y Y
          7-1.c P32-9:P32-11 Call api to create a checkpoint with SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Y Y
          7-2.c P32-9:P32-11 Call api to create a checkpoint with SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. Same with 5-1. SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. Same with 5-1. Y Y
          7-3.c P32-9:P32-11 Call api to open an existing checkpoint with SA_CKPT_CHECKPOINT_WRITE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. SA_CKPT_CHECKPOINT_WRITE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Y Y
          7-4.c P32-9:P32-11 Call api to create and open an checkpoint with invalid checkpointFlags and other valid params . Return value should be SA_AIS_ERR_BAD_FLAGS. SA_AIS_ERR_BAD_FLAGS. Y Y
          8-1.c P32-23:P32-27 Call api only to open an existing checkpoint with null create attribute ,SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Same with 4-1 . SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Same with 4-1 . Y Y
          8-2.c P32-23:P32-27 Call api to open and create a checkpoint with not null create attribute,SA_CKPT_CHECKPOINT_CREATE and other valid params . Return value be SA_AIS_OK. Same with 5-1 . SA_CKPT_CHECKPOINT_CREATE and other valid params . Return value be SA_AIS_OK. Same with 5-1 . Y Y
          9-1.c P32-28:P32-31 Call api to open an existing checkpoint multiple times for reading or writing in the same process. Return value be SA_AIS_OK . SA_AIS_OK . Y Y
          9-2.c P32-28:P32-31 Call api to open an existing checkpoint multiple times for reading or writing in different processes. Return value be SA_AIS_OK . SA_AIS_OK . Y Y
          10-1.c P32-32:P32-38 Call api to open an existing checkpoint created with synchronization flag SA_CKPT_WR_ALL_REPLICAS ,the checkpoint replica must be same with other checkpoint replica SA_CKPT_WR_ALL_REPLICAS ,the checkpoint replica must be same with other checkpoint replica Y N
          10-2.c P32-32:P32-38 Call api to open an existing checkpoint created with other flag except SA_CKPT_WR_ALL_REPLICAS,the checkpoint replica must be the same with active checkpoint replica SA_CKPT_WR_ALL_REPLICAS,the checkpoint replica must be the same with active checkpoint replica Y N
          11-1.c P32-39:P32-43 Call api to create a checkpoint with SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Same with 5-1 . SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Same with 5-1 . Y Y
          11-2.c P32-39:P32-43 Call api to create a checkpoint with SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. Same with 7-2 . SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. Same with 7-2 . Y Y
          11-3.c P32-39:P32-43 Call api to create a checkpoint with SA_CKPT_CHECKPOINT_READ | SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. Same with 7-3 . SA_CKPT_CHECKPOINT_READ | SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. Same with 7-3 . Y Y
          12.c P33-1:P33-9 Call api with setting the invocation's value ,which it uses subsequently to match the corresponding callback with this particular invocation. Same with 1-3.   Y Y
          13.c P33-10:P33-12 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_OK . Same with 1-3. SA_AIS_OK . Same with 1-3. Y Y
          14.c P33-13:P33-15 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          15.c P33-16:P33-18 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Y N
          16.c P33-19:P33-21 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          17.c P33-22:P33-23 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_ERR_BAD_HANDLE. Same with 1-2. SA_AIS_ERR_BAD_HANDLE. Same with 1-2. Y Y
          18.c P33-24:P33-26 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_ERR_INIT. SA_AIS_ERR_INIT. Y Y
          19.c P33-27:P33-28 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_ERR_INVALID_PARAM. Same with 3-1. SA_AIS_ERR_INVALID_PARAM. Same with 3-1. Y Y
          20.c P33-29:P33-32 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_ERR_INVALID_PARAM,when checkpointSize is less than maxSections * maxSectionSize . SA_AIS_ERR_INVALID_PARAM,when checkpointSize is less than maxSections * maxSectionSize . Y Y
          21.c P33-33:P33-34 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_ERR_INVALID_PARAM,when SA_CKPT_CHECKPOINT_CREATE is not set and checkpointCreationAttributes is not NULL. SA_AIS_ERR_INVALID_PARAM,when SA_CKPT_CHECKPOINT_CREATE is not set and checkpointCreationAttributes is not NULL. Y Y
          22.c P33-35:P33-36 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_ERR_INVALID_PARAM,when SA_CKPT_CHECKPOINT_CREATE is set,and checkpointCreationAttributes is NULL. Same with 4-3 . SA_AIS_ERR_INVALID_PARAM,when SA_CKPT_CHECKPOINT_CREATE is set,and checkpointCreationAttributes is NULL. Same with 4-3 . Y Y
          23.c P33-37:P33-39 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY. Y N
          24.c P33-40:P33-41 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_ERR_NO_RESOURCES. SA_AIS_ERR_NO_RESOURCES. Y N
          25.c P34-1:P34-3 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_ERR_NOT_EXIST,when the SA_CKPT_CHECKPOINT_ CREATE is not set. SA_AIS_ERR_NOT_EXIST,when the SA_CKPT_CHECKPOINT_ CREATE is not set. Y Y
          26.c P34-4:P34-6 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_ERR_EXIST. Same with 6-2 . SA_AIS_ERR_EXIST. Same with 6-2 . Y Y
          27.c P34-7:P34-7 Test whether the API saCkptCheckpointOpenAsync can return the value SA_AIS_ERR_BAD_FLAGS. Same with 7-4 . SA_AIS_ERR_BAD_FLAGS. Same with 7-4 . Y Y

      • saCkptCheckpointOpenCallback(complete/total:7 /12)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P34-25:P34-30 saCkptCheckpointCallback is called with a invocation. Check if the invocation match the value in Callback.   Y Y
          2.c P34-31:P34-31 open checkpoint with normal params. Returned value should be SA_AIS_OK. Same with 1 SA_AIS_OK. Same with 1 Y Y
          3.c P34-32:P34-35 open checkpoint with normal params. Return value should be SA_AIS_OK. Same with 1 SA_AIS_OK. Same with 1 Y Y
          3.c P34-32:P34-35 open checkpoint with normal params. Return value should be SA_AIS_OK. Same with 1 SA_AIS_OK. Same with 1 Y Y
          4.c P34-36:P34-37 open checkpoint with corruption. Return value should be SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          5.c P34-38:P34-41 open checkpoint with implementation-dependent timeout occurred. Return value should be SA_AIS_TIMEOUT. SA_AIS_TIMEOUT. Y N
          6.c P35-1:P35-2 open checkpoint when The service cannot be provided at this time. Return value should be SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN Y N
          7.c P35-3:P35-5 open checkpoint when the Checkpoint Service library or the Checkpoint Service provider is out of memory and cannot provide the service. Return value should be SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY Y N
          8.c P35-6:P35-7 open checkpoint when There are insufficient resources (other memory). Return value should be SA_AIS_ERR_NO_RESOURCES . SA_AIS_ERR_NO_RESOURCES . Y N
          9.c P35-8:P35-9 open checkpoint when SA_CKPT_CHECKPOINT_CREATE flag is not set, and the checkpoint, designated by checkpointName does not exist. Return value should be SA_AIS_ERR_NOT_EXIST. SA_CKPT_CHECKPOINT_CREATE flag is not set, and the checkpoint, designated by checkpointName does not exist. Return value should be SA_AIS_ERR_NOT_EXIST. Y Y
          10.c P35-10:P35-12 open checkpoint when the checkpoint already exists, and the checkpointCreationAttributes creation attributes are different from the ones used at creation time. Return value should be SA_AIS_ERR_EXIST. SA_AIS_ERR_EXIST. Y Y
          11.c P35-13:P35-15 open checkpoint when the checkpointOpenFlags parameter is invalid. Return value should be SA_AIS_ERR_BAD_FLAGS. SA_AIS_ERR_BAD_FLAGS. Y Y
          12.c P35-16:P35-22 open checkpoint with valid params. Same with 1.   Y Y

      • saCkptActiveReplicaSet(complete/total:12 /16)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P40-28:P40-31 Call saCkptActiveReplicaSet with a valid checkpoint handle. The api invocation returned value should be SA_AIS_OK. SA_AIS_OK Y Y
          1-2.c P40-28:P40-31 Call saCkptActiveReplicaSet with bad checkpoint handle which has not been opened successfully. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P40-33:P40-34 Call saCkptActiveReplicaSet with the checkpoint handle which is created with the collocated attribute and the asynchronous update option. The api invocation returned value should be SA_AIS_OK. Same with 1-1 SA_AIS_OK. Same with 1-1 Y Y
          2-2.c P40-33:P40-34 Call saCkptActiveReplicaSet with the checkpoint handle which is created without collocated attribute. The api invocation returned value should be SA_AIS_ERR_BAD_OPERATION. SA_AIS_ERR_BAD_OPERATION Y Y
          2-3.c P40-33:P40-34 Call saCkptActiveReplicaSet with the checkpoint handle which is created with the collocated attribute and the synchronous update option. The api invocation returned value should be SA_AIS_ERR_BAD_OPERATION. SA_AIS_ERR_BAD_OPERATION Y Y
          3.c P40-36:P40-37 Call saCkptActiveReplicaSet with the valid checkpoint handle. get the the status from replica, it will succeed.   Y Y
          4.c P40-39:P40-41 A local replica that was set active by the saCkptActiveReplicaSet() call and was not overridden by another call to saCkptActiveReplicaSet() on another node, remains active until the checkpoint expires or the replica is destroyed.   Y N
          5.c P41-2:P41-2 Call saCkptActiveReplicaSet with the valid checkpoint handle. The api invocation returned value should be SA_AIS_OK. Same with 1-1 SA_AIS_OK. Same with 1-1 Y Y
          6.c P41-4:P41-5 Test if saCkptActiveReplicaSet can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          7.c P41-7:P41-9 Test if saCkptActiveReplicaSet can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          8.c P41-10:P41-11 Test if saCkptActiveReplicaSet can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          9.c P41-15:P41-16 Call saCkptActiveReplicaSet with bad checkpoint handle which has not been opened successfully. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. Same with 1-2 SA_AIS_ERR_BAD_HANDLE. Same with 1-2 Y Y
          10.c P41-16:P41-17 Call saCkptActiveReplicaSet with bad checkpoint handle which has been closed. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          11.c P41-18:P41-19 Call saCkptActiveReplicaSet with bad checkpoint handle which has been opened but the its ckptHandle is finalized. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          12.c P41-21:P41-22 Call saCkptActiveReplicaSet with the checkpoint, designated by checkpointHandle, was not opened for write mode. The api invocation returned value should be SA_AIS_ERR_ACCESS. SA_AIS_ERR_ACCESS Y Y
          13.c P41-23:P41-24 Call saCkptActiveReplicaSet with the checkpoint, designated by checkpointHandle, was not created as a collocated checkpoint with the asynchronous update option. The api invocation returned value should be SA_AIS_ERR_BAD_OPERATION. Same with 2-2 SA_AIS_ERR_BAD_OPERATION. Same with 2-2 Y Y

      • saCkptCheckpointClose(complete/total:14 /17)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P36-11:P36-15 Call saCkptCheckpointClose without initialization. Returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          1-2.c P36-11:P36-15 Call saCkptCheckpointClose after finalization. Returned value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P36-11:P36-15 Call saCkptCheckpointClose with an invalid checkpointHandle which has been closed before. Returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          1-4.c P36-11:P36-15 Call saCkptCheckpointClose with valid params. Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          2.c P36-16:P36-20 Call saCkptCheckpointClose with valid params. Returned value should be SA_AIS_OK. Same with 1-4. SA_AIS_OK. Same with 1-4. Y Y
          3.c P36-21:P36-21 set checkpointHandle active after checkpointHandle is closed. Returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          4.c P36-22:P36-26 Call saCkptCheckpointClose after Calling the saCkptCheckpointUnlink. the checkpointHandle should be deleted.   Y Y
          5.c P36-27:P36-31 Call saCkptCheckpointClose when the retention duration expires. the checkpointHandle should be deleted .   Y Y
          6.c P36-32:P36-32 Test if all of its open checkpoint are closed ,when the process terminates . 6-fork.c is used as its child process   Y Y
          7.c P36-33:P36-37 Test if it cancels all pending callbacks ,when checkpoint is closed.   Y Y
          8.c P36-38:P36-40 Test if saCkptCheckpointClose can return SA_AIS_OK. Same with 1-4. SA_AIS_OK. Same with 1-4. Y Y
          9.c P36-41:P36-42 Test if saCkptCheckpointClose can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          10.c P37-1:P37-3 Test if saCkptCheckpointClose can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Y N
          11.c P37-4:P37-6 Test if saCkptCheckpointClose can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Y N
          12-1.c P37-7:P37-16 Test if saCkptCheckpointClose can return SA_AIS_ERR_BAD_HANDLE. when call with invalid params. Same with 1-1. SA_AIS_ERR_BAD_HANDLE. when call with invalid params. Same with 1-1. Y Y
          12-2.c P37-7:P37-16 Test if saCkptCheckpointClose can return SA_AIS_ERR_BAD_HANDLE. when call with the corresponding checkpoint has already been closed. Same with 1-3. SA_AIS_ERR_BAD_HANDLE. when call with the corresponding checkpoint has already been closed. Same with 1-3. Y Y
          12-3.c P37-7:P37-16 Test if saCkptCheckpointClose can return SA_AIS_ERR_BAD_HANDLE. when the handle ckptHandle is finalized. Same with 1-2. SA_AIS_ERR_BAD_HANDLE. when the handle ckptHandle is finalized. Same with 1-2. Y Y

      • saCkptCheckpointRetentionDurationSet(complete/total:13 /17)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P39-13:P39-15 Call saCkptCheckpointRetentionDurationSet with a valid checkpoint handle. The api invocation returned value should be SA_AIS_OK. SA_AIS_OK Y Y
          1-2.c P39-13:P39-15 Call saCkptCheckpointRetentionDurationSet with bad checkpoint handle which has not been opened successfully. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P39-17:P39-18 Call saCkptCheckpointRetentionDurationSet with SA_TIME_MAX as retention duration. The api invocation returned value should be SA_AIS_OK. SA_TIME_MAX as retention duration. The api invocation returned value should be SA_AIS_OK Y Y
          2-2.c P39-17:P39-18 Call saCkptCheckpointRetentionDurationSet with SA_TIME_ONE_MILLISECOND as retention duration. The api invocation returned value should be SA_AIS_OK. check if after the duration, the checkpoint has been deleted. Same with 1-1 SA_TIME_ONE_MILLISECOND as retention duration. The api invocation returned value should be SA_AIS_OK. check if after the duration, the checkpoint has been deleted. Same with 1-1 Y Y
          2-3.c P39-17:P39-18 Call saCkptCheckpointRetentionDurationSet with zero as retention duration. The api invocation returned value should be SA_AIS_OK. SA_AIS_OK Y Y
          3.c P39-22:P39-22 Call saCkptCheckpointRetentionDurationSet with SA_TIME_ONE_MILLISECOND as retention duration and valid checkpoint handle. The api invocation returned value should be SA_AIS_OK. Same with 1-1 SA_TIME_ONE_MILLISECOND as retention duration and valid checkpoint handle. The api invocation returned value should be SA_AIS_OK. Same with 1-1 Y Y
          4-1.c P39-23:P39-26 create a checkpoint and set the retention duration time, fork a sub-process sub-process opens the checkpoint, and close before retention duration. In main process, after retention duration, the checkpoint can't be opened.   Y Y
          4-2.c P39-23:P39-26 create a checkpoint and set the retention duration time, opens the checkpoint, and after retention duration, close it successfully because it hasn't been deleted.   Y Y
          5.c P39-29:P39:29 Call saCkptCheckpointRetentionDurationSet with SA_TIME_ONE_MILLISECOND as retention duration and valid checkpoint handle. The api invocation returned value should be SA_AIS_OK. Same with 1-1 SA_TIME_ONE_MILLISECOND as retention duration and valid checkpoint handle. The api invocation returned value should be SA_AIS_OK. Same with 1-1 Y Y
          6.c P39-31:P39-32 Test if saCkptCheckpointRetentionDurationSet can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          7.c P39-33:P39-35 Test if saCkptCheckpointRetentionDurationSet can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          8.c P39-37:P39-38 Test if saCkptCheckpointRetentionDurationSet can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          9.c P39-39:P40-2 Call saCkptCheckpointRetentionDurationSet with bad checkpoint handle which has not been opened successfully. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. Same with 1-2. SA_AIS_ERR_BAD_HANDLE. Same with 1-2 Y Y
          10.c P40-2:P40-3 Call saCkptCheckpointRetentionDurationSet with bad checkpoint handle which has been opened successfully but has been closed. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          11.c P40-4:P40-5 Call saCkptCheckpointRetentionDurationSet with bad checkpoint handle which has been opened successfully but its ckptHandle has been finalized. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          12.c P40-7:P40-7 Test if saCkptCheckpointRetentionDurationSet can return SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Y N
          13.c P40-8:P40-10 Call saCkptCheckpointRetentionDurationSet with the checkpoint handle which has been unlinked. The api invocation returned value should be SA_AIS_ERR_BAD_OPERATION. SA_AIS_ERR_BAD_OPERATION Y Y

      • saCkptCheckpointOpen(complete/total:43 /50)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P31-31:P31-32 Open checkpoint before initialization. Return value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          1-2.c P31-31:P31-32 Open checkpoint after finalization. Return value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P31-31:P31-32 Call api with valid params. Return value should be SA_AIS_OK. SA_AIS_OK Y Y
          2-1.c P31-37:P31-39 Call api with null checkpoint name input. Return value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Y Y
          2-2.c P31-37:P31-39 Call api with valid checkpoint name input and other valid params. Return value should be SA_AIS_OK. Same with 1-3. SA_AIS_OK. Same with 1-3. Y Y
          3-1.c P31-41:P32-2 Call api only to open an existing checkpoint with null create attribute ,SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Y Y
          3-2.c P31-41:P32-2 Call api only to open an existing checkpoint with null create attribute ,SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. Y Y
          3-3.c P31-41:P32-2 Call api only to open an existing checkpoint with null create attribute,SA_CKPT_CHECKPOINT_CREATE and other valid params. Return value should be SA_AIS_ERR_INVALID_PARAM. SA_CKPT_CHECKPOINT_CREATE and other valid params. Return value should be SA_AIS_ERR_INVALID_PARAM. Y Y
          3-4.c P31-41:P32-2 Call api only to open an existing checkpoint with non-null create attribute,SA_CKPT_CHECKPOINT_READ and other valid params. Return value should be SA_AIS_ERR_INVALID_PARAM. SA_CKPT_CHECKPOINT_READ and other valid params. Return value should be SA_AIS_ERR_INVALID_PARAM. Y Y
          4-1.c P32-3:P32-6 Call api to open and create a checkpoint with non-null and un-existing create attribute,SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value be SA_AIS_OK. SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value be SA_AIS_OK. Y Y
          4-2.c P32-3:P32-6 Call api to open and create a checkpoint with null create attribute,SA_CKPT_CHECKPOINT_CREATE and other valid params . Return value be SA_AIS_ERR_INVALID_PARAM. SA_CKPT_CHECKPOINT_CREATE and other valid params . Return value be SA_AIS_ERR_INVALID_PARAM. Y Y
          4-3.c P32-3:P32-6 Call api to open and create a checkpoint with non-null and un-existing create attribute,SA_CKPT_CHECKPOINT_READ(without SA_CKPT_CHECKPOINT_CREATE)and other valid params. Return value should be SA_AIS_ERR_INVALID_PARAM. SA_CKPT_CHECKPOINT_READ(without SA_CKPT_CHECKPOINT_CREATE)and other valid params. Return value should be SA_AIS_ERR_INVALID_PARAM. Y Y
          5-1.c P32-6:P32-8 Call api to open and create a checkpoint with existing create attribute,SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Y Y
          5-2.c P32-6:P32-8 Call api to open an existing checkpoint with SA_CKPT_CHECKPOINT_CREATE and other valid params except creationFlags does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. SA_CKPT_CHECKPOINT_CREATE and other valid params except creationFlags does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. Y Y
          5-3.c P32-6:P32-8 Call api to open an existing checkpoint with SA_CKPT_CHECKPOINT_CREATE and other valid params except checkpointSize does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. SA_CKPT_CHECKPOINT_CREATE and other valid params except checkpointSize does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. Y Y
          5-4.c P32-6:P32-8 Call api to open an existing checkpoint with SA_CKPT_CHECKPOINT_CREATE and other valid params except retentionDuration does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. SA_CKPT_CHECKPOINT_CREATE and other valid params except retentionDuration does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. Y Y
          5-5.c P32-6:P32-8 Call api to open an existing checkpoint with SA_CKPT_CHECKPOINT_CREATE and other valid params except maxSections does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. SA_CKPT_CHECKPOINT_CREATE and other valid params except maxSections does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. Y Y
          5-6.c P32-6:P32-8 Call api to open an existing checkpoint with SA_CKPT_CHECKPOINT_CREATE and other valid params except maxSectionSize does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. SA_CKPT_CHECKPOINT_CREATE and other valid params except maxSectionSize does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. Y Y
          5-7.c P32-6:P32-8 Call api to open an existing checkpoint with SA_CKPT_CHECKPOINT_CREATE and other valid params except maxSectionIdSize does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. SA_CKPT_CHECKPOINT_CREATE and other valid params except maxSectionIdSize does not match the one used at the creation time in the create attribute . Return value should be SA_AIS_ERR_EXIST. Y Y
          6-1.c P32-9:P32-11 Call api to create a checkpoint with SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Same with 4-1. SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Same with 4-1. Y Y
          6-2.c P32-9:P32-11 Call api to create a checkpoint with SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. Y Y
          6-3.c P32-9:P32-11 Call api to open an existing checkpoint with SA_CKPT_CHECKPOINT_WRITE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. SA_CKPT_CHECKPOINT_WRITE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Y Y
          6-4.c P32-9:P32-11 Call api to create and open an checkpoint with invalid checkpointFlags and other valid params . Return value should be SA_AIS_ERR_BAD_FLAGS. SA_AIS_ERR_BAD_FLAGS. Y Y
          7-1.c P32-12:P32-15 Call api with timeout value SA_TIME_MAX and other valid params. Return value should be SA_AIS_OK. Same with 1-3 . SA_TIME_MAX and other valid params. Return value should be SA_AIS_OK. Same with 1-3 . Y Y
          7-2.c P32-12:P32-15 Call api with timeout value SA_TIME_BEGIN and other valid params. Return value should be SA_AIS_OK. SA_TIME_BEGIN and other valid params. Return value should be SA_AIS_OK. Y Y
          8-1.c P32-16:P32-22 Call api with null checkpointHandle and other params. Return value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Y Y
          8-2.c P32-16:P32-22 Call api with valid checkpointHandle and other params. Return value should be SA_AIS_OK. Same with 1-3 . SA_AIS_OK. Same with 1-3 . Y Y
          9-1.c P32-23:P32-27 Call api only to open an existing checkpoint with null create attribute ,SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Same with 3-1 . SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Same with 3-1 . Y Y
          9-2.c P32-23:P32-27 Call api to open and create a checkpoint with non-null create attribute,SA_CKPT_CHECKPOINT_CREATE and other valid params . Return value be SA_AIS_OK. Same with 4-1 . SA_CKPT_CHECKPOINT_CREATE and other valid params . Return value be SA_AIS_OK. Same with 4-1 . Y Y
          10-1.c P32-28:P32-31 Call api to open an existing checkpoint multiple times for reading or writing in the same process. Return value be SA_AIS_OK . SA_AIS_OK . Y Y
          10-2.c P32-28:P32-31 Call api to open an existing checkpoint multiple times for reading or writing in different processes. Return value be SA_AIS_OK . SA_AIS_OK . Y Y
          11.c P32-34:P32-36 Test whether the checkpoint which has been created with SA_CKPT_WR_ALL_REPLICAS , is identified to the other checkpoint replica . SA_CKPT_WR_ALL_REPLICAS , is identified to the other checkpoint replica . Y N
          12.c P32-37:P32-38 Test whether the checkpoint which has been created without SA_CKPT_WR_ALL_REPLICAS ,is identified to the actived checkpoint replica . SA_CKPT_WR_ALL_REPLICAS ,is identified to the actived checkpoint replica . Y N
          13-1.c P32-39:P32-43 Call api to create a checkpoint with SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Same with 6-1 . SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_READ and other valid params . Return value should be SA_AIS_OK. Same with 6-1 . Y Y
          13-2.c P32-39:P32-43 Call api to create a checkpoint with SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. Same with 6-2 . SA_CKPT_CHECKPOINT_CREATE | SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. Same with 6-2 . Y Y
          13-3.c P32-39:P32-43 Call api to create a checkpoint with SA_CKPT_CHECKPOINT_READ | SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. Same with 6-3 . SA_CKPT_CHECKPOINT_READ | SA_CKPT_CHECKPOINT_WRITE and other valid params . Return value should be SA_AIS_OK. Same with 6-3 . Y Y
          14.c P33-10:P33-12 Test whether the API saCkptCheckpointOpen can return the value SA_AIS_OK . Same with 1-3 . SA_AIS_OK . Same with 1-3 . Y Y
          15.c P33-13:P33-15 Test whether the API saCkptCheckpointOpen can return the value SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          16.c P33-16:P33-18 Test whether the API saCkptCheckpointOpen can return the value SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Y N
          17.c P33-19:P33-21 Test whether the API saCkptCheckpointOpen can return the value SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          18.c P33-22:P33-23 Test whether the API saCkptCheckpointOpen can return the value SA_AIS_ERR_BAD_HANDLE. Same with 1-2. SA_AIS_ERR_BAD_HANDLE. Same with 1-2. Y Y
          19.c P33-27:P33-28 Test whether the API saCkptCheckpointOpen can return the value SA_AIS_ERR_INVALID_PARAM. Same with 8-1. SA_AIS_ERR_INVALID_PARAM. Same with 8-1. Y Y
          20.c P33-29:P33-32 Test whether the API saCkptCheckpointOpen can return the value SA_AIS_ERR_INVALID_PARAM,when checkpointSize is less than maxSections * maxSectionSize . SA_AIS_ERR_INVALID_PARAM,when checkpointSize is less than maxSections * maxSectionSize . Y Y
          21.c P33-33:P33-34 Test whether the API saCkptCheckpointOpen can return the value SA_AIS_ERR_INVALID_PARAM, when SA_CKPT_CHECKPOINT_CREATE is not set and checkpointCreationAttributes is not NULL. SA_AIS_ERR_INVALID_PARAM, when SA_CKPT_CHECKPOINT_CREATE is not set and checkpointCreationAttributes is not NULL. Y Y
          22.c P33-35:P33-36 Test whether the API saCkptCheckpointOpen can return the value SA_AIS_ERR_INVALID_PARAM,when SA_CKPT_CHECKPOINT_CREATE is set, and checkpointCreationAttributes is NULL. Same with 3-3 . SA_AIS_ERR_INVALID_PARAM,when SA_CKPT_CHECKPOINT_CREATE is set, and checkpointCreationAttributes is NULL. Same with 3-3 . Y Y
          23.c P33-37:P33-39 Test whether the API saCkptCheckpointOpen can return the value SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY. Y N
          24.c P33-40:P33-41 Test whether the API saCkptCheckpointOpen can return the value SA_AIS_ERR_NO_RESOURCES. SA_AIS_ERR_NO_RESOURCES. Y N
          25.c P34-1:P34-3 Test whether the API saCkptCheckpointOpen can return the value SA_AIS_ERR_NOT_EXIST. SA_AIS_ERR_NOT_EXIST. Y Y
          26.c P34-4:P34-6 Test whether the API saCkptCheckpointOpen can return the value SA_AIS_ERR_EXIST. Same with 5-2 . SA_AIS_ERR_EXIST. Same with 5-2 . Y Y
          27.c P34-7:P34-7 Test whether the API saCkptCheckpointOpen can return the value SA_AIS_ERR_BAD_FLAGS. Same with 6-4 . SA_AIS_ERR_BAD_FLAGS. Same with 6-4 . Y Y

      • saCkptCheckpointStatusGet(complete/total:13 /16)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P42-13:P42-16 Call saCkptCheckpointStatusGet with a valid checkpoint handle. The api invocation returned value should be SA_AIS_OK. SA_AIS_OK Y Y
          1-2.c P42-13:P42-16 Call saCkptCheckpointStatusGet with bad checkpoint handle which has not been opened successfully. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P42-18:P42-20 Call saCkptCheckpointStatusGet with a null checkpointStatus pointer The api invocation returned value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM Y Y
          2-2.c P42-18:P42-20 Call saCkptCheckpointStatusGet with a valid checkpointStatus pointer The api invocation returned value should be SA_AIS_OK. Same with 1-1 SA_AIS_OK. Same with 1-1 Y Y
          3-1.c P42-23:P42-27 Call saCkptCheckpointStatusGet with a checkpoint handle which was created using SA_CKPT_WR_ACTIVE_REPLICA option, the obtained status is from active replica. SA_CKPT_WR_ACTIVE_REPLICA option, the obtained status is from active replica Y Y
          3-2.c P42-23:P42-27 Call saCkptCheckpointStatusGet with a checkpoint handle which was created using SA_CKPT_WR_ACTIVE_REPLICA_WEAK option, the obtained status is from active replica. SA_CKPT_WR_ACTIVE_REPLICA_WEAK option, the obtained status is from active replica Y Y
          4.c P42-28:P42-30 Call saCkptCheckpointStatusGet with a checkpoint handle which was created using SA_CKPT_WR_ALL_REPLICAS option. Check the obtained status information. The api invocation returned value should be SA_AIS_OK. SA_CKPT_WR_ALL_REPLICAS option. Check the obtained status information. The api invocation returned value should be SA_AIS_OK Y Y
          5.c P42-33:P42-33 Call saCkptCheckpointStatusGet with the valid checkpoint handle. The api invocation returned value should be SA_AIS_OK. Same with 1-1 SA_AIS_OK. Same with 1-1 Y Y
          6.c P42-35:P42-36 Test if saCkptCheckpointStatusGet can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          7.c P42-37:P42-39 Test if saCkptCheckpointStatusGet can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          8.c P42-41:P42-42 Test if saCkptCheckpointStatusGet can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          9.c P43-1:P43-4 Call saCkptCheckpointStatusGet with bad checkpoint handle which has not been opened successfully. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. Same with 1-2. SA_AIS_ERR_BAD_HANDLE. Same with 1-2 Y Y
          10.c P43-4:P43-5 Call saCkptCheckpointStatusGet with bad checkpoint handle which has been opened successfully but has been closed. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          11.c P43-7:P43-8 Call saCkptCheckpointStatusGet with bad checkpoint handle which has been opened successfully but its ckptHandle has been finalized. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          12.c P43-9:P43-9 Call saCkptCheckpointStatusGet which a null pointer as parameter The api invocation returned value should be SA_AIS_ERR_INVALID_PARAM Same with 2-1 SA_AIS_ERR_INVALID_PARAM Same with 2-1 Y Y
          13.c P43-11:P43-11 Call saCkptCheckpointStatusGet but have not set the active replica The api invocation returned value should be SA_AIS_ERR_NOT_EXIST SA_AIS_ERR_NOT_EXIST Y Y

    • section_management(complete/total:91/128)
      • saCkptSectionCreate(complete/total:22 /32)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P43-34:P43-38 Invoke saCkptSectionCreate with invalid checkpointHandle, which is not obtained via the saCkptCheckpointOpen() or saCkptCheckpointOpenCallback() functions, Returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          1-2.c P43-34:P43-38 Invoke saCkptSectionCreate with valid params. Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          2-1.c P43-39:P43-41 Invoke saCkptSectionCreate with NULL sectionCreationAttributes. Returned value should be SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Y Y
          2-2.c P43-39:P43-41 Invoke saCkptSectionCreate with valid sectionCreationAttributes. Returned value should be SA_AIS_OK Same with 1-2. SA_AIS_OK Same with 1-2. Y Y
          3-1.c P44-1:P44-3 Invoke saCkptSectionCreate with NULL initialData. Returned value should be SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Y Y
          3-2.c P44-1:P44-3 Invoke saCkptSectionCreate with valid initialData. Returned value should be SA_AIS_OK. Same with 1-2. SA_AIS_OK. Same with 1-2. Y Y
          4-1.c P44-4:P44-7 Invoke saCkptSectionCreate with initialDataSize set to 0. Returned value should be SA_AIS_OK SA_AIS_OK Y Y
          4-2.c P44-4:P44-7 Invoke saCkptSectionCreate with initialDataSize > maxSectionSize. Returned value should be SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Y Y
          4-3.c P44-4:P44-7 Invoke saCkptSectionCreate with valid initialDataSize. Returned value should be SA_AIS_OK. Same with 1-2. SA_AIS_OK. Same with 1-2. Y Y
          5-1.c P44-8:P44-11 Inovke saCkptSectionCreate with total number of existing sections is less than the maximum number of sections Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          5-2.c P44-8:P44-11 Inovke saCkptSectionCreate with total number of existing sections is greater than the maximum number of sections Returned value should be SA_AIS_ERR_NO_SPACE. SA_AIS_ERR_NO_SPACE. Y Y
          6.c P44-12:P44-14 Test if the section will be deleted when the expirationTime is reached.   Y Y
          7.c P44-15:P44-15 Test if the checkpoint has one section that is created automatically when the checkpoint has been created to have only one section.   Y Y
          8-1.c P44-16:P44-21 Invoke saCkptSectionCreate when the checkpoint opened with the SA_CKPT_WR_ALL_REPLICAS property,Test if every replicas has the session created. SA_CKPT_WR_ALL_REPLICAS property,Test if every replicas has the session created. Y N
          8-2.c P44-16:P44-21 Invoke saCkptSectionCreate when the checkpoint opened with other flags except SA_CKPT_WR_ALL_REPLICAS,Test if active replicas has the session created. SA_CKPT_WR_ALL_REPLICAS,Test if active replicas has the session created. Y N
          8-3.c P44-16:P44-21 Invoke saCkptSectionCreate when the checkpoint opened with other flags except SA_CKPT_WR_ALL_REPLICAS,Test if replicases have the session created after calling saCkptCheckpointSynchronize. SA_CKPT_WR_ALL_REPLICAS,Test if replicases have the session created after calling saCkptCheckpointSynchronize. Y N
          8-4.c P44-16:P44-21 Invoke saCkptSectionCreate when the checkpoint opened with other flags except SA_CKPT_WR_ALL_REPLICAS,when no active replicas exists. Return value should be SA_AIS_ERR_NOT_EXIST. SA_CKPT_WR_ALL_REPLICAS,when no active replicas exists. Return value should be SA_AIS_ERR_NOT_EXIST. Y N
          9.c P44-22:P44-24 Test if saCkptSectionCreate can return SA_AIS_OK. Same with 1-2. SA_AIS_OK. Same with 1-2. Y Y
          10.c P44-25:P44-27 Test if saCkptSectionCreate can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          11.c P44-28:P44-30 Test if saCkptSectionCreate can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Y N
          12.c P44-31:P44-33 Test if saCkptSectionCreate can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Y N
          13-1.c P44-34:P44-39 Test if saCkptSectionCreate can return SA_AIS_ERR_BAD_HANDLE when invoke saCkptSectionCreate with invalid checkpointHandle, while the corresponding checkpoint has already been closed. SA_AIS_ERR_BAD_HANDLE when invoke saCkptSectionCreate with invalid checkpointHandle, while the corresponding checkpoint has already been closed. Y Y
          13-2.c P44-34:P44-39 Test if saCkptSectionCreate can return SA_AIS_ERR_BAD_HANDLE when invoke saCkptSectionCreate with invalid checkpointHandle, which is not obtained via the saCkptCheckpointOpen or saCkptCheckpointOpenCallback functions . Same with 1-1. SA_AIS_ERR_BAD_HANDLE when invoke saCkptSectionCreate with invalid checkpointHandle, which is not obtained via the saCkptCheckpointOpen or saCkptCheckpointOpenCallback functions . Same with 1-1. Y Y
          14.c P44-40:P44-42 Test if saCkptSectionCreate can return SA_AIS_ERR_BAD_HANDLE when invoking saCkptSectionCreate after finalization. SA_AIS_ERR_BAD_HANDLE when invoking saCkptSectionCreate after finalization. Y Y
          15.c P45-1:P45-2 Test if saCkptSectionCreate can return SA_AIS_ERR_INVALID_PARAM Same with 2-1. SA_AIS_ERR_INVALID_PARAM Same with 2-1. Y Y
          16.c P45-3:P45-4 Test if saCkptSectionCreate can return SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY. Y N
          17.c P45-5:P45-6 Test if saCkptSectionCreate can return SA_AIS_ERR_NO_RESOURCES. SA_AIS_ERR_NO_RESOURCES. Y N
          18.c P45-7:P45-10 Test if saCkptSectionCreate can return SA_AIS_ERR_NO_SPACE. Same with 5-2. SA_AIS_ERR_NO_SPACE. Same with 5-2. Y Y
          19.c P45-11:P45-11 Test if saCkptSectionCreate can return SA_AIS_ERR_NOT_EXIST. SA_AIS_ERR_NOT_EXIST. Y N
          20.c P45-12:P45-13 Test if saCkptSectionCreate can return SA_AIS_ERR_ACCESS. SA_AIS_ERR_ACCESS. Y Y
          21-1.c P45-14:P45-17 Test if saCkptSectionCreate can return SA_AIS_ERR_EXIST. when the section, defined in sectionCreationAttributes, already exists, SA_AIS_ERR_EXIST. when the section, defined in sectionCreationAttributes, already exists, Y Y
          21-2.c P45-14:P45-17 Test if saCkptSectionCreate can return SA_AIS_ERR_EXIST. when the checkpoint opened with only having one section. SA_AIS_ERR_EXIST. when the checkpoint opened with only having one section. Y Y

      • saCkptSectionIterationInitialize(complete/total:19 /23)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P49-15:P49-19 Invoke saCkptSectionIterationInitialize with invalid checkpointHandle,which is not obtained via the saCkptCheckpointOpen() or saCkptCheckpointOpenCallback() functions, Returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          1-2.c P49-15:P49-19 Invoke saCkptSectionIterationInitialize with valid params. Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          2-1.c P49-20:P49-23 Invoke saCkptSectionIterationInitialize with invalid SaCkptSectionsChosenT. Returned value should be SA_AIS_ERR_INVALID_PARAM . SA_AIS_ERR_INVALID_PARAM . Y Y
          2-2.c P49-20:P49-23 Invoke saCkptSectionIterationInitialize with SA_CKPT_SECTIONS_FOREVER, Test if returned sectionIterationHandle match the criteria specified in sectionsChosen. SA_CKPT_SECTIONS_FOREVER, Test if returned sectionIterationHandle match the criteria specified in sectionsChosen. Y Y
          2-3.c P49-20:P49-23 Invoke saCkptSectionIterationInitialize with SA_CKPT_SECTIONS_LEQ_EXPIRATION_TIME,Test if returned sectionIterationHandle match the criteria specified in sectionsChosen. SA_CKPT_SECTIONS_LEQ_EXPIRATION_TIME,Test if returned sectionIterationHandle match the criteria specified in sectionsChosen. Y Y
          2-4.c P49-20:P49-23 Invoke saCkptSectionIterationInitialize with SA_CKPT_SECTIONS_GEQ_EXPIRATION_TIME,Test if returned sectionIterationHandle match the criteria specified in sectionsChosen. SA_CKPT_SECTIONS_GEQ_EXPIRATION_TIME,Test if returned sectionIterationHandle match the criteria specified in sectionsChosen. Y Y
          2-5.c P49-20:P49-23 Invoke saCkptSectionIterationInitialize with SA_CKPT_SECTIONS_CORRUPTED.Test if returned sectionIterationHandle match the criteria specified in sectionsChosen. SA_CKPT_SECTIONS_CORRUPTED.Test if returned sectionIterationHandle match the criteria specified in sectionsChosen. Y N
          2-6.c P49-20:P49-23 Invoke saCkptSectionIterationInitialize with SA_CKPT_SECTIONS_ANY.Test if returned sectionIterationHandle match the criteria specified in sectionsChosen. SA_CKPT_SECTIONS_ANY.Test if returned sectionIterationHandle match the criteria specified in sectionsChosen. Y Y
          3-1.c P49-24:P49-26 Invoke saCkptSectionIterationInitialize with valid expirationTime. Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          3-2.c P49-24:P49-26 Invoke saCkptSectionIterationInitialize with valid expirationTime. Returned value should be SA_AIS_OK. Same with 1-2. SA_AIS_OK. Same with 1-2. Y Y
          4-1.c P49-27:P49-35 Invoke saCkptSectionIterationInitialize with NULL sectionIterationHandle. Returned value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Y Y
          4-2.c P49-27:P49-35 Invoke saCkptSectionIterationInitialize with valid sectionIterationHandle. Returned value should be SA_AIS_OK. Same with 1-2. SA_AIS_OK. Same with 1-2. Y Y
          5.c P49-36:P49-40 Invoke saCkptSectionIterationInitialize with valid params. Returned value should be SA_AIS_OK. Same with 1-2. SA_AIS_OK. Same with 1-2. Y Y
          6.c P50-1:P50-3 Test if saCkptSectionIterationInitialize can return SA_AIS_OK. Same with 1-2. SA_AIS_OK. Same with 1-2. Y Y
          7.c P50-4:P50-5 Test if saCkptSectionIterationInitialize can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          8.c P50-6:P50-9 Test if saCkptSectionIterationInitialize can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Y N
          9.c P50-10:P50-12 Test if saCkptSectionIterationInitialize can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Y N
          10-1.c P50-13:P50-17 Test if saCkptSectionIterationInitialize can return SA_AIS_ERR_BAD_HANDLE when the checkpoint is not obtained via saCkptCheckpointOpen or saCkptCheckpointOpenAsync. Same with 1-1. SA_AIS_ERR_BAD_HANDLE when the checkpoint is not obtained via saCkptCheckpointOpen or saCkptCheckpointOpenAsync. Same with 1-1. Y Y
          10-2.c P50-13:P50-17 Test if saCkptSectionIterationInitialize can return SA_AIS_ERR_BAD_HANDLE when the checkpoint is closed. SA_AIS_ERR_BAD_HANDLE when the checkpoint is closed. Y Y
          11.c P50-18:P50-20 Test if saCkptSectionIterationInitialize can return SA_AIS_ERR_BAD_HANDLE after finalization. SA_AIS_ERR_BAD_HANDLE after finalization. Y Y
          12.c P50-21:P50-21 Test if saCkptSectionIterationInitialize can return SA_AIS_ERR_INVALID_PARAM Same with 2-1. SA_AIS_ERR_INVALID_PARAM Same with 2-1. Y Y
          13.c P50-22:P50-22 Test if saCkptSectionIterationInitialize can return SA_AIS_ERR_NOT_EXIST if no active replica. SA_AIS_ERR_NOT_EXIST if no active replica. Y Y

      • saCkptSectionIterationFinalize(complete/total:8 /12)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P53-12:P53-14 Call saCkptSectionIterationFinalize with all valid parameters. The api invocation returned value should be SA_AIS_OK. SA_AIS_OK Y Y
          1-2.c P53-12:P53-14 Call saCkptSectionIterationFinalize with an invalid sectionIterationHandle. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          2.c P53-17:P53-17 Check if after the saCkptSectionIterationFinalize, the sectionIterationHandle are released.   Y Y
          3.c P53-20:P53-20 Call saCkptSectionIterationFinalize with all valid parameters. The api invocation returned value should be SA_AIS_OK. Same with 1-1 SA_AIS_OK. Same with 1-1 Y Y
          4.c P53-22:P53-23 Test if saCkptSectionIterationFinalize can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          5.c P53-25:P53-27 Test if saCkptSectionIterationFinalize can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          6.c P53-28:P53-29 Test if saCkptSectionIterationFinalize can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          7.c P53-31:P53-34 Call saCkptSectionIterationFinalize with an uninitialized sectionIterationHandle. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. Same with 1-2 SA_AIS_ERR_BAD_HANDLE. Same with 1-2 Y Y
          8.c P53-35:P53-35 Call saCkptSectionIterationFinalize with an finialized sectionIterationHandle. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          9.c P53-36:P53-37 Call saCkptSectionIterationFinalize with an sectionIterationHandle whose checkpoint has been closed. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          10.c P53-38:P53-39 Call saCkptSectionIterationFinalize with an sectionIterationHandle whose ckptHandle has been finalized. The api invocation returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          11.c P53-41:P53-41 Call saCkptSectionIterationFinalize while has no active repilca set. The api invocation returned value should be SA_AIS_ERR_NOT_EXIST. SA_AIS_ERR_NOT_EXIST Y N

      • saCkptSectionDelete(complete/total:13 /20)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P45-34:P45-39 Invoke saCkptSectionDelete with invalid checkpointHandle, which is not obtained via the saCkptCheckpointOpen() or saCkptCheckpointOpenCallback() functions, Returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          1-2.c P45-34:P45-39 Invoke saCkptSectionDelete with valid params. Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          2-1.c P45-40:P45-40 Invoke saCkptSectionDelete with NULL sectionId. Returned value should be SA_AIS_ERR_INVALID_PARAM . SA_AIS_ERR_INVALID_PARAM . Y Y
          2-2.c P45-40:P45-40 Invoke saCkptSectionDelete with invalid sectionId .the section identified by it, does not exist. Returned value should be SA_AIS_ERR_NOT_EXIST . SA_AIS_ERR_NOT_EXIST . Y Y
          2-3.c P45-40:P45-40 Invoke saCkptSectionDelete with valid params Returned value should be SA_AIS_OK. Same with 1-2. SA_AIS_OK. Same with 1-2. Y Y
          3-1.c P46-1:P46-6 Invoke saCkptSectionDelete when the checkpoint opened with the SA_CKPT_WR_ALL_REPLICAS property,Test if every replicas has the session deleted. SA_CKPT_WR_ALL_REPLICAS property,Test if every replicas has the session deleted. Y N
          3-2.c P46-1:P46-6 Invoke saCkptSectionDelete when the checkpoint opened with other flags except SA_CKPT_WR_ALL_REPLICAS,Test if active replicas has the session deleted. SA_CKPT_WR_ALL_REPLICAS,Test if active replicas has the session deleted. Y N
          3-3.c P46-1:P46-6 Invoke saCkptSectionDelete when the checkpoint opened with other flags except SA_CKPT_WR_ALL_REPLICAS,Test if replicases have the session deleted after calling saCkptCheckpointSynchronize. SA_CKPT_WR_ALL_REPLICAS,Test if replicases have the session deleted after calling saCkptCheckpointSynchronize. Y N
          4.c P46-7:P46-9 Invoke saCkptSectionDelete to delete the section which identified by SA_CKPT_DEFAULT_SECTION_ID. Returned value should be SA_AIS_ERR_INVALID_PARAM. SA_CKPT_DEFAULT_SECTION_ID. Returned value should be SA_AIS_ERR_INVALID_PARAM. Y Y
          5.c P46-10:P46-11 Test if saCkptSectionDelete can return SA_AIS_OK. Same with 1-2. SA_AIS_OK. Same with 1-2. Y Y
          6.c P46-12:P46-15 Test if saCkptSectionDelete can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          7.c P46-16:P46-18 Test if saCkptSectionDelete can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Y N
          8.c P46-19:P46-21 Test if saCkptSectionDelete can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Y N
          9-1.c P46-22:P46-27 Test if saCkptSectionDelete can return SA_AIS_ERR_BAD_HANDLE when the checkpoint is invalid which is not obtained via saCkptCheckpointOpen or saCkptCheckpointCallback. Same with 1-1. SA_AIS_ERR_BAD_HANDLE when the checkpoint is invalid which is not obtained via saCkptCheckpointOpen or saCkptCheckpointCallback. Same with 1-1. Y Y
          9-2.c P46-22:P46-27 Test if saCkptSectionDelete can return SA_AIS_ERR_BAD_HANDLE when the corresponding checkpoint has already been closed. SA_AIS_ERR_BAD_HANDLE when the corresponding checkpoint has already been closed. Y Y
          10.c P46-28:P46-31 Test if saCkptSectionDelete can return SA_AIS_ERR_BAD_HANDLE after finalization. SA_AIS_ERR_BAD_HANDLE after finalization. Y Y
          11.c P46-32:P46-32 Test if saCkptSectionDelete can return SA_AIS_ERR_INVALID_PARAM Same with 2-1. SA_AIS_ERR_INVALID_PARAM Same with 2-1. Y Y
          12-1.c P46-33:P46-34 Test if saCkptSectionDelete can return SA_AIS_ERR_NOT_EXIST. when the sectionId is invalid. Same with 2-2. SA_AIS_ERR_NOT_EXIST. when the sectionId is invalid. Same with 2-2. Y Y
          12-2.c P46-33:P46-34 Test if saCKptSectionDelete can return SA_AIS_ERR_NOT_EXIST, when no active replica exist. SA_AIS_ERR_NOT_EXIST, when no active replica exist. Y N
          13.c P46-35:P46-36 Test if saCkptSectionDelete can return SA_AIS_ERR_ACCESS. SA_AIS_ERR_ACCESS. Y Y

      • saCkptSectionExpirationTimeSet(complete/total:16 /22)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P47-14:P47-19 Invoke saCkptSectionExpirationTimeSet with invalid checkpointHandle,which is not obtained via the saCkptCheckpointOpen() or saCkptCheckpointOpenCallback() functions, Returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          1-2.c P47-14:P47-19 Invoke saCkptSectionExpirationTimeSet with valid params. Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          2-1.c P47-20:P47-21 Invoke saCkptSectionExpirationTimeSet with NULL sectionId. Returned value should be SA_AIS_ERR_INVALID_PARAM . SA_AIS_ERR_INVALID_PARAM . Y Y
          2-2.c P47-20:P47-21 Invoke saCkptSectionExpirationTimeSet with invalid sectionId. the section identified by it, does not exist. Returned value should be SA_AIS_ERR_NOT_EXIST . SA_AIS_ERR_NOT_EXIST . Y Y
          2-3.c P47-20:P47-21 Invoke saCkptSectionExpirationTimeSet with valid params Returned value should be SA_AIS_OK. Same with 1-2. SA_AIS_OK. Same with 1-2. Y Y
          3-1.c P47-22:P47-25 Invoke saCkptSectionExpirationTimeSet with valid expirationTime.when checkpoint is open. and then test if the checkpoint will automatically deleted when expirationtime is over.   Y Y
          3-2.c P47-22:P47-25 Invoke saCkptSectionExpirationTimeSet with valid expirationTime.when checkpoint is close. and then test if the checkpoint will automatically deleted when expirationtime is over.   Y Y
          4.c P47-26:P47-28 Invoke saCkptSectionExpirationTimeSet with SA_TIME_END expirationTime Test if the checkpoint can't be automatically deleted. SA_TIME_END expirationTime Test if the checkpoint can't be automatically deleted. Y N
          5.c P47-29:P47-32 Invoke saCkptSectionExpirationTimeSet with valid params. Returned value should be SA_AIS_OK. Same with 1-2. SA_AIS_OK. Same with 1-2. Y Y
          6-1.c P47-33:P47-35 ` Invoke saCkptSectionExpirationTimeSet to change the expirationTime of default section, Returned value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Y Y
          6-2.c P47-33:P47-35 Test if default section can't be automatically deleted.   Y N
          7.c P47-36:P47-38 Test if saCkptSectionExpirationTimeSet can return SA_AIS_OK. Same with 1-2. SA_AIS_OK. Same with 1-2. Y Y
          8.c P47-39:P47-40 Test if saCkptSectionExpirationTimeSet can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          9.c P48-1:P48-3 Test if saCkptSectionExpirationTimeSet can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Y N
          10.c P48-4:P48-6 Test if saCkptSectionExpirationTimeSet can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Y N
          11-1.c P48-7:P48-11 Test if saCkptSectionExpirationTimeSet can return SA_AIS_ERR_BAD_HANDLE when the checkpoint is not obtained via saCkptCheckpointOpen or saCkptCheckpointOpenCallback. Same with 1-1. SA_AIS_ERR_BAD_HANDLE when the checkpoint is not obtained via saCkptCheckpointOpen or saCkptCheckpointOpenCallback. Same with 1-1. Y Y
          11-2.c P48-7:P48-11 Test if saCkptSectionExpirationTimeSet can return SA_AIS_ERR_BAD_HANDLE when the checkpoint is closed SA_AIS_ERR_BAD_HANDLE when the checkpoint is closed Y Y
          12.c P48-12:P48-16 Test if saCkptSectionExpirationTimeSet can return SA_AIS_ERR_BAD_HANDLE after finalization. SA_AIS_ERR_BAD_HANDLE after finalization. Y Y
          13.c P48-17:P48-18 Test if saCkptSectionExpirationTimeSet can return SA_AIS_ERR_INVALID_PARAM Same with 2-1. SA_AIS_ERR_INVALID_PARAM Same with 2-1. Y Y
          14.c P48-19:P48-20 Test if saCkptSectionExpirationTimeSet can return SA_AIS_ERR_ACCESS. SA_AIS_ERR_ACCESS. Y Y
          15-1.c P48-21:P48-21 Test if saCkptSectionExpirationTimeSet can return SA_AIS_ERR_NOT_EXIST.when no active replica exists . SA_AIS_ERR_NOT_EXIST.when no active replica exists . Y N
          15-2.c P48-21:P48-21 Test if saCkptSectionExpirationTimeSet can return SA_AIS_ERR_NOT_EXIST.when the section identified by sectionId doesn't exist. Same with 2-2. SA_AIS_ERR_NOT_EXIST.when the section identified by sectionId doesn't exist. Same with 2-2. Y Y

      • saCkptSectionIterationNext(complete/total:13 /19)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P51-11:P51-16 Invoke saCkptSectionIterationNext with invalid sectionIterationHandle,which is not obtained via the saCkptSectionIterationInitialize Returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          1-2.c P51-11:P51-16 Invoke saCkptSectionIterationNext with valid params. Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          2-1.c P51-17:P51-20 Invoke saCkptSectionIterationNext with NULL sectionDescriptor. Returned value should be SA_AIS_ERR_INVALID_PARAM . SA_AIS_ERR_INVALID_PARAM . Y Y
          2-2.c P51-17:P51-20 Invoke saCkptSectionIterationNext with valid params. Returned value should be SA_AIS_OK . Same with 1-2. SA_AIS_OK . Same with 1-2. Y Y
          3-1.c P51-21:P51-26 Invoke saCkptSectionIterationNext and then invoke saCkptSectionIterationFinalize.Test if the Checkpoint Service releases this memory.   Y N
          3-2.c P51-21:P51-26 Invoke saCkptSectionIterationNext and then invoke saCkptFinalize.Test if the Checkpoint service releases this memory.   Y N
          4-1.c P51-29:P51-34 Invoke saCkptSectionIterationNext with valid params. when at least one section can be returned. Returned value should be SA_AIS_OK Same with 1-2. SA_AIS_OK Same with 1-2. Y Y
          4-2.c P51-29:P51-34 Invoke saCkpteSectionDelete with valid params,but no more section can be returned. Returned value should be SA_AIS_ERR_NO_SECTIONS. SA_AIS_ERR_NO_SECTIONS. Y Y
          5.c P51-35:P51-40 Invoke saCkptSectionCreate many times, some are before saCkptSectionIterationInitialize,others are after it. Returned value should greater than or equal to the number of section created before saCkptSectionIterationInitialize.   Y Y
          6.c P51-41:P51-42 Test if saCkptSectionIterationNext can return SA_AIS_OK. Same with 1-2. SA_AIS_OK. Same with 1-2. Y Y
          7.c P52-1:P52-2 Test if saCkptSectionIterationNext can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          8.c P52-3:P52-6 Test if saCkptSectionIterationNext can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Y N
          9.c P52-7:P52-8 Test if saCkptSectionIterationNext can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Y N
          10-1.c P52-9:P52-14 Test if saCkptSectionIterationNext can return SA_AIS_ERR_BAD_HANDLE when the sectionIterationHandle is not obtained via saCkptSectionIteration . Same with 1-1. SA_AIS_ERR_BAD_HANDLE when the sectionIterationHandle is not obtained via saCkptSectionIteration . Same with 1-1. Y Y
          10-2.c P52-9:P52-14 Test if saCkptSectionIterationNext can return SA_AIS_ERR_BAD_HANDLE when the sectionIterationHandle has been finalized by the invocation of saCkptSectionFinalize. SA_AIS_ERR_BAD_HANDLE when the sectionIterationHandle has been finalized by the invocation of saCkptSectionFinalize. Y Y
          11.c P52-15:P52-16 Test if saCkptSectionIterationNext can return SA_AIS_ERR_BAD_HANDLE after the checkpoint has already been closed. SA_AIS_ERR_BAD_HANDLE after the checkpoint has already been closed. Y Y
          12.c P52-17:P52-19 Test if saCkptSectionIterationNext can return SA_AIS_ERR_BAD_HANDLE after the handle ckptHandle has already been finalized. SA_AIS_ERR_BAD_HANDLE after the handle ckptHandle has already been finalized. Y Y
          13.c P52-20:P52-20 Test if saCkptSectionIterationNext can return SA_AIS_ERR_INVALID_PARAM Same with 2-1. SA_AIS_ERR_INVALID_PARAM Same with 2-1. Y Y
          14.c P52-21:P52-21 Test if saCkptSectionIterationNext can return SA_AIS_ERR_NOT_EXIST. SA_AIS_ERR_NOT_EXIST. Y N
          15.c P52-22:P52-23 Test if saCkptSectionIterationNext can return SA_AIS_NO_SECTIONS. Same with 4-2. SA_AIS_NO_SECTIONS. Same with 4-2. Y Y

    • data_access(complete/total:105/144)
      • saCkptCheckpointSynchronizeAsync(complete/total:18 /25)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P60-27:P60-30 Invoke saCkptCheckpointSynchronizeAsync after the checkpoint has been opened with write mode and the asynchronous update option. This api return value should be SA_AIS_OK. SA_AIS_OK. Y Y
          1-2.c P60-27:P60-30 Invoke saCkptCheckpointSynchronizeAsync with a unopened checkpoint handle. This api return value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          2.c P60-32:P60-33 Invoke saCkptCheckpointSynchronizeAsync with a particular invocation value. This api return value should be SA_AIS_OK. Same with 1-1 SA_AIS_OK. Same with 1-1 Y Y
          3-1.c P61-9:P61-10 Invoke saCkptCheckpointSynchronizeAsync with the checkpoint handle which is created with SA_CKPT_WR_ACTIVE_REPLICA flag. This api return value should be SA_AIS_OK. SA_CKPT_WR_ACTIVE_REPLICA flag. This api return value should be SA_AIS_OK Y Y
          3-2.c P61-9:P61-10 Invoke saCkptCheckpointSynchronizeAsync with the checkpoint handle which is created with SA_CKPT_WR_ACTIVE_REPLICA_WEAK flag. This api return value should be SA_AIS_OK. SA_CKPT_WR_ACTIVE_REPLICA_WEAK flag. This api return value should be SA_AIS_OK Y Y
          3-3.c P61-9:P61-10 Invoke saCkptCheckpointSynchronizeAsync with the checkpoint handle which is created with SA_CKPT_WR_ALL_REPLICAS flag. This api return value should be SA_AIS_ERR_BAD_OPERATION. SA_CKPT_WR_ALL_REPLICAS flag. This api return value should be SA_AIS_ERR_BAD_OPERATION Y Y
          4-1.c P61-12:P61-13 Invoke saCkptCheckpointSynchronizeAsync with the checkpoint handle which is opened with write mode. This api return value should be SA_AIS_OK. SA_AIS_OK Y Y
          4-2.c P61-12:P61-13 Invoke saCkptCheckpointSynchronizeAsync with the checkpoint handle which is opened without write mode. This api return value should be SA_AIS_ERR_ACCESS. SA_AIS_ERR_ACCESS Y Y
          5-1.c P61-17:P61-19 The saCkptIntialize has been invoked with the valid callback, invoke saCkptCheckpointSynchronize with normal params, then the callback should be able to called.   Y Y
          5-2.c P61-17:P61-19 The saCkptIntialize has been invoked without the saCkptCheckpointSynchronizeCallback(), invoke saCkptCheckpointSynchronize with normal params, This api return value should be SA_AIS_ERR_INIT. SA_AIS_ERR_INIT Y Y
          6.c P61-20:P61-21 Invoke saCkptCheckpointSynchronizeAsync with normal parameters, The invocation in callback should be equal to the invacation value in API parameters.   Y Y
          7.c P61-24:P61-24 Invoke saCkptCheckpointSynchronizeAsync with all valid params. This api should return SA_AIS_OK. Same with 1-1 SA_AIS_OK. Same with 1-1 Y Y
          8.c P61-26:P61-27 Test if saCkptCheckpointSynchronizeAsync can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY Y N
          9.c P61-28:P61-30 Test if saCkptCheckpointSynchronizeAsync can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT Y N
          10.c P61-32:P61-33 Test if saCkptCheckpointSynchronizeAsync can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN Y N
          11.c P61-36:P61-37 Test if saCkptCheckpointSynchronizeAsync can return SA_AIS_ERR_BAD_HANDLE when the checkpoint handle isn't opened at all. Same with 1-2. SA_AIS_ERR_BAD_HANDLE when the checkpoint handle isn't opened at all. Same with 1-2 Y Y
          12.c P61-37:P61-38 Test if saCkptCheckpointSynchronizeAsync can return SA_AIS_ERR_BAD_HANDLE after the checkpoint handle has been closed. SA_AIS_ERR_BAD_HANDLE after the checkpoint handle has been closed Y Y
          13.c P61-40:P61-42 Test if saCkptCheckpointSynchronizeAsync can return SA_AIS_ERR_BAD_HANDLE after the ckptHandle has been finalized. SA_AIS_ERR_BAD_HANDLE after the ckptHandle has been finalized Y Y
          14.c P62-1:P62-4 Test if saCkptCheckpointSynchronizeAsync can return SA_AIS_ERR_INIT while the previous initialization with saCkptInitialize() was incomplete, since the saCkptCheckpointSynchronizeCallback() callback function is missing. Same with 5-2 SA_AIS_ERR_INIT while the previous initialization with saCkptInitialize() was incomplete, since the saCkptCheckpointSynchronizeCallback() callback function is missing. Same with 5-2 Y Y
          15.c P62-5:P62-5 Test if saCkptCheckpointSynchronizeAsync can return SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM Y N
          16.c P62-7:P62-8 Test if saCkptCheckpointSynchronizeAsync can return SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY Y N
          17.c P62-9:P62-10 Test if saCkptCheckpointSynchronizeAsync can return SA_AIS_ERR_NO_RESOURCES. SA_AIS_ERR_NO_RESOURCES Y N
          18.c P62-12:P62-12 Test if saCkptCheckpointSynchronizeAsync can return SA_AIS_ERR_NOT_EXIST. SA_AIS_ERR_NOT_EXIST Y N
          19.c P62-14:P62-15 Test if saCkptCheckpointSynchronizeAsync can return SA_AIS_ERR_ACCESS while the checkpoint, designated by checkpointHandle, was not opened for write mode. Same with 4-2. SA_AIS_ERR_ACCESS while the checkpoint, designated by checkpointHandle, was not opened for write mode. Same with 4-2 Y Y
          20.c P62-16:P62-17 Test if saCkptCheckpointSynchronizeAsync can return SA_AIS_ERR_BAD_OPERATION while the checkpoint, designated by checkpointHandle, was not created with the asynchronous update option. Same with 3-3. SA_AIS_ERR_BAD_OPERATION while the checkpoint, designated by checkpointHandle, was not created with the asynchronous update option. Same with 3-3. Y Y

      • SaCkptCheckpointSynchronizeCallbackT(complete/total:4 /12)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P62-37:P62-40 Synchronize with normal param. SaCkptCheckpointSynchronizeCallbackT should get error code SA_AIS_OK. The invocation should be matched with the invocation of Synchronize function. SA_AIS_OK. The invocation should be matched with the invocation of Synchronize function Y Y
          2.c P63-3:P63-3 Synchronize with normal param. SaCkptCheckpointSynchronizeCallbackT should get error code SA_AIS_OK. Same with 1 SA_AIS_OK. Same with 1 Y Y
          3.c P63-5:P63-6 Test if the SaCkptCheckpointSynchronizeCallbackT can get error code SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          4.c P63-7:P63-9 Test if the SaCkptCheckpointSynchronizeCallbackT can get error code SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT Y N
          5.c P63-11:P63-12 Test if the SaCkptCheckpointSynchronizeCallbackT can get error code SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN Y N
          6.c P63-13:P63-13 Test if the SaCkptCheckpointSynchronizeCallbackT can get error code SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM Y N
          7.c P63-14:P63-15 Test if the SaCkptCheckpointSynchronizeCallbackT can get error code SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY Y N
          8.c P63-16:P63-17 Test if the SaCkptCheckpointSynchronizeCallbackT can get error code SA_AIS_ERR_NO_RESOURCES. SA_AIS_ERR_NO_RESOURCES Y N
          9.c P63-18:P63-18 Test if the SaCkptCheckpointSynchronizeCallbackT can get error code SA_AIS_ERR_NOT_EXIST. SA_AIS_ERR_NOT_EXIST Y N
          10.c P63-20:P63-22 Synchronize after the checkpoint is opened without write mode, the SaCkptCheckpointSynchronizeCallbackT can get error code SA_AIS_ERR_ACCESS. SA_AIS_ERR_ACCESS Y N
          11.c P63-23:P63-25 Synchronize after the checkpoint is created without the asynchronous update option. SaCkptCheckpointSynchronizeCallbackT should get error code SA_AIS_ERR_BAD_OPERATION. SA_AIS_ERR_BAD_OPERATION. Y Y
          12.c P63-28:P63-36 Synchronize with a valid checkpoint handle. dispatch, the SaCkptCheckpointSynchronizeCallbackT should get error code SA_AIS_OK. Same with 1 SA_AIS_OK. Same with 1 Y Y

      • saCkptCheckpointSynchronize(complete/total:18 /25)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P60-26:P60-26 Invoke saCkptCheckpointSynchronize after the checkpoint has been opened with write mode and the asynchronous update option. Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          2-1.c P60-27:P60-30 Invoke saCkptCheckpointSynchronize with invalid checkpoint which is not obtained via saCkptCheckpointOpen or saCkptCheckpointOpenAsync. Returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          2-2.c P60-27:P60-30 Invoke saCkptCheckpointSynchronize with invalid checkpoint which is obtained via saCkptCheckpointOpen or saCkptCheckpointOpenAsync without SA_CKPT_CHECKPOINT_WRITE set. Returned value should be SA_AIS_ERR_ACCESS. SA_CKPT_CHECKPOINT_WRITE set. Returned value should be SA_AIS_ERR_ACCESS. Y Y
          3-1.c P60-34:P60-37 Invoke saCkptCheckpointSynchronize with SA_TIME_MAX timeout and other valid params. Returned value should be SA_AIS_OK. Same with 1. SA_TIME_MAX timeout and other valid params. Returned value should be SA_AIS_OK. Same with 1. Y Y
          3-2.c P60-34:P60-37 Invoke saCkptCheckpointSynchronize with 0 timeout and other valid params. Returned value should be SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Y Y
          4.c P60-38:P61-2 Invoke saCkptCheckpointSynchronize with valid params.Test if all previous operations applied on the active checkpoint replica are propagated to other checkpoint replicas.   Y N
          5-1.c P61-9:P61-10 Invoke saCkptCheckpointSynchronize with the checkpoint handle which is created with SA_CKPT_WR_ACTIVE_REPLICA flag. Returned value should be SA_AIS_OK. Same with 1. SA_CKPT_WR_ACTIVE_REPLICA flag. Returned value should be SA_AIS_OK. Same with 1 Y Y
          5-2.c P61-9:P61-10 Invoke saCkptCheckpointSynchronize with the checkpoint handle which is created with SA_CKPT_WR_ACTIVE_REPLICA_WEAK flag. Returned value should be SA_AIS_OK. SA_CKPT_WR_ACTIVE_REPLICA_WEAK flag. Returned value should be SA_AIS_OK Y Y
          5-3.c P61-9:P61-10 Invoke saCkptCheckpointSynchronize with the checkpoint handle which is created with SA_CKPT_WR_ALL_REPLICAS flag. Returned value should be SA_AIS_ERR_BAD_OPERATION. SA_CKPT_WR_ALL_REPLICAS flag. Returned value should be SA_AIS_ERR_BAD_OPERATION Y Y
          6-1.c P61-11:P61-13 Invoke saCkptCheckpointSynchronize with the checkpoint handle which is opened with write mode. This api return value should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1 Y Y
          6-2.c P61-11:P61-13 Invoke saCkptCheckpointSynchronize with the checkpoint handle which is created without write mode. This api return value should be SA_AIS_ERR_ACCESS. Same with 2-2. SA_AIS_ERR_ACCESS. Same with 2-2 Y Y
          7.c P61-24:P61-24 Test if saCkptCheckpointSynchronize can return SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          8.c P61-26:P61-27 Test if saCkptCheckpointSynchronize can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY Y N
          9-1.c P61-28:P61-30 Test if saCkptCheckpointSynchronize can return SA_AIS_ERR_TIMEOUT.when an implementation-dependent timeout. SA_AIS_ERR_TIMEOUT.when an implementation-dependent timeout Y N
          9-2.c P61-28:P61-30 Test if saCkptCheckpointSynchronize can return SA_AIS_ERR_TIMEOUT.when the timeout specified by timeout param occured before the call could complete. Same with 3-2. SA_AIS_ERR_TIMEOUT.when the timeout specified by timeout param occured before the call could complete. Same with 3-2. Y Y
          10.c P61-32:P61-33 Test if saCkptCheckpointSynchronize can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN Y N
          11.c P61-36:P61-37 Test if saCkptCheckpointSynchronize can return SA_AIS_ERR_BAD_HANDLE when the checkpoint handle isn't opened at all. Same with 2-1. SA_AIS_ERR_BAD_HANDLE when the checkpoint handle isn't opened at all. Same with 2-1 Y Y
          12.c P61-37:P61-38 Test if saCkptCheckpointSynchronize can return SA_AIS_ERR_BAD_HANDLE after the checkpoint handle has been closed. SA_AIS_ERR_BAD_HANDLE after the checkpoint handle has been closed Y Y
          13.c P61-40:P61-42 Test if saCkptCheckpointSynchronize can return SA_AIS_ERR_BAD_HANDLE after the ckptHandle has been finalized. SA_AIS_ERR_BAD_HANDLE after the ckptHandle has been finalized Y Y
          14.c P62-5:P62-5 Test if saCkptCheckpointSynchronize can return SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM Y N
          15.c P62-7:P62-8 Test if saCkptCheckpointSynchronize can return SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY Y N
          16.c P62-9:P62-10 Test if saCkptCheckpointSynchronize can return SA_AIS_ERR_NO_RESOURCES. SA_AIS_ERR_NO_RESOURCES Y N
          17.c P62-12:P62-12 Test if saCkptCheckpointSynchronize can return SA_AIS_ERR_NOT_EXIST, if no active replica exists. SA_AIS_ERR_NOT_EXIST, if no active replica exists Y Y
          18.c P62-14:P62-15 Test if saCkptCheckpointSynchronize can return SA_AIS_ERR_ACCESS while the checkpoint, designated by checkpointHandle, was not opened for write mode. Same with 2-2. SA_AIS_ERR_ACCESS while the checkpoint, designated by checkpointHandle, was not opened for write mode. Same with 2-2 Y Y
          19.c P62-16:P62-17 Test if saCkptCheckpointSynchronize can return SA_AIS_ERR_BAD_OPERATION while the checkpoint, designated by checkpointHandle, was not created with the asynchronous update option. Same with 5-3. SA_AIS_ERR_BAD_OPERATION while the checkpoint, designated by checkpointHandle, was not created with the asynchronous update option. Same with 5-3. Y Y

      • saCkptCheckpointWrite(complete/total:20 /28)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P54-23:P54-23 Invoke saCkptCheckpointWrite with valid checkpointHandle,and other valid params. Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          2-1.c P54-24:P54-26 Invoke saCkptCheckpointWrite with invalid checkpointHandle which is not obtained via saCkptCheckpointOpen or saCkptCheckpointOpenAsync. Returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          2-2.c P54-24:P54-26 Invoke saCkptCheckpointWrite with invalid checkpointHandle which is obtained via saCkptCheckpointOpen or saCkptCheckpointOpenAsync without SA_CKPT_CHECKPOINT_WRITE set. Returned value should be SA_AIS_ERR_ACCESS. SA_CKPT_CHECKPOINT_WRITE set. Returned value should be SA_AIS_ERR_ACCESS. Y Y
          3-1.c P54-27:P54-31 Invoke saCkptCheckpointWrite with null ioVector and other valid params. Returned value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Y Y
          3-2.c P54-27:P54-31 Invoke saCkptCheckpointWrite with valid ioVector and other valid params. Returned value should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          4.c P54-32:P54-32 Invoke saCkptCheckpointWrite with valid params and sectionId is equal to SA_CKPT_DEFAULT_SECTION_ID.Test if the default section is written. SA_CKPT_DEFAULT_SECTION_ID.Test if the default section is written. Y Y
          5-1.c P54-33:P54-35 Invoke saCkptCheckpointWrite with valid params and the value of datasize is greater than maxSectionSize,as specified in the creation attributes of the checkpoint. Returned value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Y Y
          5-2.c P54-33:P54-35 Invoke saCkptCheckpointWrite with valid params and the value of datasize is smaller than maxSectionSize, as specified in the creation attributes of the checkpoint. Returned value should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          6.c P54-36:P54-38 Invoke saCkptCheckpointWrite with valid numberOfElement and other valid params. Returned value should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          7-1.c P54-39:P54-41 Invoke saCKptCheckpointWrite with NULL erroneousVectorIndex and other valid params. Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          7-2.c P54-39:P54-41 Invoke saCkptCheckpointWrite with valid erroneousVectorIndex and other valid params.Test if erroneousVectorIndex remain unchanged,when returned value is SA_AIS_OK. SA_AIS_OK. Y Y
          8.c P55-1:P55-8 Invoke saCkptCheckpointWrite with valid params and the checkpoint has been created with SA_CKPT_WR_ALL_REPLICAS set. Test if when the invocation return , all of the checkpoint replicas has been updated. SA_CKPT_WR_ALL_REPLICAS set. Test if when the invocation return , all of the checkpoint replicas has been updated. Y N
          9.c P55-9:P55-15 Invoke saCkptCheckpointWrite with valid params and the checkpoint has been created with SA_CKPT_WR_ACTIVE_REPLICA set.Test if when the invocation return , all of the checkpoint replicas has been updated. SA_CKPT_WR_ACTIVE_REPLICA set.Test if when the invocation return , all of the checkpoint replicas has been updated. Y N
          10.c P55-16:P55-21 Invoke saCkptCheckpointWrite with valid params and the checkpoint has been created with SA_CKPT_WR_ACTIVE_REPLICA_WEAK set.Test if when the invocation return , all of the checkpoint replicas has been updated. SA_CKPT_WR_ACTIVE_REPLICA_WEAK set.Test if when the invocation return , all of the checkpoint replicas has been updated. Y N
          11.c P55-21:P55-26 Invoke saCkptCheckpointWrite with valid params and the value of datasize is greater than the section initdatasize.Test if the section size will grow. Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          12.c P55-27:P55-29 Test if saCkptCheckpointWrite can return SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          13.c P55-30:P55-31 Test if saCkptCheckpointWrite can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          14.c P55-32:P55-35 Test if saCkptCheckpointWrite can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Y N
          15.c P55-36:P55-37 Test if saCkptCheckpointWrite can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Y N
          16-1.c P55-38:P55-43 Test if saCkptCheckpointWrite can return SA_AIS_ERR_BAD_HANDLE, when the checkpoint is not obtained via saCkptCheckpointOpen or saCkptCheckpointOpenAsync. Same with 2-1. SA_AIS_ERR_BAD_HANDLE, when the checkpoint is not obtained via saCkptCheckpointOpen or saCkptCheckpointOpenAsync. Same with 2-1. Y Y
          16-2.c P55-38:P55-43 Test if saCkptCheckpointWrite can return SA_AIS_ERR_BAD_HANDLE, when the checkpoint is closed. SA_AIS_ERR_BAD_HANDLE, when the checkpoint is closed. Y Y
          17.c P56-1:P56-3 Test if saCkptCheckpointWrite can return SA_AIS_ERR_BAD_HANDLE, when the checkpoint is finalized. SA_AIS_ERR_BAD_HANDLE, when the checkpoint is finalized. Y Y
          18.c P56-4:P56-5 Test if saCkptCheckpointWrite can return SA_AIS_ERR_INVALID_PARAM. Same with 3-1. SA_AIS_ERR_INVALID_PARAM. Same with 3-1. Y Y
          19.c P56-6:P56-7 Test if saCkptCheckpointWrite can return SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY. Y N
          20.c P56-8:P56-10 Test if saCkptCheckpointWrite can return SA_AIS_ERR_NO_RESOURCE SA_AIS_ERR_NO_RESOURCE Y N
          21-1.c P56-11:P56-12 Test if saCkptCheckpointWrite can return SA_AIS_ERR_NOT_EXIST when no active replica exist. SA_AIS_ERR_NOT_EXIST when no active replica exist. Y Y
          21-2.c P56-11:P56-12 Test if saCkptCheckpointWrite can return SA_AIS_ERR_NOT_EXIST when a section identified by sectionid in ioVector does not exist. SA_AIS_ERR_NOT_EXIST when a section identified by sectionid in ioVector does not exist. Y Y
          22.c P56-13:P56-15 Test if saCkptCheckpointWrite can return SA_AIS_ERR_ACCESS. Same with 2-2. SA_AIS_ERR_ACCESS. Same with 2-2. Y Y

      • saCkptSectionOverwrite(complete/total:19 /25)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P56-36:P56-36 Invoke saCkptSectionOverwrite with valid checkpointHandle and other valid params. Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          2-1.c P56-37:P56-40 Invoke saCkptSectionOverwrite with invalid checkpointHandle which is not obtained via saCkpeCheckpointOpen or saCkptCheckpointOpenAsync. Returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          2-2.c P56-37:P56-40 Invoke saCkptSectionOverwrite with invalid checkpointHandle which is obtained via saCkptCheckpointOpen or saCkptCheckpointOpenAsync without SA_CKPT_CHECKPOINT_WRITE set Returned value should be SA_AIS_ERR_ACCESS. SA_CKPT_CHECKPOINT_WRITE set Returned value should be SA_AIS_ERR_ACCESS. Y Y
          3-1.c P56-41:P56-41 Invoke saCkptSectionOverwrite with invalid sectionId and other valid params. Returned value should be SA_AIS_ERR_NOT_EXIST. SA_AIS_ERR_NOT_EXIST. Y Y
          3-2.c P56-41:P56-41 Invoke saCkptSectionOverwrite with NULL sectionId and other valid params. Returned value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Y Y
          3-3.c P56-41:P56-41 Invoke saCkptSectionOverwrite with valid sectionId and other valid params. Returned value should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          4.c P56-42:P56-43 Invoke saCkptSectionOverwrite with sectionId which points to SA_CKPT_DEFAULT_SECTION_ID,Test if the default section is updated. SA_CKPT_DEFAULT_SECTION_ID,Test if the default section is updated. Y Y
          5-1.c P57-1:P57-1 Invoke saCkptSectionOverwrite with NULL dataBuffer. Returned value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Y Y
          5-2.c P57-1:p57-1 Invoke saCkptSectionOverwrite with valid dataBuffer and other valid params. Returned value should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          6-1.c P57-2:P57-5 Invoke saCkptSectionOverwrite with invalid dataSize which is greater than maxSectionSize ,as specified in the creation attributes of the checkpoint. Returned value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Y Y
          6-2.c P57-2:P57-5 Invoke saCkptSectionOverwrite with valid dataSize and other valid params. Returned value should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          7.c P57-6:P57-11 Invoke saCkptSectionOverwrite with valid params. Returned value should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          8.c P57-12:P57-15 Test if saCkptSectionOverwrite can return SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1 Y Y
          9.c P57-16:P57-17 Test if saCkptSectionOverwrite can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY Y N
          10.c P57-18:P57-20 Test if saCkptSectionOverwrite can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT Y N
          11.c P57-21:P57-22 Test if saCkptSectionOverwrite can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Y N
          12-1.c P57-23:P57-28 Test if saCkptSectionOverwrite can return SA_AIS_ERR_BAD_HANDLE.when the checkpointHandle is not obtained via saCkptCheckpointOpen or saCkptCheckpointOpenAsync Same with 2-1. SA_AIS_ERR_BAD_HANDLE.when the checkpointHandle is not obtained via saCkptCheckpointOpen or saCkptCheckpointOpenAsync Same with 2-1. Y Y
          12-2.c P57-23:P57-28 Test if saCkptSectionOverwrite can return SA_AIS_ERR_BAD_HANDLE when the checkpoint is closed. SA_AIS_ERR_BAD_HANDLE when the checkpoint is closed. Y Y
          13.c P57-29:P57-31 Test if saCkptSectionOverwrite can return SA_AIS_ERR_BAD_HANDLE when the handle ckptHandle passed to the function saCkptCheckpointOpen or saCkptCheckpointOpenAsync has already been finalized. SA_AIS_ERR_BAD_HANDLE when the handle ckptHandle passed to the function saCkptCheckpointOpen or saCkptCheckpointOpenAsync has already been finalized. Y Y
          14.c P57-32:P57-32 Test if saCkptSectionOverwrite can return SA_AIS_ERR_INVALID_PARAM. Same with 5-1. SA_AIS_ERR_INVALID_PARAM. Same with 5-1. Y Y
          15.c P57-33:P57-35 Test if saCkptSectionOverwrite can return SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Y N
          16.c P57-36:P57-38 Test if saCkptSectionOverwrite can return SA_AIS_ERR_NO_RESOURCE. SA_AIS_ERR_NO_RESOURCE. Y N
          17-1.c P57-39:P57-40 Test if saCkptSectionOverwrite can return SA_AIS_ERR_NOT_EXIST,when no replica exists. SA_AIS_ERR_NOT_EXIST,when no replica exists. Y Y
          17-2.c P57-39:P57-40 Test if saCkptSectionOverwrite can return SA_AIS_ERR_NOT_EXIST,when the section,identified by sectionId ,does not exist. Same with 3-1. SA_AIS_ERR_NOT_EXIST,when the section,identified by sectionId ,does not exist. Same with 3-1. Y Y

      • saCkptCheckpointRead(complete/total:26 /29)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P58-23:P58-23 Invoke saCkptCheckpointRead with valid checkpointHandle and other valid params. Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          2.c P58-24:P58-26 Invoke saCkptCheckpointRead with invalid checkpointHandle which is not obtained via saCkptCheckpointOpen or saCkptCheckpointOpenAsync. Returned value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE. Y Y
          3-1.c P58-27:P58-28 Invoke saCkptCheckpointRead with null ioVector and other valid params. Returned value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Y Y
          3-2.c P58-27:P58-28 Invoke saCkptCheckpointRead with valid ioVector and other valid params. Returned value should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          4-1.c P58-29:P58-31 Invoke saCkptCheckpointRead with invalid sectionId and other valid params. Returned value should be SA_AIS_ERR_NOT_EXIST. SA_AIS_ERR_NOT_EXIST. Y Y
          4-2.c P58-29:P58-31 Invoke saCkptCheckpointRead with valid sectionId and other valid params. Returned value should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          5.c P58-32:P58-33 Inovke saCkptCheckpointRead with valid dataBuffer and other valid params. Returned value should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          6.c P58-34:P58-36 Invoke saCkptCheckpointRead with null dataBuffer and other valid params .Test if the Checkpoint service allocate the buffer for this pointer.   Y Y
          7-1.c P58-37:P58-40 Invoke saCkptCheckpointRead with invalid datasize which is greater than maxsectionSize ,as specified in the creation attributes of the checkpoint. Returned value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Y Y
          7-2.c P58-37:P58-40 Invoke saCkptCheckpointRead with valid datasize and other valid params. Returned value should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          8-1.c P58-41:P58-42 Invoke saCkptCheckpointRead with invalid dataOffset which is beyond the limit of datasize. Returned value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM Y Y
          8-2.c P58-41:P58-42 Invoke saCkptCheckpointRead with valid dataOffset and other valid params. Returned value should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          9.c P59-1:P59-2 Invoke saCkptCheckpointRead with valid readSize and other valid params.Test if the readsize is equal to the size of data which has been read out.   Y Y
          10.c P59-3:P59-5 Invoke saCkptCheckpointRead with valid numberOfElements and other valid params. Returned value should be SA_AIS_OK. SA_AIS_OK. Y Y
          11-1.c P59-6:P59-10 Invoke saCkptCheckpointRead with null erroneousVectorIndex and other valid params. Returned value should be SA_AIS_OK. SA_AIS_OK Y Y
          11-2.c P59-6:P59-10 Invoke saCkptCheckpointRead with non-null erroneousVectorIndex and other valid params.Test if erroneousVectorIndex remain unchanged,when returned value is SA_AIS_OK. SA_AIS_OK Y Y
          12.c P59-11:P59-14 Invoke saCkptCheckpointRead with valid params. Returned value should be SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1 Y Y
          13.c P59-15:P59-17 Invoke saCkptCheckpointRead with dataBuffer is allocated by the checkpoint service library,Test if dataBuffer is allocated properly. Same with 6.   Y Y
          14.c P59-18:P59-20 Test if saCkptCheckpointRead can return SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          15.c P59-21:P59-22 Test if saCkptCheckpointRead can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          16.c P59-23:P59-26 Test if saCkptCheckpointRead can return SA_AIS_ERR_TIME_OUT. SA_AIS_ERR_TIME_OUT. Y N
          17.c P59-27:P59-28 Test if saCkptCheckpointRead can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Y N
          18-1.c P59-29:P59-34 Test if saCkptCheckpointRead can return SA_AIS_ERR_BAD_HANDLE when checkpoint is not obtained via saCkptCheckpointOpen or saCkptCheckpointOpenAsync. Same with 2. SA_AIS_ERR_BAD_HANDLE when checkpoint is not obtained via saCkptCheckpointOpen or saCkptCheckpointOpenAsync. Same with 2. Y Y
          18-2.c P59-29:P59-34 Test if saCkptCheckpointRead can return SA_AIS_ERR_BAD_HANDLE when the checkpoint is closed. SA_AIS_ERR_BAD_HANDLE when the checkpoint is closed. Y Y
          19.c P59-35:P59-38 Test if saCkptCheckpointRead can return SA_AIS_ERR_BAD_HANDLE when the ckptHandle passed to the function saCkptCheckpointOpen or saCkptCheckpointOpenAsync is finalized SA_AIS_ERR_BAD_HANDLE when the ckptHandle passed to the function saCkptCheckpointOpen or saCkptCheckpointOpenAsync is finalized Y Y
          20.c P59-39:P59-39 Test if saCkptCheckpointRead can return SA_AIS_ERR_INVALID_PARAM . Same with 3-1. SA_AIS_ERR_INVALID_PARAM . Same with 3-1. Y Y
          21-1.c P59-40:P59-41 Test if saCkptCheckpointRead can return SA_AIS_ERR_NOT_EXIST. when no active replica exists. SA_AIS_ERR_NOT_EXIST. when no active replica exists. Y Y
          21-2.c P59-40:P59-41 Test if saCkptCheckpointRead can return SA_AIS_ERR_NOT_EXIST. when a section identified by sectionId in ioVector ,does not exist. Same with 4-1. SA_AIS_ERR_NOT_EXIST. when a section identified by sectionId in ioVector ,does not exist. Same with 4-1. Y Y
          22.c P60-1:P60-2 Test if saCkptCheckpointRead can return SA_AIS_ERR_ACCESS. SA_AIS_ERR_ACCESS. Y Y

    • lifecycle(complete/total:46/63)
      • saCkptDispatch(complete/total:11 /14)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P28-32:P28-34 Dispatch correctly, Set valid ckptHandle value and dispatch Flag to SA_DISPATCH_ONE. The function should complete successfully. Return value should be SA_AIS_OK SA_DISPATCH_ONE. The function should complete successfully. Return value should be SA_AIS_OK Y Y
          1-2.c P28-32:P28-34 Dispatch is called with an unintialized saCkptHandle. Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P28-32:P28-34 Dispatch is called with a finalized ckpthandle. Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P28-35:P28-39 Dispatch correctly, Set valid ckptHandle value and dispatch Flag to SA_DISPATCH_ONE. The function should complete successfully. Return value should be SA_AIS_OK Same with 1-1 SA_DISPATCH_ONE. The function should complete successfully. Return value should be SA_AIS_OK Same with 1-1 Y Y
          2-2.c P28-35:P28-39 Dispatch correctly, Set dispatch Flag to SA_DISPATCH_ALL. The function completes successfully. Return value should be SA_AIS_OK SA_DISPATCH_ALL. The function completes successfully. Return value should be SA_AIS_OK Y Y
          2-3.c P28-35:P28-39 Dispatch correctly, Set dispatch Flag to SA_DISPATCH_BLOCKING. The function completes successfully. Return value should be SA_AIS_OK SA_DISPATCH_BLOCKING. The function completes successfully. Return value should be SA_AIS_OK Y Y
          2-4.c P28-35:P28-39 Dispatch is called with an dispatch flag other than "SA_DISPATCH_ONE, SA_DISPATCH_ALL or SA_DISPATCH_BLOCKING". Return value should be SA_AIS_ERR_INVALID_PARAM. SA_DISPATCH_ONE, SA_DISPATCH_ALL or SA_DISPATCH_BLOCKING". Return value should be SA_AIS_ERR_INVALID_PARAM Y Y
          3.c P28-40:P28-43 Dispatch correctly, Set valid ckptHandle value and dispatch Flag Return value should be SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          4.c P29-1:P29-3 Test whether the API saCkptDispatch can return value SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          5.c P29-4:P29-6 Test whether the API saCkptDispatch can return value SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          6.c P29-7:P29-9 Test whether the API saCkptDispatch can return value SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          7.c P29-10:P29-12 Test whether the API saCkptDispatch can return value SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          8.c P29-13:P29-14 Test whether the API saCkptDispatch can return value SA_AIS_ERR_BAD_HANDLE Same with 1-2 SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          9.c P29-15:P29-15 Test whether the API saCkptDispatch can return value SA_AIS_ERR_INVALID_PARAM Same with 2-4 SA_AIS_ERR_INVALID_PARAM Same with 2-4 Y Y

      • saCkptFinalize(complete/total:9 /12)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P29-30:P29-32 Call this function by valid ckptHandle Return value should be SA_AIS_OK SA_AIS_OK Y Y
          1-2.c P29-30:P29-32 finalize a finalized ckptHandle Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P29-30:P29-32 Finalize an uninitialized ckptHandle Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          2.c P29-33:P29-39 Call this function by valid ckptHandle Return value should be SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          3.c P29-40:P30-1 Call saCkptCheckpointOpen() to get checkpointHandle associated with the ckptHandle , After finalizing , Call saCkptCheckpointClose() . Return value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          4.c P30-2:P30-2 After finalizing, we try to call callbacks related to the ckptHandle Return value should be SA_AIS_ERR_BAD_HANDLE. SA_AIS_ERR_BAD_HANDLE Y Y
          5.c P30-3:P30-6 Call saCkptSelectionObjectGet related to the ckptHandle , After finalizing we call select to detect whether the selectionObject is invaild . Return value should be -1.   Y Y
          6.c P30-7:P30-9 Test whether API saCkptFinalize can return the value of SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          7.c P30-10:P30-12 Test whether API saCkptFinalize can return the value of SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          8.c P30-13:P30-15 Test whether API saCkptFinalize can return the value of SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          9.c P30-16:P30-18 Test whether API saCkptFinalize can return the value of SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          10.c P30-19:P30-20 Test whether API saCkptFinalize can return the value of SA_AIS_ERR_BAD_HANDLE Same with 1-2 SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y

      • saCkptSelectionObjectGet(complete/total:10 /16)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P27-22:P27-24 Get the selectionObject with valid parameter, including ckptHandle, and selectionObject Return value should be SA_AIS_OK SA_AIS_OK Y Y
          1-2.c P27-22:P27-24 Get the selectionObject without initialize Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P27-22:P27-24 Get the selectionObject after finalize, which will cause the ckptHandle unvalid Return value should be SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P27-25:P27-27 Get the selectionObject with valid parameter Return value should be SA_AIS_OK Same with test case 1-1 SA_AIS_OK Same with test case 1-1 Y Y
          2-2.c P27-25:P27-27 Set the return selectionObject as NULL Return value should be SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Y Y
          3.c P27-28:P27-34 Call the selectionObject with valid parameter, including ckptHandle, and selectionObject, and then call saCkptCheckpointOpenAsync to invoke a callback, and use select to detect pending callback. Return value should be over zero   Y Y
          4.c P27-35:P27-38 Call saCkptSelectionObjectGet related to the ckptHandle , After finalizing we call select to detect whether the selectionObject is invaild . Return value should be -1.   Y Y
          5.c P27-39:P27-41 Test whether the API saCkptSelectionObjectGet can return the value SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          6.c P27-42:P27-44 Test whether the API saCkptSelectionObjectGet can return the value SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          7.c P28-1:P28-3 Test whether the API saCkptSelectionObjectGet can return the value SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          8.c P28-4:P28-6 Test whether the API saCkptSelectionObjectGet can return the value SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          9.c P28-7:P28-8 Test whether the API saCkptSelectionObjectGet can return the value SA_AIS_ERR_BAD_HANDLE Same with 1-2 SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          10.c P28-9:P28-10 Test whether the API saCkptSelectionObjectGet can return the value SA_AIS_ERR_INVALID_PARAM Same with 2-2 SA_AIS_ERR_INVALID_PARAM Same with 2-2 Y Y
          11.c P28-11:P28-13 Test whether the API saCkptSelectionObjectGet can return the value SA_AIS_NO_MEMORY SA_AIS_NO_MEMORY Y N
          12.c P28-14:P28-15 Test whether the API saCkptSelectionObjectGet can return the value SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Y N

      • saCkptInitialize(complete/total:16 /21)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P25-16:P25-18 Initialize the checkpoint service with a valid ckptHandle and other valid parameter. Return value should be SA_AIS_OK SA_AIS_OK Y Y
          1-2.c P25-16:P25-18 Initialize the checkpoint service with a NULL ckpthandle. Return value should be SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Y Y
          2-1.c P25-19:P25-23 Initialize the checkpoint service with correct parameter such as normal handle,verion and callback, and callback is not NULL. Return value should be SA_AIS_OK SA_AIS_OK Y Y
          2-2.c P25-19:P25-23 Initialize the checkpoint service with correct parameter such as normal handle,verion and callback, but callback function in structure is set to NULL. Return value should be SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          2-3.c P25-19:P25-23 Initialize the checkpoint service with correct parameter such as normal handle,verion and callback, but callback is set to NULL. Return value should be SA_AIS_OK SA_AIS_OK Y Y
          3-1.c P25-24:P25-29 Initialize the checkpoint service with a valid ckptHandle and other valid parameter. Return value should be SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          3-2.c P25-24:P25-29 Initialize the checkpoint service with a NULL version code. Return value should be SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Y Y
          4.c P25-30:P25-35 Initialize the checkpoint service with a valid ckptHandle and other valid parameter. Return value should be SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          5-1.c P25-36:P26-3 Initialize the checkpoint service with a version code. Suppose the returned major version number is bigger than the required majorversion number Return value should be SA_AIS_OK. SA_AIS_OK Y Y
          5-2.c P25-36:P26-3 Initialize the checkpoint service with a version code. Suppose the returned major version number is equal to the required majorversion number Return value should be SA_AIS_OK. SA_AIS_OK Y Y
          6-1.c P26-4:P26-26 Initialize the checkpoint service with a version code. Suppose the returned major version number is smaller than the required majorversion number Return value should be SA_AIS_ERR_VERSION. SA_AIS_ERR_VERSION Y Y
          6-2.c P26-4:P26-26 Initialize the checkpoint service with a version code, whose release code is bigger than current one, and could not be supported now. Return value should be SA_AIS_ERR_VERSION. SA_AIS_ERR_VERSION Y Y
          6-3.c P26-4:P26-26 Initialize the checkpoint service with a version code, whose release code is lower than current one, and is supposed to not be supported. Return value should be SA_AIS_ERR_VERSION. SA_AIS_ERR_VERSION Y Y
          7.c P26-27:P26-29 Test whether this API saCkptInitialize can return a value of SA_AIS_OK Same with 1-1 SA_AIS_OK Same with 1-1 Y Y
          8.c P26-30:P26-32 Test whether this API saCkptInitialize can return a value of SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Y N
          9.c P26-33:P26-35 Test whether this API saCkptInitialize can return a value of SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Y N
          10.c P26-36:P26-37 Test whether this API saCkptInitialize can return a value of SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Y N
          11.c P26-38:P26-39 Test whether this API saCkptInitialize can return a value of SA_AIS_ERR_INVALID_PARAM Same with 1-2 SA_AIS_ERR_INVALID_PARAM Same with 1-2 Y Y
          12.c P26-40:P26-43 Test whether this API saCkptInitialize can return a value of SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Y N
          13.c P27-1:P27-3 Test whether this API saCkptInitialize can return a value of SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Y N
          14.c P27-4:P27-6 Test whether this API saCkptInitialize can return a value of SA_AIS_ERR_VERSION Same with test case 6-1 SA_AIS_ERR_VERSION Same with test case 6-1 Y Y

  • AIS-evt-B.01.01(complete/total:306/389)
    • evt_operation(complete/total:166/212)
      • saEvtEventAttributesGet(complete/total:31 /35)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P42-21:P42-22 Call the api with invalid eventHandle which is not obtained via saEvtEventAllocate or saEvtEventDeliverCallback . SA_AIS_ERR_BAD_HANDLE Y Y
          1-2.c P42-21:P42-22 Call the api with valid eventHandle and other valid params SA_AIS_OK Y Y
          2.c P42-23:P42-25 Call the api with valid patternArray in which every fields is non-null. SA_AIS_OK Same with 1-2 Y Y
          3.c P42-26:P42-32 Call the api with patternArray in which patterns field is set to NULL. Test if the event service will allocate memory for the pattern array and the individual patterns and will set the fields patternArray->patternsNumber ,patternArray->patterns , patternArray->patterns[i].pattern,patternArra->patterns[i].patternSize accordingly. Steps: 1.initialize a evthandle 2.open a channel using the evthandle. 3.allocate a event for the channel. 4.set the event attributes 5.get the event attributes 6.compare the event attributes with the ones we set. SA_AIS_OK Y Y
          4.c P42-33:P42-38 Call the api with patternArray that is allocated by invoking process . Test if event service change the value of patternArray->allocateNumber, patternArray->patterns,patternArray->patterns[i].allocatedSize,and patternArray->patterns[i].pattern accordingly. SA_AIS_OK Y Y
          5-1.c P42-40:P43-9 Call the api with patternArray in which allocatedNumber is smaller than the number of event patterns.Test if event service sets patternArray->patternsNumber and patternArray->patterns[i].patternSize fields for all patternArray->allocatedNumber individual patterns to indicate the number of event patterns and the size of each patterns. SA_AIS_ERR_NO_SPACE Y Y
          5-2.c P42-40:P43-9 Call the api with patternArray in which the size of the buffer allocated for one of the patterns is smaller than the number of event patterns.Test if event service sets patternArray->patternsNumber and patternArray->patterns[i].patternSize fields for all patternArray->allocatedNumber individual patterns to indicate the number of event patterns and the size of each patterns. SA_AIS_ERR_NO_SPACE Y Y
          5-3.c P42-40:P43-9 Call the api with valid patternArray and other params.Test if event service sets patternArray->patternsNumber and patternArray->patterns[i].patternSize fields for all patternArray->allocatedNumber individual patterns to indicate the number of event patterns and the size of each patterns. SA_AIS_OK Y Y
          6-1.c P43-10:P43-10 Call the api with valid priority and other valid params. SA_AIS_OK Same with 1-2 Y Y
          6-2.c P43-10:P43-10 Call the api with NULL priority and other valid params.Test if the priority is changed by event service . SA_AIS_OK Y Y
          7-1.c P43-11:P43-13 Call the api with valid retentionTime and other valid params SA_AIS_OK Same with 1-2 Y Y
          7-2.c P43-11:P43-13 Call the api with NULL retentionTime and other valid params.Test if the retentionTime is changed by event service . SA_AIS_OK Y Y
          8-1.c P43-14:P43-15 Call the api with valid publisherName and other valid params SA_AIS_OK Same with 1-2 Y Y
          8-2.c P43-14:P43-15 Call the api with NULL publisherName and other valid params.Test if the publisherName is changed by event service . SA_AIS_OK Y Y
          9-1.c P43-16:P43-17 Call the api with valid publishTime and other valid params SA_AIS_OK Same with 1-2 Y Y
          9-2.c P43-16:P43-17 Call the api with NULL publishTime and other valid params.Test if the publishTime is changed by event service . SA_AIS_OK Y Y
          10-1.c P43-18:P43-19 Call the api with valid eventId and other valid params SA_AIS_OK Same with 1-2 Y Y
          10-2.c P43-18:P43-19 Call the api with NULL eventId and other valid params.Test if the eventId is changed by event service . SA_AIS_OK Y Y
          11.c P43-20:P43-23 Call the api with valid params. SA_AIS_OK Same with 1-2 Y Y
          12.c P43-25:P43-26 Test if the event service does not return the out value , when the invoking process provides a NULL reference . SA_AIS_OK. Same with 6-2 Y Y
          13.c P43-27:P43-29 Invoke this API function on the event allocated by saEvtEventAllocate and modified by saEvtEventAttributesSet . SA_AIS_OK Same with 4 Y Y
          14.c P43-30:P43-35 Invoke this API function on the event allocated by saEvtEventDeliverCallback . Test if the attributes publish time and eventid have the values set by the event service. SA_AIS_OK Y Y
          15-1.c P43-36:P43-38 Invoke this API function on the event allocated by saEvtEventAllocate. Test if the attributes have the initial values set by the event service. SA_AIS_OK Y Y
          15-2.c P43-36:P43-38 Invoke this API function on the event modified by saEvtEventAttributesSet. Test if the attributes have the values set by a prior invocation of the saEvtEventAttributesSet function. SA_AIS_OK Y Y
          16.c P43-39:P43-42 Test if the api can return SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-2 Y Y
          17.c P44-1:P44-2 Test if the api can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Return = SA_AIS_ERR_LIBRARY Y N
          18.c P44-3:P44-6 Test if the api can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Return = SA_AIS_ERR_TIMEOUT Y N
          19.c P44-7:P44-9 Test if the api can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          20-1.c P44-10:P44-14 Test if the api can return SA_AIS_ERR_BAD_HANDLE when the eventhandle is not obtained via the saEvtEventAllocate or saEvtEventDeliverCallback SA_AIS_ERR_BAD_HANDLE when the eventhandle is not obtained via the saEvtEventAllocate or saEvtEventDeliverCallback Return = SA_AIS_ERR_BAD_HANDLE Same with 1-1 Y Y
          20-2.c P44-10:P44-14 Test if the api can return SA_AIS_ERR_BAD_HANDLE when the eventHandle is freed by saEvtEventFree. SA_AIS_ERR_BAD_HANDLE when the eventHandle is freed by saEvtEventFree. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          21-1.c P44-15:P44-15 Test if the api can return SA_AIS_ERR_BAD_HANDLE when the corresponding event channel opened by saEvtChannelOpen has already been closed. SA_AIS_ERR_BAD_HANDLE when the corresponding event channel opened by saEvtChannelOpen has already been closed. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          21-2.c P44-15:P44-15 Test if the api can return SA_AIS_ERR_BAD_HANDLE when the corresponding event channel opened by saEvtChannelOpenAsync has already been closed. SA_AIS_ERR_BAD_HANDLE when the corresponding event channel opened by saEvtChannelOpenAsync has already been closed. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          22.c P44-16:P44-17 Test if the api can return SA_AIS_ERR_BAD_HANDLE when the handle evthandle that was passed to the saEvtChannelOpen or saEvtChannelOpenAsync functions has already been finalized. SA_AIS_ERR_BAD_HANDLE when the handle evthandle that was passed to the saEvtChannelOpen or saEvtChannelOpenAsync functions has already been finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          23.c P44-18:P44-19 Test if the api can return SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Y N
          24.c P44-20:P44-24 Test if the api can return SA_AIS_ERR_NO_SPACE when the field allocatedNumber in patternArray is smaller than the number of event patterns or the size of the buffer allocated for one of the patterns is smaller than the actual size of the pattern. SA_AIS_ERR_NO_SPACE when the field allocatedNumber in patternArray is smaller than the number of event patterns or the size of the buffer allocated for one of the patterns is smaller than the actual size of the pattern. Return = SA_AIS_ERR_NO_SPACE. Same with 5-1 Y Y

      • saEvtEventPublish(complete/total:22 /29)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P48-25:P48-30 Call the api with invalid eventHandle which have not been allocated by saEvtEventAllocate or obtained via the saEvtEventDeliverCallback. SA_AIS_ERR_BAD_HANDLE Y Y
          1-2.c P48-25:P48-30 Call the api with valid eventHandle and the patterns set by saEvtEventAttributesSet. SA_AIS_OK Y Y
          2-1.c P48-31:P48-35 Call the api with non-null eventData pointer and other valid params SA_AIS_OK Same with 1-2 Y Y
          2-2.c P48-31:P48-35 Call the api with null eventData pointer and other valid params SA_AIS_OK Y Y
          3.c P48-36:P48-38 Call the api with valid eventDataSize and other valid params SA_AIS_OK Same with 1-2 Y Y
          4-1.c P48-39:P48-40 Call the api with non-null eventId and other valid params SA_AIS_OK Same with 1-2 Y Y
          4-2.c P48-39:P48-40 Call the api with null eventId and other valid params. SA_AIS_ERR_INVALID_PARAM Y Y
          5-1.c P49-1:P49-7 Call the api with the eventHandle which has been allocated by saEvtEventAllocate. SA_AIS_OK Y Y
          5-2.c P49-1:P49-7 Call the api with the eventHandle which has been obtained via the saEvtEventDeliverCallback. SA_AIS_OK Y Y
          6-1.c P49-8:P49-10 Call the api with the corresponding event channel which is opened without SA_EVT_CHANNEL_PUBLISHER flag set. SA_EVT_CHANNEL_PUBLISHER flag set. Return = SA_AIS_ERR_ACCESS Y Y
          6-2.c P49-8:P49-10 Call the api with the corresponding event channel which is opened with SA_EVT_CHANNEL_PUBLISHER flag set. SA_EVT_CHANNEL_PUBLISHER flag set. Return = SA_AI_OK Same with 1-2 Y Y
          7.c P49-11:P49-15 Call the api with attributes set by saEvtEventAttributesSet, and then delivered to subscribet Test if the pattern of received event match the published event patterns. SA_AIS_OK Y Y
          8.c P49-16:P49-20 Call the api and then read the attributes.Test if the following read-only event publish time and event identifier are set into the published event by the Event Service. SA_AIS_OK Y Y
          9.c P49-21:P49-22 Call the api with non-null eventData and eventDataSize . SA_AIS_OK Same with 1-2 Y Y
          10.c P49-23:P49-25 Call the api with valid params, test if the attributes are not changed after the saEvtEventPublish is invoked. SA_AIS_OK Y Y
          11.c P49-26:P49-30 Call the api and then free the event. Using saEvtEventAttributesSet to test if the event is freed by event service. SA_AIS_OK Y Y
          12.c P49-31:P49-32 Test if the api can return SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-2 Y Y
          13.c P49-33:P49-35 Test if the api can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          14.c P49-36:P49-38 Test if the api can return SA_AIS_ERR_TIMOUT SA_AIS_ERR_TIMOUT Return = SA_AIS_ERR_TIMEOUT Y N
          15.c P49-39:P49-40 Test if the api can return SA_AIS_ERR_AGAIN SA_AIS_ERR_AGAIN Return = SA_AIS_ERR_AGAIN Y N
          16-1.c P49-41:P50-3 Test if the api can return SA_AIS_ERR_BAD_HANDLE,when the eventhandle is not obtained via the saEvtEventAllocated or saEvtEventDeliverCallback. SA_AIS_ERR_BAD_HANDLE,when the eventhandle is not obtained via the saEvtEventAllocated or saEvtEventDeliverCallback. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-1 Y Y
          16-2.c P49-41:P50-3 Test if the api can return SA_AIS_ERR_BAD_HANDLE, when the eventhandle is freed by saEvtEventFree. SA_AIS_ERR_BAD_HANDLE, when the eventhandle is freed by saEvtEventFree. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          17.c P50-4:P50-5 Test if the api can return SA_AIS_ERR_BAD_HANDLE, when the corresponding event channel has already been closed. SA_AIS_ERR_BAD_HANDLE, when the corresponding event channel has already been closed. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          18-1.c P50-6:P50-7 Test if the api can return SA_AIS_ERR_BAD_HANDLE, when the handle evtHandle that was passed to the saEvtChannelOpen has already sbeen finalized. SA_AIS_ERR_BAD_HANDLE, when the handle evtHandle that was passed to the saEvtChannelOpen has already sbeen finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          18-2.c P50-6:P50-7 Test if the api can return SA_AIS_ERR_BAD_HANDLE, when the handle evtHandle that was passed to the saEvtChannelOpenAsync has already sbeen finalized. SA_AIS_ERR_BAD_HANDLE, when the handle evtHandle that was passed to the saEvtChannelOpenAsync has already sbeen finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          19.c P50-8:P50-9 Test if the api can return SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Return = SA_AIS_ERR_INVALID_PARAM Same with 4-2 Y Y
          20.c P50-10:P50-11 Test if the api can return SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY. Return = SA_AIS_ERR_NO_MEMORY Y N
          21.c P50-12:P50-13 Test if the api can return SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Return = SA_AIS_ERR_NO_RESOURCES Y N
          22.c P50-14:P50-17 Test if the api can return SA_AIS_ERR_ACCESS, when the SA_EVT_CHANNEL_PUBLISHER flag was not set for the event channel on which the event to be published was allocated . SA_AIS_ERR_ACCESS, when the SA_EVT_CHANNEL_PUBLISHER flag was not set for the event channel on which the event to be published was allocated . Return = SA_AIS_ERR_ACCESS Same with 6-1 Y Y
          23.c P50-18:P50-20 Test if the api can return SA_AIS_ERR_TOO_BIG, when the eventDataSize or the total size of the event is larger than the maximum permitted value SA_AIS_ERR_TOO_BIG, when the eventDataSize or the total size of the event is larger than the maximum permitted value Return = SA_AIS_ERR_TOO_BIG Y N

      • saEvtEventSubscribe(complete/total:24 /30)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P50-40:P50-43 Call the api with invaid channelhandle which is not obtained previously by the invocation of one of the saEvtChannelOpen or saEvtChannelOpenCallback. SA_AIS_ERR_BAD_HANDLE Y Y
          1-2.c P50-40:P50-43 Call the api with valid channelHandle and other valid params SA_AIS_OK Y Y
          2-1.c P51-1:P51-5 Call the api with null filters and other valid params. SA_AIS_ERR_INVALID_PARAM Y Y
          2-2.c P51-1:P51-5 Call the api with valid filters in which the filtertype is set to SA_EVT_PASS_ALL_FILTER. SA_EVT_PASS_ALL_FILTER. Return = SA_AIS_OK Y Y
          2-3.c P51-1:P51-5 Call the api with valid filters in which the filtertype is set to SA_EVT_EXACT_FILTER. SA_EVT_EXACT_FILTER. Return = SA_AIS_OK Y Y
          2-4.c P51-1:P51-5 Call the api with valid filters in which the filtertype is set to SA_EVT_SUFFIX_FILTER. SA_EVT_SUFFIX_FILTER. Return = SA_AIS_OK Y Y
          2-5.c P51-1:P51-5 Call the api with valid filters in which the filtertype is set to SA_EVT_PREFIX_FILTER. SA_EVT_PREFIX_FILTER. Return = SA_AIS_OK Y Y
          3.c P51-6:P51-10 Call the api with valid subsrciptionId and other valid params.Test if that is is used as a parameter of saEvtEventDeliverCallback SA_AIS_OK Y Y
          4.c P51-11:P51-13 Call the api with valid params. SA_AIS_OK Same with 1-2 Y Y
          5-1.c P51-14:P51-16 Call the api and the saEvtEventDeliverCallback has not been supplied when the process called the saEvtInitialize . SA_AIS_ERR_INIT Y Y
          5-2.c P51-14:P51-16 Call the api when saEvtEventDeliverCallback has been supplied when the process called the saEvtInitialize. SA_AIS_OK Same with 3 Y Y
          6-1.c P51-17:P51-20 Call the api with the corresponding event channel which is opened without SA_EVT_CHANNEL_SUBSCRIBER flag set. SA_EVT_CHANNEL_SUBSCRIBER flag set. Return = SA_AIS_ERR_ACCESS Y Y
          6-2.c P51-17:P51-20 Call the api with the corresponding event channel which is opened with SA_EVT_CHANNEL_SUBSCRIBER flag set. SA_EVT_CHANNEL_SUBSCRIBER flag set. Return = SA_AIS_OK Same with 1-2 Y Y
          7.c P51-21:P51-23 Call the api and test if the memory associated with filter is not deallocated by the saEvtEventSubscribe. SA_AIS_OK Y Y
          8-1.c P51-24:P51-28 Call the api and test if for a given subscribtion,the filters parameter cannot be modified and to change the filters parameter without losing events,a process must establish a new subscription with the new filters parameter. SA_AIS_OK Y Y
          8-2.c P51-24:P51-28 Call the api and test if the old subscription can be removed by invoking the saEvtEventUnsubscribe. SA_AIS_OK Y Y
          9.c P51-29:P51-31 Test if the api can return SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-2 Y Y
          10.c P51-32:P51-33 Test if the api can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          11.c P51-34:P51-37 Test if the api can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          12.c P51-38:P51-40 Test if the api can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_AGAIN Y N
          13-1.c P51-41:P52-3 Test if the api can return SA_AIS_ERR_BAD_HANDLE,when the channelHandle was not obtained via the saEvtchannelOpen or saEvtChannelOpenCallback. SA_AIS_ERR_BAD_HANDLE,when the channelHandle was not obtained via the saEvtchannelOpen or saEvtChannelOpenCallback. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-1 Y Y
          13-2.c P51-41:P52-3 Test if the api can return SA_AIS_ERR_BAD_HANDLE,when the corresponding event channel has already been closed. SA_AIS_ERR_BAD_HANDLE,when the corresponding event channel has already been closed. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          14.c P52-4:P52-5 Test if the api can return SA_AIS_ERR_BAD_HANDLE,when the handle evtHandle that was passed to the saEvtChannelOpen or saEvtChannelOpenAsync has already been finalized. SA_AIS_ERR_BAD_HANDLE,when the handle evtHandle that was passed to the saEvtChannelOpen or saEvtChannelOpenAsync has already been finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          15.c P52-6:P52-7 Test if the api can return SA_AIS_ERR_INIT,when the previous initalization with saEvtInitialize was incomplete,since the saEvtEventDeliverCallback callback function is missing. SA_AIS_ERR_INIT,when the previous initalization with saEvtInitialize was incomplete,since the saEvtEventDeliverCallback callback function is missing. Return = SA_AIS_ERR_INIT Same with 5-1 Y Y
          16.c P52-8:P52-9 Test if the api can return SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 2-1 Y Y
          17.c P52-10:P52-11 Test if the api can return SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Return = SA_AIS_ERR_NO_MEMORY Y N
          18.c P52-12:P52-15 Test if the api can return SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Return = SA_AIS_ERR_NO_RESOURCES Y N
          19.c P52-16:P52-16 Test if the api can return SA_AIS_ERR_EXIST,when to call a subscription using the same subscriptionid twice. SA_AIS_ERR_EXIST,when to call a subscription using the same subscriptionid twice. Return = SA_AIS_ERR_EXIST Y Y
          20.c P52-17:P52-20 Test if the api can return SA_AIS_ERR_ACCESS SA_AIS_ERR_ACCESS Return = SA_AIS_ERR_ACCESS Same with 6-1 Y Y
          21.c P52-21:P52-23 Test if the api can return SA_AIS_ERR_TOO_BIG SA_AIS_ERR_TOO_BIG Return = SA_AIS_ERR_TOO_BIG Y N

      • saEvtEventRetentionTimeClear(complete/total:11 /14)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P54-14:P54-18 Call the api with invalid channelHandle which is not obtained by the invocation of one of the saEvtChannelOpen or saEvtChannelOpenAsync functions. SA_AIS_ERR_BAD_HANDLE Y Y
          1-2.c P54-14:P54-18 Call the api with valid channelHandle and other valid params SA_AIS_OK Y Y
          2-1.c P54-19:P54-20 Call the api with invalid eventId which has are not obtained from publisher. SA_AIS_ERR_INVALID_PARAM Y Y
          2-2.c P54-19:P54-20 Call the api with valid eventId and other valid params. SA_AIS_OK Same with 1-2 Y Y
          3.c P54-21:P54-28 Call the api with valid params, and then test if the event is available for new subscribers. SA_AIS_OK Y Y
          4.c P54-29:P54-30 Test if the api can return SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-2 Y Y
          5.c P54-31:P54-32 Test if the api can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          6.c P54-33:P54-37 Test if the api can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          7.c P54-38:P54-40 Test if the api can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Return = SA_AIS_ERR_TRY_AGAIN Y N
          8-1.c P54-41:P55-3 Test if the api can return SA_AIS_ERR_BAD_HANDLE,when the channelHandle is not obtained via saEvtChannelOpen or saEvtChannelOpenCallback. SA_AIS_ERR_BAD_HANDLE,when the channelHandle is not obtained via saEvtChannelOpen or saEvtChannelOpenCallback. Return = SA_AIS_ERR_BAD_HANDLE. Same with 1-1 Y Y
          8-2.c P54-41:P55-3 Test if the api can return SA_AIS_ERR_BAD_HANDLE,when the channelHandle is closed. SA_AIS_ERR_BAD_HANDLE,when the channelHandle is closed. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          9.c P55-4:P55-5 Test if the api can return SA_AIS_ERR_BAD_HANDLE,when the handle evtHandle that was passed to the saEvtChannelOpen or saEvtChannelOpenAsync has already been finalized. SA_AIS_ERR_BAD_HANDLE,when the handle evtHandle that was passed to the saEvtChannelOpen or saEvtChannelOpenAsync has already been finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          10.c P55-6:P55-8 Test if the api can return SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 2-1 Y Y
          11.c P55-9:P55-10 Test if the api can return SA_AIS_ERR_NOT_EXIST ,when the event specified by eventId dosen't exist. SA_AIS_ERR_NOT_EXIST ,when the event specified by eventId dosen't exist. Return = SA_AIS_ERR_NOT_EXIST Y Y

      • saEvtEventAllocate(complete/total:11 /16)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P37-40:P38-2 Allocate the event with invalid channelhandle which is not obtained via saEvtChannelOpen or saEvtChannelOpenCallback. SA_AIS_ERR_BAD_HANDLE Y Y
          1-2.c P37-40:P38-2 Allocate the event with valid channelhandle which is obtained via saEvtChannelOpen. Retrun = SA_AIS_OK SA_AIS_OK Y Y
          1-3.c P37-40:P38-2 Allocate the event with valid channelhandle which is obtained via saEvtChannelOpenCallback. Retrun = SA_AIS_OK SA_AIS_OK Y Y
          2-1.c P38-3:P38-8 Allocate a event with NULL eventHandle and other valid params SA_AIS_ERR_INVALID_PARAM Y Y
          2-2.c P38-3:P38-8 Allocate a event with valid eventHandle and other valid params SA_AIS_OK Same with 1-2 Y Y
          3.c P38-9:P38-15 Allocate a event with valid params. Test if it initializes all events attributes to default values. SA_AIS_OK Y Y
          4.c P38-16:P38-18 Test if saEvtEventAllocate can return SA_AIS_OK. SA_AIS_OK. Return = SA_AIS_OK Same with 1-2 Y Y
          5.c P38-19:P38-21 Test if saEvtEventAllocate can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          6.c P38-22:P38-24 Test if saEvtEventAllocate can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          7.c P38-25:P38-26 Test if saEvtEventAllocate can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          8-1.c P38-27:P38-32 Test if saEvtEventAllocate can return SA_AIS_ERR_BAD_HANDLE when the channelHandle is not obtained via saEvtChannelOpen or saEvtChannelOpenCallback. SA_AIS_ERR_BAD_HANDLE when the channelHandle is not obtained via saEvtChannelOpen or saEvtChannelOpenCallback. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-1 Y Y
          8-2.c P38-27:P38-32 Test if saEvtEventAllocate can return SA_AIS_ERR_BAD_HANDLE when the channelHandle is closed . SA_AIS_ERR_BAD_HANDLE when the channelHandle is closed . Return = SA_AIS_ERR_BAD_HANDLE Y Y
          9.c P38-33:P38-35 Test if saEvtEventAllocate can return SA_AIS_ERR_BAD_HANDLE when the handle passed to saEvtChannelOpen or saEvtChannelOpenAsync has already been finalized. SA_AIS_ERR_BAD_HANDLE when the handle passed to saEvtChannelOpen or saEvtChannelOpenAsync has already been finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          10.c P38-36:P38-36 Test if saEvtEventAllocate can return SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 2-1 Y Y
          11.c P38-37:P38-39 Test if saEvtEventAllocate can return SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Return = SA_AIS_ERR_NO_MEMORY Y N
          12.c P38-40:P38-41 Test if saEvtEventAllocate can return SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Return = SA_AIS_ERR_NO_RESOURCES Y N

      • saEvtEventDeliverCallbackT(complete/total:8 /8)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P47-15:P47-19 saEvtEventDeliverCallbackT is called with a subscriptionId. Test if the subscriptionId match the value in Callback.   Y Y
          2.c P47-20:P47-20 saEvtEventDeliverCallbackT is called with a eventhandle. Test if the eventHandle is valid using saEvtEventFree.   Y Y
          3.c P47-21:P47-22 saEvtEventDeliverCallbackT is called with a eventDataSize. Test if the eventDataSize match the ones we published .   Y Y
          4-1.c P47-23:P47-30 saEvtEventDeliverCallbackT is invoked in the context of a thread issuing an saEvtDispatch call on the handle evthandle , which was specified in the saEvtChannelOpen calls. Same with 1   Y Y
          4-2.c P47-23:P47-30 saEvtEventDeliverCallbackT is invoked in the context of a thread issuing an saEvtDispatch call on the handle evthandle , which was specified in the saEvtChannelOpenAsync calls.   Y Y
          5-1.c P47-31:P47-36 after saEvtEventDeliverCallbackT is completed successfully,invoke the saEvtEventAttributesGet to obtain attributes associated with the event.Test if the attributes match the filter of a subscription of this process.   Y Y
          5-2.c P47-31:P47-36 after saEvtEventDeliverCallbackT is completed successfully,invoke the saEvtEventDataGet to obtain the data associated with the event.   Y Y
          6.c P47-37:P47-40 after saEvtEventDeliverCallbackT is completed successfully,using saEvtEventFree to test if the event is valid in outside of this callback function.   Y Y

      • saEvtEventDataGet(complete/total:14 /22)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P45-15:P45-16 Test saEvtEventDataGet with the eventHandle delivered by saEvtEventDeliverCallback. SA_AIS_OK Y Y
          2-1.c P45-17:P45-23 Test eventData got from call saEvtEventDataGet is the same as published. Steps: 1. Initialize a evtHandle, open a channel. 2. Allocate event to the channel and set attributes to the event. 3. Subscribe the event. 4. Get eventData by calling saEvtEventDataGet. 5. Compare eventData with the published data. 6. Free event, close and unlink the channel, finalize the evtHandle. SA_AIS_OK Y Y
          2-2.c P45-17:P45-23 Test saEvtEventDataGet when eventData is NULL. Steps: 1. Initialize a evtHandle, open a channel. 2. Allocate event to the channel and set attributes to the event. 3. Subscribe the event. Publish the event with NULL evtData. 4. Get eventData by calling saEvtEventDataGet. 5. Check whether eventData is NULL. 6. Free event, close and unlink the channel, finalize the evt SA_AIS_OK Y Y
          3-1.c P45-24:P45-33 Test the out value of eventDataSize is the size of the data associated with the event. Steps: 1. Initialize a evtHandle, open a channel. 2. Allocate event to the channel and set attributes to the event. 3. Subscribe the event. 4. Get eventData by calling saEvtEventDataGet. 5. Compare eventDataSize with size of event data. 6. Free event, close and unlink the channel, finalize the evtHandle. SA_AIS_OK Y Y
          3-2.c P45-24:P45-33 Test saEvtEventDataGet will return SA_AIS_ERR_NO_SPACE when buffer provided by the invoking process is not large enough to hold all the data. SA_AIS_ERR_NO_SPACE Y N
          3-3.c P45-24:P45-33 Test saEvtEventDataGet will return SA_AIS_OK when eventData is NULL. Same with 2-2. SA_AIS_OK Y Y
          4-1.c P45-34:P45-36 Test saEvtEventDataGet to retrieve data associated with an event delivered by saEvtEventDeliverCallback(). Same with 2-1. SA_AIS_OK Y Y
          4-2.c P45-34:P45-36 Test saEvtEventDataGet after saEvtEventFree has been invoked for the event handle. Steps: 1. Initialize a evtHandle, open a channel. 2. Allocate event to the channel and set attributes to the event. 3. Subscribe the event and publish the event. 4. Free the event handle,then get eventData by calling saEvtEventDataGet. 5. Free event, unlink the channel, finalize the evtHandle. SA_AIS_ERR_BAD_HANDLE Y Y
          4-3.c P45-34:P45-36 Test saEvtEventDataGet after the corresponding event channel has been closed. Steps: 1. Initialize a evtHandle, open a channel. 2. Allocate event to the channel and set attributes to the event. 3. Subscribe the event and publish the event. 4. CLose the event channel,then get eventData by calling saEvtEventDataGet. 5. Free event, unlink the channel, finalize the evtHandle. SA_AIS_ERR_BAD_HANDLE Y Y
          4-4.c P45-34:P45-36 Test saEvtEventDataGet after the corresponding evtHandle has been finalized. Steps: 1. Initialize a evtHandle, open a channel. 2. Allocate event to the channel and set attributes to the event. 3. Subscribe the event and publish the event. 4. Finalize the evtHandle,then get eventData by calling saEvtEventDataGet. 5. Free event, close and unlink the channel, finalize the evtHandle. SA_AIS_ERR_BAD_HANDLE Y Y
          5.c P45-40:P45-40 Test saEvtEventDataGet will return SA_AIS_OK when completes successfully. Same with 1. SA_AIS_OK Y Y
          6.c P45-41:P45-44 Test saEvtEventDataGet when an unexpected problem occured in the libary. SA_AIS_ERR_LIBARY Y N
          7.c P46-1:P46-4 Test saEvtEventDataGet when an implementation-dependent timeout occured before the call could complete. SA_AIS_ERR_TIMEOUT Y N
          8.c P46-5:P46-6 Test saEvtEventDataGet when the service can not be provided at this time. SA_AIS_ERR_TRY_AGAIN Y N
          9-1.c P46-7:P46-11 Test saEvtEventDataGet will return SA_AIS_ERR_BAD_HANDLE if the handle is invalid, not obtained via the saEvtEventDeliverCallback() function. SA_AIS_ERR_BAD_HANDLE Y Y
          9-2.c P46-7:P46-11 Test saEvtEventDataGet will return SA_AIS_ERR_BAD_HANDLE if the handle is invalid, saEvtEventFree has been invoked for eventHandle. Same with 4-2. SA_AIS_ERR_BAD_HANDLE Y Y
          10.c P46-12:P46-12 Call saEvtEventDataGet after the corresponding event channel has been closed. Same with 4-3. SA_AIS_ERR_BAD_HANDLE Y Y
          11.c P46-13:P46-14 Call saEvtEventDatatGet after the corresponding evtHandle has been finalized. Same with 4-4. SA_AIS_ERR_BAD_HANDLE Y Y
          12.c P46-15:P46-16 Call saEvtEventDataGet with improper parameter. SA_AIS_ERR_INVALID_PARAM Y N
          13.c P46-17:P46-18 Call saEvtEventDataGet with either the Event Service libary or the provider of the service is out of memory and can not provide the service. SA_AIS_ERR_NO_MEMORY Y N
          14.c P46-19:P46-20 Call saEvtEventDataGet when there's no sufficient resource, other than memory. SA_AIS_ERR_NO_RESOURCES Y N
          15.c P46-21:P46-23 Call saEvtEventDataGet when the buffer provided by the process is too small to hold the data associated with the delivered event. Same with 3-2. SA_AIS_ERR_NO_SPACE Y N

      • saEvtEventAttributesSet(complete/total:23 /30)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P40-27:P40-28 Test the api with invalid eventHandle which is not obtained via saEvtEventAllocate or saEvtEventDeliverCallback . SA_AIS_ERR_BAD_HANDLE Y Y
          1-2.c P40-27:P40-28 Test the api with valid eventHandle which is obtained via saEvtEventAllocate . SA_AIS_OK Y Y
          1-3.c P40-27:P40-28 Test the api with valid eventHandle which is obtained via saEvtEventDeliverCallback. SA_AIS_OK Y Y
          2-1.c P40-29:P40-31 Test the api with NULL patternArray and other params. SA_AIS_OK Y Y
          2-2.c P40-29:P40-31 Test the api with non-null patternArray and other params. SA_AIS_OK. Same with 1-2 Y Y
          3-1.c P40-32:P40-32 Test the api with invalid priority and other params. SA_AIS_ERR_INVALID_PARAM Y Y
          3-2.c P40-32:P40-32 Test the api with valid priority and other params. SA_AIS_OK Same with 1-2 Y Y
          4-1.c P40-33:P40-35 Test the api with valid retentionTime set to 100 and other params. SA_AIS_OK Y Y
          4-2.c P40-33:P40-35 Test the api with valid retentionTime set to max and other params. SA_AIS_OK Same with 1-2 Y Y
          5-1.c P40-36:P40-37 Test the api with null publisherName and other params SA_AIS_OK Y Y
          5-2.c P40-36:P40-37 Test the api with non-null publisherName and other params SA_AIS_OK Same with 1-2 Y Y
          6.c P40-38:P40-42 Test the api with valid params. SA_AIS_OK Same with 1-2 Y Y
          7-1.c P40-43:P41-1 Test the api with null publisherName . Test the corresponding publisherName in attributes are not changed. SA_AIS_OK Y Y
          7-2.c P40-43:P41-1 Test the api with null patterArray. Test the corresponding patterArray in attributes are not changed. SA_AIS_OK Y Y
          7-3.c P40-43:P41-1 Test the api with null publisherName and null patterArray. Test the corresponding publisherName and patterArray in attributes are not changed. SA_AIS_OK Y Y
          8.c P41-2:P41-5 Test if saEvtEventAttributesSet can return SA_AIS_OK. SA_AIS_OK. Return = SA_AIS_OK Same with 1-2 Y Y
          9.c P41-6:P41-7 Test if saEvtEventAttributesSet can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          10.c P41-8:P41-11 Test if saEvtEventAttributesSet can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          11.c P41-12:P41-14 Test if saEvtEventAttributesSet can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          12-1.c P41-15:P41-19 Test if saEvtEventAttributesSet can return SA_AIS_ERR_BAD_HANDLE when the eventHandle is not obtained via saEvtEventAllocate or saEvtEventDeliverCallback . SA_AIS_ERR_BAD_HANDLE when the eventHandle is not obtained via saEvtEventAllocate or saEvtEventDeliverCallback . Return = SA_AIS_ERR_BAD_HANDLE Same with 1-1 Y Y
          12-2.c P41-15:P41-19 Test if saEvtEventAttributesSet can return SA_AIS_ERR_BAD_HANDLE when the saEvtEventFree is invoked. SA_AIS_ERR_BAD_HANDLE when the saEvtEventFree is invoked. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          13.c P41-20:P41-20 Test if saEvtEventAttributesSet can return SA_AIS_ERR_BAD_HANDLE when the eventHandle is closed . SA_AIS_ERR_BAD_HANDLE when the eventHandle is closed . Return = SA_AIS_ERR_BAD_HANDLE Y Y
          14-1.c P41-21:P41-22 Test if saEvtEventAttributesSet can return SA_AIS_ERR_BAD_HANDLE when the evtHandle that was passed to the saEvtChannelOpen() functions has already been finalized. SA_AIS_ERR_BAD_HANDLE when the evtHandle that was passed to the saEvtChannelOpen() functions has already been finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          14-2.c P41-21:P41-22 Test if saEvtEventAttributesSet can return SA_AIS_ERR_BAD_HANDLE when the evtHandle that was passed to the saEvtChannelOpenAsync() functions has already been finalized. SA_AIS_ERR_BAD_HANDLE when the evtHandle that was passed to the saEvtChannelOpenAsync() functions has already been finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          15.c P41-23:P41-24 Test if saEvtEventAttributesSet can return SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 3-1 Y Y
          16.c P41-25:P41-26 Test if saEvtEventAttributesSet can return SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Return = SA_AIS_ERR_NO_MEMORY Y N
          17.c P41-27:P41-29 Test if saEvtEventAttributesSet can return SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Return = SA_AIS_ERR_NO_RESOURCES Y N
          18.c P41-30:P41-33 Test if saEvtEventAttributesSet can return SA_AIS_ERR_ACCESS.when a subscribe want to modify an event. SA_AIS_ERR_ACCESS.when a subscribe want to modify an event. Return = SA_AIS_ERR_ACCESS Same with 1-3 Y Y
          19-1.c P41-34:P41-36 Test if saEvtEventAttributesSet can return SA_AIS_ERR_TOO_BIG.when the value patternSize of one or more pattern is larger than the maximum value permitted. SA_AIS_ERR_TOO_BIG.when the value patternSize of one or more pattern is larger than the maximum value permitted. Return = SA_AIS_ERR_TOO_BIG Y N
          19-2.c P41-34:P41-36 Test if saEvtEventAttributesSet can return SA_AIS_ERR_TOO_BIG.when the value patternNumber is larger than the maximum value permitted. SA_AIS_ERR_TOO_BIG.when the value patternNumber is larger than the maximum value permitted. Return = SA_AIS_ERR_TOO_BIG Y N

      • saEvtEventUnsubscribe(complete/total:13 /16)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P52-40:P53-2 Call the api with invalid channelHandle which is not obtained by the invocation of the saEvtChannelOpen or saEvtChannelOpenAsync functions. SA_AIS_ERR_BAD_HANDLE Y Y
          1-2.c P52-40:P53-2 Call the api with valid channelHandle and other valid params SA_AIS_OK Y Y
          2.c P53-3:P53-5 Call the api with valid subscriptionId and other valid params SA_AIS_OK Same with 1-2 Y Y
          3-1.c P53-6:P53-10 Call the api with valid params before the publish.Test if the process cannot receive events after the api is called. SA_AIS_OK Y Y
          3-2.c P53-6:P53-10 Call the api with valid params after the publish.Test if the process cannot receive events after the api is called. SA_AIS_OK Y Y
          4-1.c P53-11:P53-12 Call the api with invalid subscriptionId parameter which does not match a previously registered subscription. SA_AIS_ERR_NOT_EXIST Y Y
          4-2.c P53-11:P53-12 Call the api with valie subscriptionId parameter which matched a previously registered subscription. SA_AIS_OK Same with 1-2 Y Y
          5-1.c P53-13;P53-17 Test if a process that wishes to modify a subscription without losing any events must establish the new subscription before removing the existing subscription. 1.create a subscription 2.create a new subscrition 3.remove the old subsrciption 4.publish a event and dispatch all 5.check if the new subscription accept the event published in step 4 then the event will not lost SA_AIS_OK Y Y
          5-2.c P53-13;P53-17 Test if a process that wishes to modify a subscription without losing any events must establish the new subscription before removing the existing subscription. 1.create a subscription 2.remove the old subsrciption 3.publish a event,and dispatch all. 4.create a new subscription 5.check if the new subscription accept the event published in step 3. The event should be lost SA_AIS_OK Y Y
          6.c P53-18:P53-20 Test if the api can return SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-2 Y Y
          7.c P53-21:P53-22 Test if the api can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          8.c P53-23:P53-26 Test if the api can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          9.c P53-27:P53-28 Test if the api can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          10-1.c P53-29:P53-35 Test if the api can return SA_AIS_ERR_BAD_HANDLE when the channel handle is not obtained via the saEvtChannelOpen or saEvtChannelOpenCallback. SA_AIS_ERR_BAD_HANDLE when the channel handle is not obtained via the saEvtChannelOpen or saEvtChannelOpenCallback. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-1 Y Y
          10-2.c P53-29:P53-35 Test if the api can return SA_AIS_ERR_HANDLE when the channel handle is closed. SA_AIS_ERR_HANDLE when the channel handle is closed. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          11.c P53-36:P53-37 Test if the api can return SA_AIS_ERR_HANDLE when the handle evtHandle that was passed to the saEvtChannelOpen or saEvtChannelOpenAsync has already been finalized. SA_AIS_ERR_HANDLE when the handle evtHandle that was passed to the saEvtChannelOpen or saEvtChannelOpenAsync has already been finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          12.c P53-38:P53-40 Test if the api can return SA_AIS_ERR_NOT_EXIST,when the subscriptionId parameter does not match any currently registered subscription for the calling process. SA_AIS_ERR_NOT_EXIST,when the subscriptionId parameter does not match any currently registered subscription for the calling process. Return = SA_AIS_ERR_NOT_EXIST Same with 4-1 Y Y

      • saEvtEventFree(complete/total:9 /12)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P39-15:P39-17 Free the event with invaid eventHandle which is not obtained via saEvtEventAllocate or saEvtEventDeliverCallback. SA_AIS_ERR_BAD_HANDLE Y Y
          1-2.c P39-15:P39-17 Free the event with invalid eventHandle which is freed by saEvtEventFree. SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P39-15:P39-17 Free the event with valid eventHandle SA_AIS_OK Y Y
          2-1.c P39-18:P39-25 Free the event channel with valid params,Test if the eventhandle is freed when the eventHandle is gotten from saEvtEventAllocate SA_AIS_OK Y Y
          2-2.c P39-18:P39-25 Free the event channel with valid params,Test if the eventhandle is freed when the eventHandle is gotten from saEvtEventDeliverCallback SA_AIS_OK Y Y
          3.c P39-26:P39-27 Test if saEvtEventFree can return SA_AIS_OK. SA_AIS_OK. Return = SA_AIS_OK Same with 1-3 Y Y
          4.c P39-28:P39-30 Test if saEvtEventFree can return SA_AIS_ERR_LIBARAY. SA_AIS_ERR_LIBARAY. Return = SA_AIS_ERR_LIBARAY Y N
          5.c P39-31:P39-34 Test if saEvtEventFree can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Return = SA_AIS_ERR_TIMEOUT Y N
          6.c P39-35:P39-36 Test if saEvtEventFree can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Return = SA_AIS_ERR_TRY_AGAIN Y N
          7.c P39-37:P39-43 Test if saEvtEventFree can return SA_AIS_ERR_BAD_HANDLE. when the event handle is not via saEvtEventAllocate or saEvtEventDeliverCallback SA_AIS_ERR_BAD_HANDLE. when the event handle is not via saEvtEventAllocate or saEvtEventDeliverCallback Return = SA_AIS_ERR_BAD_HANDLE Same with 1-1 Y Y
          8.c P40-1:P40-1 Test if saEvtEventFree can return SA_AIS_ERR_BAD_HANDLE. when the corresponding event channel has already been closed. SA_AIS_ERR_BAD_HANDLE. when the corresponding event channel has already been closed. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          9.c P40-2:P40-3 Test if saEvtEventFree can return SA_AIS_ERR_BAD_HANDLE. when the handle evtHandle that was passed to the saEvtChannelOpen or saEvtChannelOpenAsync has already been finalized. SA_AIS_ERR_BAD_HANDLE. when the handle evtHandle that was passed to the saEvtChannelOpen or saEvtChannelOpenAsync has already been finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y

    • evt_channel(complete/total:95/115)
      • saEvtChannelUnlink(complete/total:17 /20)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P36-13:P36-16 Call saEvtChannelUnlink with normal parameters. SA_AIS_OK. Y Y
          1-2.c P36-13:P36-16 Call saEvtChannelUnlink with before initialization. SA_AIS_ERR_BAD_HANDLE. Y Y
          1-3.c P36-13:P36-16 Call saEvtChannelUnlink after finalization. SA_AIS_ERR_BAD_HANDLE. Y Y
          2-1.c P36-17:P36-17 Call saEvtChannelUnlink with a existing channel name. SA_AIS_OK. Same with 1-1 Y Y
          2-2.c P36-17:P36-17 Call saEvtChannelUnlink with an un-existing channel name. SA_AIS_ERR_NOT_EXIST. Y Y
          2-3.c P36-17:P36-17 Call saEvtChannelUnlink with an null pointer of channel name. SA_AIS_ERR_INVALID_PARAM. Y Y
          3.c P36-18:P36-22 create a channel, close it, then unlink it, check if the channel handle has been invalid. SA_AIS_OK Same with 1-1 Y Y
          4.c P36-23:P36-26 create a channel, close it, then unlink it, check if the channel name is invalid through open it again with SA_EVT_CHANNEL_PUBLISHER flag set. SA_EVT_CHANNEL_PUBLISHER flag set. Return = SA_AIS_OK Same with 1-1 Y Y
          5.c P36-27:P36-32 create a channel, close it, then unlink it. create another channel with same name and SA_EVT_CHANNEL_CREATE flag. SA_EVT_CHANNEL_CREATE flag. Return = SA_AIS_OK Y Y
          6.c P36-33:P36-34 create a channel, close it, then unlink it, check if the channel name has been invalid . SA_AIS_OK Same with 1-1. Y Y
          7.c P36-33:P36-37 create a channel and fork a sub-process, sub-process close the channel, at this time,and unlink it; the main process still can access the channel. after sub-process unlink the channel. SA_AIS_OK 7-fork.c is used as its child process Y Y
          8.c P36-41:P36-42 after the channel is unlinked and deleted , Test if the publisher event with non-zero retentionTime on the channel will be freed. SA_AIS_OK Y Y
          9.c P37-1:P37-2 create a channel and fork a sub-process in which the channel is unlinked to test if the invoking process need not be creater or opener of the event channel. SA_AIS_OK. 9-fork.c is used as its child process Y Y
          10.c P37-3:P37-6 Test if saEvtChannelUnlink can return SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-1 Y Y
          11.c P37-7:P37-8 Test if saEvtChannelUnlink can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          12.c P37-9:P37-12 Test if saEvtChannelUnlink can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          13.c P37-13:P37-15 Test if saEvtChannelUnlink can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          14.c P37-16:P37-17 Test if saEvtChannelUnlink can return SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2. Y Y
          15.c P37-18:P37-18 Test if saEvtChannelUnlink can return SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 2-3 Y Y
          16.c P37-19:P37-20 Test if saEvtChannelUnlink can return SA_AIS_ERR_NOT_EXIST SA_AIS_ERR_NOT_EXIST Return = SA_AIS_ERR_NOT_EXIST Same with 2-2 Y Y

      • saEvtChannelOpenAsync(complete/total:28 /33)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P30-29:P30-31 Open channel before initialization. SA_AIS_ERR_BAD_HANDLE Y Y
          1-2.c P30-29:P30-31 Open channel with valid evtHandle and other valid params SA_AIS_OK Y Y
          2.c P30-32:P30-34 Open channel with valid invocation and other valid params SA_AIS_OK Same with 1-2 Y Y
          3-1.c P30-35:P30-37 Open a channel with null channelName SA_AIS_ERR_INVALID_PARAM Y Y
          3-2.c P30-35:P30-37 Open a channel with valid channelName and other valid params SA_AIS_OK Same with 1-2 Y Y
          4-1.c P30-38:P30-42 Open a channel with SA_EVT_CHANNEL_PUBLISHER | SA_EVT_CHANNEL_CREATE flags set. SA_EVT_CHANNEL_PUBLISHER | SA_EVT_CHANNEL_CREATE flags set. Return = SA_AIS_OK Y Y
          4-2.c P30-38:P30-42 Open a channel with SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_CREATE flags set. SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_CREATE flags set. Return = SA_AIS_OK Y Y
          4-3.c P30-38:P30-42 Open a existing channel with SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_PUBLISHER flags set. SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_PUBLISHER flags set. Return = SA_AIS_OK Y Y
          4-4.c P30-38:P30-42 Open a channel with invalid channelOpenFlags and other valid params SA_AIS_ERR_BAD_FLAGS Y Y
          5.c P30-43:P31-1 Open a channel with SA_EVT_CHANNEL_PUBLISHER | SA_EVT_CHANNEL_CREATE flags set.Test if the process can use the return handler with saEvtEventPublisher Steps: 1.initialize a evthandle 2.use the evthandle to open a channel with SA_EVT_CHANNEL_PUBLISHER. 3.allocate a event for the channel. 4.set the event attribute. 5.publish the event through the channel. Return = SA_AIS_OK SA_EVT_CHANNEL_PUBLISHER | SA_EVT_CHANNEL_CREATE flags set.Test if the process can use the return handler with saEvtEventPublisher Steps: 1.initialize a evthandle 2.use the evthandle to open a channel with SA_EVT_CHANNEL_PUBLISHER. 3.allocate a event for the channel. 4.set the event attribute. 5.publish the event through the channel. Return = SA_AIS_OK Y Y
          6.c P31-2:P31-3 Open a channel with SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_CREATE flags set.Test if the process can use the return handler with saEvtEventSubscribe Steps: 1.initialize a evthandle. 2.use the evthandle to open a channel with SA_EVT_CHANNEL_SUBSCRIBER 3.subscribe the event from the channel. Return = SA_AIS_OK SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_CREATE flags set.Test if the process can use the return handler with saEvtEventSubscribe Steps: 1.initialize a evthandle. 2.use the evthandle to open a channel with SA_EVT_CHANNEL_SUBSCRIBER 3.subscribe the event from the channel. Return = SA_AIS_OK Y Y
          7.c P31-4:P31-4 Open a existed channel without SA_EVT_CHANNEL_CREATE flags set Steps: 1.initialize a evthandle. 2.use the evthandle to create a channel . 3.close the channel. 4.open a channel without SA_EVT_CHANNEL_CREATE. SA_EVT_CHANNEL_CREATE flags set Steps: 1.initialize a evthandle. 2.use the evthandle to create a channel . 3.close the channel. 4.open a channel without SA_EVT_CHANNEL_CREATE. Return = SA_AIS_OK Y Y
          8.c P31-5:P31-6 Open a not existed channel with SA_EVT_CHANNEL_CREATE flags set SA_EVT_CHANNEL_CREATE flags set Return = SA_AIS_OK Same with 1-2 Y Y
          9.c P31-11:P31-16 Open a channel and use saChannelClose to test whether channelHandle is valid in the corresponding callback. SA_AIS_OK Y Y
          10.c P31-17:P31-24 Open a channel with valid params SA_AIS_OK Same with 1-2 Y Y
          11-1.c P31-25:P31-28 Open a channel when the associated saEvtChannelOpenCallback callback function has been supplied . SA_AIS_OK Same with 1-2 Y Y
          11-2.c P31-25:P31-28 Open a channel when the associated saEvtChannelOpenCallback callback function has not been supplied. SA_AIS_ERR_INIT Y Y
          12.c P31-29:P31-33 Open a channel and test whether invocation is the same as what we set in the corresponding callback. SA_AIS_OK Y Y
          13-1.c P31-34:P31-35 Open a channel multiple times in the same process. Steps: 1.initialize a evthandle. 2.use the evthandle to open a channel. 3.open the channel again and again. SA_AIS_OK Y Y
          13-2.c P31-34:P31-35 Open a channel multiple times in the different processes. Steps: 1.initialize a evthandle. 2.use the evthandle to open a channel. 3.fork a childprocess, and in the child process,open the channel again. 4.parent process wait until the childprocess finishes. SA_AIS_OK 13-2-fork.c is used as its child process Y Y
          14.c P31-35:P31-36 Test if when a process opens an event channel multiple times,it is possible to receive the same event multiple times. Steps: 1.initialize a evthandle. 2.use the evthandle to open a channel with SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_PUBLISHER| SA_EVT_CHANNEL_CREATE once more. 3.allocate a event handle for the channel. 4.publish a event through the event handle. 5.get the event after dispatching .Test if it get the event more than once. SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_PUBLISHER| SA_EVT_CHANNEL_CREATE once more. 3.allocate a event handle for the channel. 4.publish a event through the event handle. 5.get the event after dispatching .Test if it get the event more than once. Return = SA_AIS_OK Y Y
          15.c P31-37:P31-37 Test if a process can receive an event more than once on a particular event channel handle. Steps: 1.initialize a evthandle. 2.use the evthandle to open a channel with SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_PUBLISHER| SA_EVT_CHANNEL_CREATE. 3.allocate a event handle for the channel. 4.publish a event using the event handle twice. 5.get the event after dispatching .Test if it get the event more than once. SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_PUBLISHER| SA_EVT_CHANNEL_CREATE. 3.allocate a event handle for the channel. 4.publish a event using the event handle twice. 5.get the event after dispatching .Test if it get the event more than once. Return = SA_AIS_OK Y Y
          16.c P32-1:P32-3 Test if saEvtChannelOpenAsync can return SA_AIS_OK. SA_AIS_OK. Return = SA_AIS_OK Same with 1-2 Y Y
          17.c P32-4:P32-6 Test if saEvtChannelOpenAsync can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Return = SA_AIS_ERR_LIBRARY Y N
          18.c P32-7:P32-10 Test if saEvtChannelOpenAsync can return SA_AIS_ERR_TIMEOUT,when timeout is set to 0. SA_AIS_ERR_TIMEOUT,when timeout is set to 0. Return = SA_AIS_ERR_TIMEOUT Y N
          19.c P32-11:P32-12 Test if saEvtChannelOpenAsync can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Return = SA_AIS_ERR_TRY_AGAIN Y N
          20.c P32-13:P32-15 Test if saEvtChannelOpenAsync can return SA_AIS_ERR_BAD_HANDLE,when open a channel after finalization. SA_AIS_ERR_BAD_HANDLE,when open a channel after finalization Y Y
          21.c P32-16:P32-17 Test if saEvtChannleOpenAsync can return SA_AIS_ERR_INIT. SA_AIS_ERR_INIT. Return = SA_AIS_ERR_INIT Same with 11-2 Y Y
          22.c P32-18:P32-19 Test if saEvtChannelOpenAsync can return SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_INVALID_PARAM Same with 3-1 Y Y
          23.c P32-20:P32-21 Test if saEvtChannelOpenAsync can return SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY. Return = SA_AIS_NO_MEMORY Y N
          24.c P32-22:P32-23 Test if saEvtChannelOpenAsync can return SA_AIS_ERR_NO_RESOURCES. SA_AIS_ERR_NO_RESOURCES. Return = SA_AIS_ERR_NO_RESOURCES Y N
          25.c P32-24:P32-26 Test if saEvtChannelOpenAsync can return SA_AIS_ERR_NOT_EXIST,when open a non-existed channel without SA_EVT_CHANNEL_CREATE flags set. SA_AIS_ERR_NOT_EXIST,when open a non-existed channel without SA_EVT_CHANNEL_CREATE flags set. Return = SA_AIS_ERR_NOT_EXIST Y Y
          26.c P32-27:P32-27 Test if saEvtChannelOpenAsync can return SA_AIS_ERR_BAD_FLAGS. SA_AIS_ERR_BAD_FLAGS. Return = SA_AIS_ERR_BAD_FLAGS. Same with 4-2 Y Y

      • saEvtChannelOpenCallbackT(complete/total:6 /11)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P33-15:P33-19 saEvtChannelOpenCallback with a invocation. Check if the invocation match the value in Callback and the error code is SA_AIS_OK. SA_AIS_OK. Y Y
          2.c P33-20:P33-21 saEvtChannelOpenCallback with normal params. Same with 1.   Y Y
          3.c P33-22:P33-25 Test if the saEvtChannelOpenCallbackT can get code SA_AIS_OK. Same with 1. SA_AIS_OK. Same with 1. Y Y
          4.c P33-26:P33-27 Test if the saEvtChannelOpenCallbackT can get code SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Y N
          5.c P33-28:P33-30 Test if the saEvtChannelOpenCallbackT can get code SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Y N
          6.c P33-31:P33-32 Test if the saEvtChannelOpenCallbackT can get code SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Y N
          7.c P33-33:P33-35 Test if the saEvtChannelOpenCallbackT can get code SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY. Y N
          8.c P33-36:P33-37 Test if the saEvtChannelOpenCallbackT can get code SA_AIS_ERR_NO_RESOURCES. SA_AIS_ERR_NO_RESOURCES. Y N
          9.c P33-38:P33-40 Test if the saEvtChannelOpenCallbackT can get code SA_AIS_ERR_NOT_EXIST. SA_AIS_ERR_NOT_EXIST. Y Y
          10.c P33-41:P33-41 Test if the saEvtChannelOpenCallbackT can get code SA_AIS_ERR_BAD_FLAGS. SA_AIS_ERR_BAD_FLAGS. Y Y
          11.c P34-1:P34-10 Open with a valid evthandle. dispatch, the saEvtChannelOpenCallbackT should get code SA_AIS_OK. Same with 1 SA_AIS_OK. Same with 1 Y Y

      • saEvtChannelClose(complete/total:17 /20)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P34-29:P34-32 Call saEvtChannelClose without initialization. SA_AIS_ERR_BAD_HANDLE Y Y
          1-2.c P34-29:P34-32 Call saEvtChannelClose after finalization. SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P34-29:P34-32 Test saEvtChannelClose with an invalid channelHandle which has already been closed. SA_AIS_ERR_BAD_HANDLE Y Y
          1-4.c P34-29:P34-32 Call saEvtChannelClose with valid params. SA_AIS_OK Y Y
          1-5.c P34-29:P34-32 Test saEvtChannelClose with a channelHandle not obtained via the saEvtChannelOpen. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P34-35:P34-37 Test saEvtChannelClose will close event channel opened by an earlier invocation of saEvtChannelOpen(). Same with 1-4. SA_AIS_OK Y Y
          2-2.c P34-35:P34-37 Test saEvtChannelClose will close event channel opened by an earlier invocation of saEvtChannelOpenAsync(). SA_AIS_OK Y Y
          3.c P34-38:P34-38 Call channelHandle which has been closed. Same with 1-3. SA_AIS_ERR_BAD_HANDLE Y Y
          4.c P34-39:P34-42 Call saEvtChannelClose after saEvtChannelUnlink. The channelHandle should be deleted. SA_AIS_OK Y Y
          5.c P35-1:P35-3 Test if events allocated for a process are all freed when an event channel closes. Steps: 1. Initialize an evtHanle 2. Open a channel 3. Allocate event to the channel 4. Close the channel. The event should be freed. 5. Call the event by eventhandle, should return bad handle. 6. Unlink the channel and finalize the evtHandle. SA_AIS_OK Y Y
          6.c P35-4:P35-6 Test if published events with non-zero retention time allocated for an event channel are all freed when the event channel closes. Steps: 1. Initialize an evtHandle and open a channel. 2. Allocate event to the channel and set attributes to the event. 3. Publish the event 4. Close the channel and Unlink the channel. Then the event allocated should be released. 5. Call the event using eventHandle should be failed with bad handle. SA_AIS_OK Y Y
          7.c P35-7:P35-8 Test if event channels are all closed when a process terminates. Steps: 1. Open a event channel in main process 2. Fork a subprocess and open the same event channel in the subprocess 3. Subprocess ends 4. Close and Unlink the event channel in main process. If the event channel has been closed when the subprocess died, the unlink here should succeed. 5. Re-create a event channel using the same name as 1. If succeed, The case passes. SA_AIS_ERR_BAD_HANDLE Y Y
          8.c P35-9:P35-12 Test if pending callbacks are canceled when an event channel closes. SA_AIS_OK Y Y
          9.c P35-15:P35-16 Test if saEvtChannelClose can return SA_AIS_OK. Same with 1-4. SA_AIS_OK Y Y
          10.c P35-17:P35-18 Test if saEvtChannelClose can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY Y N
          11.c P35-19:P35-21 Test if saEvtChannelClose can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT Y N
          12.c P35-22:P35-24 Test if saEvtChannelClose can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN Y N
          13-1.c P35-25:P35-30 Test saEvtChannelClose with a channelHandle not obtained via the saEvtChannelOpen. Same with 1-5. SA_AIS_ERR_BAD_HANDLE Y Y
          13-2.c P35-25:P35-30 Test saEvtChannelClose with an invalid channelHandle which has already been closed. Same with 1-3. SA_AIS_ERR_BAD_HANDLE Y Y
          14.c P35-31:P35-33 Call saEvtChannelClose with evtHandle which has been finalized. Same with 1-2. SA_AIS_ERR_BAD_HANDLE Y Y

      • saEvtChannelOpen(complete/total:27 /31)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P30-29:P30-31 Open channel before initialization. SA_AIS_ERR_BAD_HANDLE Y Y
          1-2.c P30-29:P30-31 Open channel with valid evtHandle and other valid params SA_AIS_OK Y Y
          2-1.c P30-35:P30-37 Open a channel with null channelName SA_AIS_ERR_INVALID_PARAM Y Y
          2-2.c P30-35:P30-37 Open a channel with valid channelName and other valid params SA_AIS_OK Same with 1-2 Y Y
          3-1.c P30-38:P30-42 Open a channel with SA_EVT_CHANNEL_PUBLISHER | SA_EVT_CHANNEL_CREATE flags set. SA_EVT_CHANNEL_PUBLISHER | SA_EVT_CHANNEL_CREATE flags set. Return = SA_AIS_OK Same with 1-2 Y Y
          3-2.c P30-38:P30-42 Open a channel with SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_CREATE flags set. SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_CREATE flags set. Return = SA_AIS_OK Y Y
          3-3.c P30-38:P30-42 Open a existed channel with SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_PUBLISHER flags set. SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_PUBLISHER flags set. Return = SA_AIS_OK Y Y
          3-4.c P30-38:P30-42 Open a channel with invalid channelOpenFlags and other valid params SA_AIS_ERR_BAD_FLAGS Y Y
          4.c P30-43:P31-1 Open a channel with SA_EVT_CHANNEL_PUBLISHER | SA_EVT_CHANNEL_CREATE flags set.Test if the process can use the return handler with saEvtEventPublisher Steps: 1.initialize a evthandle 2.use the evthandle to open a channel with SA_EVT_CHANNEL_PUBLISHER. 3.allocate a event for the channel. 4.set the event attribute. 5.publish the event through the channel. Return = SA_AIS_OK SA_EVT_CHANNEL_PUBLISHER | SA_EVT_CHANNEL_CREATE flags set.Test if the process can use the return handler with saEvtEventPublisher Steps: 1.initialize a evthandle 2.use the evthandle to open a channel with SA_EVT_CHANNEL_PUBLISHER. 3.allocate a event for the channel. 4.set the event attribute. 5.publish the event through the channel. Return = SA_AIS_OK Y Y
          5.c P31-2:P31-3 Open a channel with SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_CREATE flags set.Test if the process can use the return handler with saEvtEventSubscribe Steps: 1.initialize a evthandle. 2.use the evthandle to open a channel with SA_EVT_CHANNEL_SUBSCRIBER 3.subscribe the event from the channel. Return = SA_AIS_OK SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_CREATE flags set.Test if the process can use the return handler with saEvtEventSubscribe Steps: 1.initialize a evthandle. 2.use the evthandle to open a channel with SA_EVT_CHANNEL_SUBSCRIBER 3.subscribe the event from the channel. Return = SA_AIS_OK Y Y
          6.c P31-4:P31-4 Open a existed channel without SA_EVT_CHANNEL_CREATE flags set Steps: 1.initialize a evthandle. 2.use the evthandle to create a channel. 3.close the channel. 4.open a channel without SA_EVT_CHANNEL_CREATE. SA_EVT_CHANNEL_CREATE flags set Steps: 1.initialize a evthandle. 2.use the evthandle to create a channel. 3.close the channel. 4.open a channel without SA_EVT_CHANNEL_CREATE. Return = SA_AIS_OK Y Y
          7.c P31-5:P31-6 Open a not existed channel with SA_EVT_CHANNEL_CREATE flags set SA_EVT_CHANNEL_CREATE flags set Return = SA_AIS_OK Same with 1-2 Y Y
          8-1.c P31-7:P31-10 Open a channel with timeout which is set to 0 SA_AIS_ERR_TIMEOUT Y Y
          8-2.c P31-7:P31-10 Open a channel with valid timeout and other valid params SA_AIS_OK Same with 1-2 Y Y
          9-1.c P31-11:P31-16 Open a channel with null channelhandle and other valid params SA_ERR_INVALID_PARAM Y Y
          9-2.c P31-11:P31-16 Open a channel with valid channelhandle and other valid params. and then using the channelhandle to open a eventhandle. SA_AIS_OK Y Y
          10.c P31-17:P31-24 Open a channel with valid params SA_AIS_OK Same with 1-2 Y Y
          11-1.c P31-34:P31-35 Open a channel multiple times in the same process. Steps: 1.initialize a evthandle. 2.use the evthandle to open a channel. 3.open the channel again and again. SA_AIS_OK Y Y
          11-2.c P31-34:P31-35 Open a channel multiple times in the different processes. Steps: 1.initialize a evthandle. 2.use the evthandle to open a channel. 3.fork a childprocess, and in the child process,open the channel again. 4.parent process wait until the childprocess finishes. SA_AIS_OK 11-2-fork.c is used as its child process Y Y
          12.c P31-35:P31-36 Test if when a process opens an event channel multiple times,it is possible to receive the same event multiple times. Steps: 1.initialize a evthandle. 2.use the evthandle to open a channel with SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_PUBLISHER| SA_EVT_CHANNEL_CREATE once more. 3.allocate a event handle for the channel. 4.publish a event through the event handle. 5.get the event after dispatching .Test if it get the event more than once. SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_PUBLISHER| SA_EVT_CHANNEL_CREATE once more. 3.allocate a event handle for the channel. 4.publish a event through the event handle. 5.get the event after dispatching .Test if it get the event more than once. Return = SA_AIS_OK Y Y
          13.c P31-37:P31-37 Test if a process can receive an event more than once on a particular event channel handle. Steps: 1.initialize a evthandle. 2.use the evthandle to open a channel with SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_PUBLISHER| SA_EVT_CHANNEL_CREATE. 3.allocate a event handle for the channel. 4.publish a event using the event handle twice. 5.get the event after dispatching .Test if it get the event more than once. SA_EVT_CHANNEL_SUBSCRIBER | SA_EVT_CHANNEL_PUBLISHER| SA_EVT_CHANNEL_CREATE. 3.allocate a event handle for the channel. 4.publish a event using the event handle twice. 5.get the event after dispatching .Test if it get the event more than once. Return = SA_AIS_OK Y Y
          14.c P32-1:P32-3 Test if saEvtChannelOpen can return SA_AIS_OK. SA_AIS_OK. Return = SA_AIS_OK Same with 1-2 Y Y
          15.c P32-4:P32-6 Test if saEvtChannelOpen can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Return = SA_AIS_ERR_LIBRARY Y N
          16.c P32-7:P32-10 Test if saEvtChannelOpen can return SA_AIS_ERR_TIMEOUT,when timeout is set to 0. SA_AIS_ERR_TIMEOUT,when timeout is set to 0. Return = SA_AIS_ERR_TIMEOUT Same with 8-1 Y Y
          17.c P32-11:P32-12 Test if saEvtChannelOpen can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Return = SA_AIS_ERR_TRY_AGAIN Y N
          18.c P32-13:P32-15 Test if saEvtChannelOpen can return SA_AIS_ERR_BAD_HANDLE,when open a channel after finalization. Steps: 1.initialize a evthandle. 2.finalize the evthandle. 3.use the evthandle to open a channel. SA_AIS_ERR_BAD_HANDLE,when open a channel after finalization. Steps: 1.initialize a evthandle. 2.finalize the evthandle. 3.use the evthandle to open a channel Y Y
          19.c P32-18:P32-19 Test if saEvtChannelOpen can return SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_INVALID_PARAM Same with 2-1 Y Y
          20.c P32-20:P32-21 Test if saEvtChannelOpen can return SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY. Return = SA_AIS_NO_MEMORY Y N
          21.c P32-22:P32-23 Test if saEvtChannelOpen can return SA_AIS_ERR_NO_RESOURCES. SA_AIS_ERR_NO_RESOURCES. Return = SA_AIS_ERR_NO_RESOURCES Y N
          22.c P32-24:P32-26 Test if saEvtChannelOpen can return SA_AIS_ERR_NOT_EXIST,when open a non-existed channel without SA_EVT_CHANNEL_CREATE flags set. SA_AIS_ERR_NOT_EXIST,when open a non-existed channel without SA_EVT_CHANNEL_CREATE flags set. Return = SA_AIS_ERR_NOT_EXIST Y Y
          23.c P32-27:P32-27 Test if saEvtChannelOpen can return SA_AIS_ERR_BAD_FLAGS. SA_AIS_ERR_BAD_FLAGS. Return = SA_AIS_ERR_BAD_FLAGS. Same with 3-4 Y Y

    • lifecycle(complete/total:45/62)
      • saEvtDispatch(complete/total:11 /14)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P27-35:P27-37 Dispatch correctly, Set valid evtHandle value and dispatch Flag to SA_DISPATCH_ONE. The function should complete successfully. SA_DISPATCH_ONE. The function should complete successfully. Return = SA_AIS_OK Y Y
          1-2.c P27-35:P27-37 Dispatch is called with an unintialized saEvtHandle. SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P27-35:P27-37 Dispatch is called with a finalized evthandle. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P27-38:P27-42 Dispatch correctly, Set valid evtHandle value and dispatch Flag to SA_DISPATCH_ONE. The function should complete successfully. SA_DISPATCH_ONE. The function should complete successfully. Return = SA_AIS_OK Same with 1-1 Y Y
          2-2.c P27-38:P27-42 Dispatch correctly, Set dispatch Flag to SA_DISPATCH_ALL. The function completes successfully. SA_DISPATCH_ALL. The function completes successfully. Return = SA_AIS_OK Y Y
          2-3.c P27-38:P27-42 Dispatch correctly, Set dispatch Flag to SA_DISPATCH_BLOCKING. The function completes successfully. SA_DISPATCH_BLOCKING. The function completes successfully. Return = SA_AIS_OK Y Y
          2-4.c P27-38:P27-42 Dispatch is called with an dispatch flag other than "SA_DISPATCH_ONE, SA_DISPATCH_ALL or SA_DISPATCH_BLOCKING". SA_DISPATCH_ONE, SA_DISPATCH_ALL or SA_DISPATCH_BLOCKING". Return = SA_AIS_ERR_INVALID_PARAM Y Y
          3.c P28-1:P28-5 Dispatch correctly, Set valid evtHandle value and dispatch Flag SA_AIS_OK Same with 1-1 Y Y
          4.c P28-6:P28-7 Test whether the API saEvtDispatch can return value SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-1 Y Y
          5.c P28-8:P28-11 Test whether the API saEvtDispatch can return value SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          6.c P28-12:P28-14 Test whether the API saEvtDispatch can return value SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          7.c P28-15:P28-17 Test whether the API saEvtDispatch can return value SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          8.c P28-18:P28-19 Test whether the API saEvtDispatch can return value SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          9.c P28-20:P28-20 Test whether the API saEvtDispatch can return value SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 2-4 Y Y

      • saEvtSelectionObjectGet(complete/total:10 /16)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P26-22:P26-24 Get the selectionObject with valid parameter, including evtHandle, and selectionObject SA_AIS_OK Y Y
          1-2.c P26-22:P26-24 Get the selectionObject without initialize SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P26-22:P26-24 Get the selectionObject after finalize, which will cause the evtHandle unvalid SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P26-25:P26-27 Get the selectionObject with valid parameter SA_AIS_OK Same with test case 1-1 Y Y
          2-2.c P26-25:P26-27 Set the return selectionObject as NULL SA_AIS_ERR_INVALID_PARAM Y Y
          3.c P26-28:P26-34 Call the selectionObject with valid parameter, including evtHandle, and selectionObject, and then call saEvtChannelOpenAsync to invoke a callback, and use select to detect pending callback.the returned value should be over zero. SA_AIS_OK Y Y
          4.c P26-35:P26-38 Call saEvtSelectionObjectGet related to the evtHandle , After finalizing we call select to detect whether the selectionObject is invaild .the returned value should be -1. SA_AIS_OK Y Y
          5.c P26-39:P26-41 Test whether the API saEvtSelectionObjectGet can return the value SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-1 Y Y
          6.c P27-1:P27-2 Test whether the API saEvtSelectionObjectGet can return the value SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          7.c P27-3:P27-6 Test whether the API saEvtSelectionObjectGet can return the value SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          8.c P27-7:P27-8 Test whether the API saEvtSelectionObjectGet can return the value SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          9.c P27-9:P27-11 Test whether the API saEvtSelectionObjectGet can return the value SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          10.c P27-12:P27-12 Test whether the API saEvtSelectionObjectGet can return the value SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 2-2 Y Y
          11.c P27-13:P27-15 Test whether the API saEvtSelectionObjectGet can return the value SA_AIS_NO_MEMORY SA_AIS_NO_MEMORY Return = SA_AIS_NO_MEMORY Y N
          12.c P27-16:P27-17 Test whether the API saEvtSelectionObjectGet can return the value SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Return = SA_AIS_ERR_NO_RESOURCES Y N

      • saEvtFinalize(complete/total:9 /12)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P28-37:P28-38 Call this function by valid evtHandle. SA_AIS_OK Y Y
          1-2.c P28-37:P28-38 Finalize an finalized evthandle. SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P28-37:P28-38 Finalize an uninitialized evthandle SA_AIS_ERR_BAD_HANDLE Y Y
          2.c P28-40:P29-2 Call this function by valid evtHandle Same with 1-1. SA_AIS_OK Y Y
          3.c P29-4:P29-6 After finalizing, we call event channels associated with the evtHandle. SA_AIS_ERR_BAD_HANDLE Y Y
          4.c P29-6:P29-9 After finalizing, we try to call callbacks related to the evtHandle. SA_AIS_ERR_BAD_HANDLE Y Y
          5.c P29-10:P29-10 Test SelectionObject is invalid after saEvtFinalize is called. SA_AIS_OK Y Y
          6.c P29-19:P29-19 Test whether API saEvtFinalize can return the value of SA_AIS_OK. Same with 1-1. SA_AIS_OK Y Y
          7.c P29-20:P29-21 Test whether API saEvtFinalize can return the value of SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY Y N
          8.c P29-22:P29-24 Test whether API saEvtFinalize can return the value of SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT Y N
          9.c P29-26:P29-28 Test whether API saEvtFinalize can return the value of SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN Y N
          10.c P29-29:P29-30 Test whether API saEvtFinalize can return the value of SA_AIS_ERR_BAD_HANDLE. Same with 1-2. SA_AIS_ERR_BAD_HANDLE Y Y

      • saEvtInitialize(complete/total:15 /20)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P24-16:P24-18 Initialize the event service with a valid evtHandle and other valid parameter. SA_AIS_OK Y Y
          1-2.c P24-16:P24-18 Initialize the event service with a NULL evthandle. SA_AIS_ERR_INVALID_PARAM Y Y
          2-1.c P24-19:P24-24 Initialize the event service with correct parameter such as normal handle,verion and callback, and callback is not NULL. SA_AIS_OK Y Y
          2-2.c P24-19:P24-24 Initialize the event service with correct parameter such as normal handle,verion and callback, but callback is set to NULL SA_AIS_OK Y Y
          3-1.c P24-25:P24-29 Initialize the event service with a NULL version code. SA_AIS_ERR_INVALID_PARAM Y Y
          3-2.c P24-25:P24-29 Initialize the event service with a valid version code. SA_AIS_OK Same with 1-1 Y Y
          4.c P24-30:P24-35 Initialize the event service with a valid evtHandle and other valid parameter. SA_AIS_OK Same with 1-1 Y Y
          5-1.c P24-36:P25-4 Initialize the event service with a version code. Suppose the returned major version number is bigger than the required majorversion number SA_AIS_OK Y Y
          5-2.c P24-36:P25-4 Initialize the event service with a version code. Suppose the returned major version number is equal to the required majorversion number SA_AIS_OK Y Y
          6-1.c P25-5:P25-25 Initialize the event service with a version code. Suppose the returned major version number is smaller than the required majorversion number SA_AIS_ERR_VERSION Y Y
          6-2.c P25-5:P25-25 Initialize the event service with a version code, whose release code is bigger than current one, and could not be supported now. SA_AIS_ERR_VERSION Y Y
          6-3.c P25-5:P25-25 Initialize the event service with a version code, whose release code is lower than current one, and is supposed to not be supported. SA_AIS_ERR_VERSION Y Y
          7.c P25-26:P25-29 Test whether this API saEvtInitialize can return a value of SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-1 Y Y
          8.c P25-26:P25-32 Test whether this API saEvtInitialize can return a value of SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          9.c P25-33:P25-35 Test whether this API saEvtInitialize can return a value of SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          10.c P25-36:P25-37 Test whether this API saEvtInitialize can return a value of SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          11.c P25-38:P25-39 Test whether this API saEvtInitialize can return a value of SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 1-2 Y Y
          12.c P25-40:P25-43 Test whether this API saEvtInitialize can return a value of SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Return = SA_AIS_ERR_NO_MEMORY Y N
          13.c P26-1:P26-3 Test whether this API saEvtInitialize can return a value of SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Return = SA_AIS_ERR_NO_RESOURCES Y N
          14.c P26-4:P26-6 Test whether this API saEvtInitialize can return a value of SA_AIS_ERR_VERSION SA_AIS_ERR_VERSION Return = SA_AIS_ERR_VERSION Same with test case 6-1 Y Y

  • AIS-lock-B.01.01(complete/total:231/313)
    • operations(complete/total:174/236)
      • SaLckResourceUnlockCallbackT(complete/total:4 /8)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P47-25:P47-29 SaLckLockUnlockCallbackT is called with a invocation. Check if the invocation matches the value in saLckLockUnlockAsync.   Y Y
          2.c P47-30:P47-34 unlock resource with normal params. the value of error param should be SA_AIS_OK. SA_AIS_OK. Return = NULL Y Y
          3.c P47-35:P47-36 unlock resource with corruption. the value of error param should be SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Return = NULL Y N
          4.c P47-37:P47-40 unlock resource with implementation-dependent timeout occurred. the value of error param should be SA_AIS_TIMEOUT. SA_AIS_TIMEOUT. Return = NULL Y N
          5.c P47-41:P47-42 unlock resource when the service cannot be provided at this time. the value of error param should be SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Return = NULL Y N
          6.c P47-43;P47-43 unlock resource when a parameter is set incorrectly the value of error param should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Return = NULL Y N
          7.c P48-1:P48-5 unlock resource when the lock has already been unlocked in the period between saLckResourceUnlockAsync and the execution of this callback. the value of error param should be SA_AIS_ERR_NOT_EXIST SA_AIS_ERR_NOT_EXIST Return = NULL Y Y
          8.c P48-6:P48-16 after the execution of this api, when the error is SA_AIS_OK, test if the lock has been released. SA_AIS_OK, test if the lock has been released. Return = NULL Y Y

      • SaLckLockWaiterCallbackT(complete/total:9 /9)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P42-35:P42-38 SaLckLockWaiterCallback is called with a waiterSignal. Check if the waiterSignal matches the value in Callback.   Y Y
          2.c P42-39:P42-41 SaLckLockWaiterCallback is called with lockId. Check if the lockId matches the value in the Callback.   Y Y
          3.c P43-1:P43-1 SaLckLockWaiterCallback is called with a modeHeld. Check if the modeHeld matches the process'status   Y Y
          4.c P43-2:P43-5 SaLckLockWaiterCallback is called with a modeRequested. Check if the modeRequested matches the requested lock.   Y Y
          5.c P43-6:P43-12 When the process hold the lock in PR mode and another process is requesting it in EX mode. Check if the corresponding params is correct. 5-fork.c is the child process. it will request EX lock.   Y Y
          6.c P43-13:P43-15 When the process hold the lock in PR mode and three other processes issue lock requests that are blocked by this process, check if the lock holder will have this callback executed three times. 6-fork.c is the child process. it will request PR lock.   Y Y
          7.c P43-16:P43-17 When a number of different processes hold PR locks and other process issue lock requests that are blocked , check if each will be notified via this callback. 7-fork.c is the child process. it will hold PR lock and send signal.   Y Y
          8.c P43-18:P43-20 When a single process that holds multiple PR locks against a single lock resource and it requests a EX lock, check if each PR lock has this callback executed against each different lockId.   Y Y
          9.c P43-21:P43-35 When the process executes the callback and then drops its lock ,check if another process acquires it. 9-fork.c is the child process, it will hold the EX lock. When it knows the request of another process, it will drop the lock.   Y Y

      • saLckResourceClose(complete/total:15 /20)

          XML error: > required at line 119
          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P33-40:P33-42 Call the api with valid lockResourceHandle which was previously obtained via a call to saLckResourceOpen. SA_AIS_OK Y Y
          1-2.c P33-40:P33-42 Call the api with valid lockResourceHandle which was previously obtained via a call to saLckResourceOpenCallback. SA_AIS_OK Y Y
          1-3.c P33-40:P33-42 Call the api with invalid lockResourceHandle which was not previously obtained via a call to saLckResourceOpen or saLckResourceOpenCallback. SA_AIS_ERR_BAD_HANDLE Y Y
          2.c P34-1:P34-4 Call the api with valid params,and test if all the corresponding lock resource are deleted. SA_AIS_OK Y Y
          3-1.c P34-5:P34-7 Call the api to test if the pending request is dropped,when the requestor has a pending PR mode lock request against the lock resource. 1. open a resource to lock. 2. fork a child process, in the child process, to lock the resource using EX lock, and then send a signal SIGUSR1 to father process,and then pause. 3. father process lock the same resource using PR lock, and then close the resource, and then test if the pending request is dropped. 4. father process send a signal to child process, let it go on and return. 5. father wait for child process' terminal. SA_AIS_OK 3-1-fork.c is the child process Y Y
          3-2.c P34-5:P34-7 Call the api to test if the pending request is dropped,when the requestor has a pending EX mode lock request against the lock resource. 1. open a resource to lock. 2. fork a child process, in the child process, to lock the resource using PR lock, and then send a signal SIGUSR1 to father process,and then pause. 3. father process lock the same resource using EX lock, and then close the resource, and then test if the pending request is dropped. 4. father process send a signal to child process, let it go on and return. 5. father wait for child process' terminal. SA_AIS_OK 3-2-fork.c is the child process Y Y
          3-3.c P34-5:P34-7 Call the api and test if the lock is dropped, when the process has a PR mode lock against the lock resource. SA_AIS_OK Y Y
          3-4.c P34-5:P34-7 Call the api and test if the lock is dropped, when the process has a EX mode lock against the lock resource. SA_AIS_OK Y Y
          4-1.c P34-8:P34-10 Call the api to test if other processes' locks are unaffected,and any pending requests from other processes remain and may be processed by the lock service when they hold locks in PR mode. Test steps: 1. open a resource to lock. 2. lock the resource in PR mode. 3. fork a child process, in the child process, close the resource, and then send a signal SIGUSR1 to father process, and then pause. 4. father process unlock the same resource to test if the lock is s still valid, and then send a signal to child process. 5. child process go on and return. 6. father wait for child process' terminal. SA_AIS_OK 4-1-fork.c is the child process Y Y
          4-2.c P34-8:P34-10 Call the api to test if other processes' locks are unaffected, and any pending requests from other processes remain and may be processed by the lock service when they hold locks in EX mode. Test steps: 1. open a resource to lock. 2. lock the resource in EX mode with asynclock 3. fork a child process, in the child process, close the resource, and then send a signal SIGUSR1 to father process, and then pause. 4. father process dispatch the pending lock to test if the lock is still valid. 5. unlock the same resource, child process go on and return. 6. father wait for child process' terminal. SA_AIS_OK 4-2-fork.c is the child process Y Y
          4-3.c P34-8:P34-10 Call the api to test if other processes' locks are unaffected,and any locks hold by other processes remain. SA_AIS_OK Y N
          5.c P34-11:P34-17 Call the api to test if this call cancels all pending callbacks. SA_AIS_OK Y Y
          6.c P34-18:P34-21 Call the api to test if the lock resource no longer exists. SA_AIS_OK Y N
          7.c P34-22:P34-26 Test if API saLckResouceClose can return SA_AIS_OK. SA_AIS_OK. Return = SA_AIS_OK Same with 1-1 Y Y
          8.c P34-27:P34-28 Test if API saLckResourceClose can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Return = SA_AIS_ERR_LIBRARY Y N

      • saLckResourceLockAsync(complete/total:27 /33)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P38-20:P38-22 Call the api with valid lockResourceHandle which was previously obtained via a call to the saLckResourceOpen. SA_AIS_OK Y Y
          1-2.c P38-20:P38-22 Call the api with valid lockResourceHandle which was previously obtained via a call to the saLckResourceOpenCallback. SA_AIS_OK Y Y
          1-3.c P38-20:P38-22 Call the api with invalid lockResourceHandle which was not obtained via a call to the saLckResourceOpenCallback or saLckResourceOpen. SA_AIS_ERR_BAD_HANDLE Y Y
          2.c P38-23:P38-33 Call the api with value invocation and other valid params.Test if the the invocation obtained from saLckResourceGrantCallback matches the init value. SA_AIS_OK Y Y
          3-1.c P38-34:P38-38 Call the api with non-null lockId and other valid params. SA_AIS_OK Same with 1-1 Y Y
          3-2.c P38-34:P38-38 Call the api with null lockId and other valid params SA_AIS_ERR_INVALID_PARAM Y Y
          4-1.c P38-39:P38-40 Call the api with lockMode which is set to SA_LCK_PR_LOCK_MODE. SA_LCK_PR_LOCK_MODE. Return = SA_AIS_OK Same with 1-1 Y Y
          4-2.c P38-39:P38-40 Call the api with lockMode which is set to SA_LCK_EX_LOCK_MODE. SA_LCK_EX_LOCK_MODE. Return = SA_AIS_OK Y Y
          4-3.c P38-39:P38-40 Call the api with invalid lockMode and other valid params SA_AIS_ERR_INVALID_PARAM Y Y
          5-1.c P38-41:P38-42 Call the api with lockFlags which is set to SA_LCK_LOCK_NO_QUEUE SA_LCK_LOCK_NO_QUEUE Return = SA_AIS_OK. Same with 1-1 Y Y
          5-2.c P38-41:P38-42 Call the api with lockFlags which is set to SA_LCK_LOCK_ORPHAN. SA_LCK_LOCK_ORPHAN. Return = SA_AIS_OK Y Y
          5-3.c P38-41:P38-42 Call the api with invalid lockFlags and other valid params SA_AIS_ERR_BAD_FLAGS Y Y
          5-4.c P38-41:P38-42 Call the api with lockFlags which is set to SA_LCK_LOCK_ORPHAN | SA_LCK_LOCK_NO_QUEUE. SA_LCK_LOCK_ORPHAN | SA_LCK_LOCK_NO_QUEUE. Return = SA_AIS_OK Y Y
          6.c P39-1:P39-3 Call the api with valid waiterSignal and other valid params SA_AIS_OK Same with 1-1 Y Y
          7.c P39-4:P39-12 Call the api with valid params. SA_AIS_OK Same with 1-1 Y Y
          8.c P39-13:P39-17 Call the api with saLckLockGrantCallback callback function which have not been supplied when the process invoked the saLckInitialize call. SA_AIS_ERR_INIT Y Y
          9.c P39-18:P39-20 Call the api ,and then test if the lock request can be canceled using either the saLckResourceUnlock or saLckResourceUnlockAsync with this lockId. SA_AIS_OK Y Y
          10.c P39-21:P39-22 Call the api and then test if the lockId is no longer valid when saLckLockGrantCallback call indicates an error. SA_AIS_OK Y N
          11.c P39-23:P39-27 Call the api with SA_LCK_LOCK_NO_QUEUE set , when the request is blocked test if the api can return SA_AIS_OK, and the saLckLockGrantCallback will return the value SA_LCK_LOCK_NO_QUEUE in the lockStatus field. SA_LCK_LOCK_NO_QUEUE set , when the request is blocked test if the api can return SA_AIS_OK, and the saLckLockGrantCallback will return the value SA_LCK_LOCK_NO_QUEUE in the lockStatus field. Return = SA_AIS_OK Y Y
          12.c P39-28:P39-31 Test if API saLckResourceLockAsync can return SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-1 Y Y
          13.c P39-32:P39-34 Test if API saLckResourceLockAsync can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          14.c P39-35:P39-37 Test if API saLckResourceLockAsync can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          15.c P39-38:P39-40 Test if API saLckResourceLockAsync can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          16-1.c P39-41:P40-3 Test if API saLckResourceLockAsync can return SA_AIS_ERR_BAD_HANDLE when the handle lockResourceHandle was not obtained via the saLckResourceOpen or saLckResourceOpenCallback. SA_AIS_ERR_BAD_HANDLE when the handle lockResourceHandle was not obtained via the saLckResourceOpen or saLckResourceOpenCallback. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-3 Y Y
          16-2.c P39-41:P40-3 Test if API saLckResourceLockAsync can return SA_AIS_ERR_BAD_HANDLE when the corresponding lock resource has already been closed. SA_AIS_ERR_BAD_HANDLE when the corresponding lock resource has already been closed. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          17-1.c P40-4:P40-5 Test if API saLckResourceLockAsync can return SA_AIS_ERR_BAD_HANDLE when the handle lckHandle that was passed to the functions saLckResourceOpen has already been finalized. SA_AIS_ERR_BAD_HANDLE when the handle lckHandle that was passed to the functions saLckResourceOpen has already been finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          17-2.c P40-4:P40-5 Test if API saLckResourceLockAsync can return SA_AIS_ERR_BAD_HANDLE when the handle lckHandle that was passed to the functions saLckResourceOpenAsync has already been finalized. SA_AIS_ERR_BAD_HANDLE when the handle lckHandle that was passed to the functions saLckResourceOpenAsync has already been finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          18.c P40-6:P40-8 Test if API saLckResourceLockAsync can return SA_AIS_ERR_INIT SA_AIS_ERR_INIT Return = SA_AIS_ERR_INIT Same with 8 Y Y
          19.c P40-9:P40-10 Test if API saLckResourceLockAsync can return SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 3-2 Y Y
          20.c P40-11:P40-12 Test if API saLckResourceLockAsync can return SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Return = SA_AIS_ERR_NO_MEMORY Y N
          21.c P40-13:P40-15 Test if API saLckResourceLockAsync can return SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Return = SA_AIS_ERR_NO_RESOURCES Y N
          22.c P40-16:P40-16 Test if API saLckResourceLockAsync can return SA_AIS_ERR_BAD_FLAGS. SA_AIS_ERR_BAD_FLAGS. Return = SA_AIS_ERR_BAD_FLAGS Same with 5-3 Y Y
          23.c P40-17:P40-18 Test if API saLckResourceLockAsync can return SA_AIS_ERR_NOT_SUPPORTED SA_AIS_ERR_NOT_SUPPORTED Return = SA_AIS_ERR_NOT_SUPPORTED Y Y

      • saLckResourceLock(complete/total:30 /38)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P35-25:P35-28 Call the api with valid lockResourceHandle which was previously obtained via a call to the saLckResourceOpen. SA_AIS_OK Y Y
          1-2.c P35-25:P35-28 Call the api with valid lockResourceHandle which was previously obtained via a call to the saLckResourceOpenCallback. SA_AIS_OK Y Y
          1-3.c P35-25:P35-28 Call the api with invalid lockResourceHandle which was not obtained via a call to the saLckResourceOpenCallback or saLckResourceOpen. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P35-29:P35-33 Call the api with non-null lockId and other valid params. SA_AIS_OK Same with 1-1 Y Y
          2-2.c P35-29:P35-33 Call the api with null lockId and other valid params SA_AIS_ERR_INVALID_PARAM Y Y
          3-1.c P35-34:P35-34 Call the api with lockMode which is set to SA_LCK_PR_LOCK_MODE. SA_LCK_PR_LOCK_MODE. Return = SA_AIS_OK Same with 1-1 Y Y
          3-2.c P35-34:P35-34 Call the api with lockMode which is set to SA_LCK_EX_LOCK_MODE. SA_LCK_EX_LOCK_MODE. Return = SA_AIS_OK Y Y
          3-3.c P35-34:P35-34 Call the api with invalid lockMode and other valid params SA_AIS_ERR_INVALID_PARAM Y Y
          4-1.c P35-35:P35-37 Call the api with lockFlags which is set to SA_LCK_LOCK_NO_QUEUE SA_LCK_LOCK_NO_QUEUE Return = SA_AIS_OK. Same with 1-1 Y Y
          4-2.c P35-35:P35-37 Call the api with lockFlags which is set to SA_LCK_LOCK_ORPHAN. SA_LCK_LOCK_ORPHAN. Return = SA_AIS_OK Y Y
          4-3.c P35-35:P35-37 Call the api with invalid lockFlags and other valid params SA_AIS_ERR_BAD_FLAGS Y Y
          4-4.c P35-35:P35-37 Call the api with lockFlags which is set to SA_LCK_LOCK_ORPHAN | SA_LCK_LOCK_NO_QUEUE. SA_LCK_LOCK_ORPHAN | SA_LCK_LOCK_NO_QUEUE. Return = SA_AIS_OK Y Y
          5.c P35-38:P35-42 Call the api with valid waiterSignal and other valid params SA_AIS_OK Same with 1-1 Y Y
          6-1.c P36-1:P36-4 Call the api with valid timeout and other valid params. SA_AIS_OK Y Y
          6-2.c P36-1:P36-4 Call the api with valid timeout and other valid params. Test steps: 1. open a resource to lock. 2. set up two signal handler.(SIGUSR1) 3. fork a child process, in the child process, to lock the resource using EX lock, and then send a signal SIGUSR1 to father process,and then pause. 4. father process locks the same resource using PR lock, with a finite time value. 5. father process send a signal to child process, let it go on and return. 6. father wait for child process' terminal. SA_AIS_ERR_TIMEOUT 6-2-fork.c is the child process Y Y
          7-1.c P36-5:P36-8 Call the api with non-null lockStatus and other valid params. and then test if the returned lockStauts is in the sets of SaLckLockStatusT. SA_AIS_OK Same with 10-1 Y Y
          7-2.c P36-5:P36-8 Call the api with null lockStatus and other valid params. SA_AIS_ERR_INVALID_PARAM Y Y
          8.c P36-9:P36-13 Call the api with valid params. SA_AIS_OK Same with 1-1 Y Y
          9.c P36-14:P36-17 If implementations support deadlock detection,call the api to detect deadlocks and indicate in the lockStatus field that granting the lock would cause a deadlock. SA_AIS_OK Y N
          10-1.c P36-18:P36-20 Call the api to test if the lockStatus is changed and its value is the one of values which Lock Service describes. SA_AIS_OK Y Y
          10-2.c P36-18:P36-20 Call the api to test if the lock may not have been granted even if SA_AIS_OK is returned. Test steps: 1. open a resource to lock. 2. set up two signal handler.(SIGUSR1) 3. fork a child process, in the child process, to lock the resource using EX lock,and then send a signal SIGUSR1 to father process, and then pause. 4. father process locks the same resource using PR lock, with SA_LCK_LOCK_NO_QUEUE set. 5. father process send a signal to child process, let it go on and return. 6. father wait for child process' terminal. SA_AIS_OK is returned. Test steps: 1. open a resource to lock. 2. set up two signal handler.(SIGUSR1) 3. fork a child process, in the child process, to lock the resource using EX lock,and then send a signal SIGUSR1 to father process, and then pause. 4. father process locks the same resource using PR lock, with SA_LCK_LOCK_NO_QUEUE set. 5. father process send a signal to child process, let it go on and return. 6. father wait for child process' terminal. Return = SA_AIS_OK 10-2-fork.c is the child process Y Y
          11.c P36-21:P36-26 In the normal case , call the api to test if the lock will have been granted in the requested mode. SA_AIS_OK Y Y
          12.c P36-27:P36-30 After the lock is granted, Test if it is possible for a lock waiter notification to be received for this lock via the saLckLockWaiterCallback call when this callback was specified . SA_AIS_OK Y N
          13-1.c P36-31:P36-32 Test if the lock can be released by saLckResourceUnlock. Test steps: 1. create a lock for a resource . 2. use saLckResourceUnlock to unlock the lock. 3. use saLckResourcelock to lock a resource again, if the lock is released in the step 2, the result is SA_AIS_OK. otherwise,it will fail. SA_AIS_OK. otherwise,it will fail. Return = SA_AIS_OK Y Y
          13-2.c P36-31:P36-32 Test if the lock can be released by saLckResourceUnlockAsync. Test steps: 1. create a lock for a resource . 2. use saLckResourceUnlockAsync to unlock the lock. 3. check the error code in callback, which should be SA_AIS_OK. 4. use saLckResourcelock to lock a resource again, if the lock is released in the step 2, the result is SA_AIS_OK. otherwise,it will fail. SA_AIS_OK. 4. use saLckResourcelock to lock a resource again, if the lock is released in the step 2, the result is SA_AIS_OK. otherwise,it will fail. Return = SA_AIS_OK Y Y
          14.c P36-33:P36-36 Test if API saLckResourceLock can return SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-1 Y Y
          15.c P36-37:P36-38 Test if API saLckResourceLock can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          16.c P36-39:P36-42 Test if API saLckResourceLock can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          17.c P37-1:P37-2 Test if API saLckResourceLock can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          18-1.c P37-3:P37-8 Test if API saLckResourceLock can return SA_AIS_ERR_BAD_HANDLE when the handle lockResourceHandle was not obtained via the saLckResourceOpen or saLckResourceOpenCallback. SA_AIS_ERR_BAD_HANDLE when the handle lockResourceHandle was not obtained via the saLckResourceOpen or saLckResourceOpenCallback. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-3 Y Y
          18-2.c P37-3:P37-8 Test if API saLckResourceLock can return SA_AIS_ERR_BAD_HANDLE when the corresponding lock resource has already been closed. SA_AIS_ERR_BAD_HANDLE when the corresponding lock resource has already been closed. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          19-1.c P37-9:P37-10 Test if API saLckResourceLock can return SA_AIS_ERR_BAD_HANDLE when the handle lckHandle that was passed to the functions saLckResourceOpen has already been finalized. SA_AIS_ERR_BAD_HANDLE when the handle lckHandle that was passed to the functions saLckResourceOpen has already been finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          19-2.c P37-9:P37-10 Test if API saLckResourceLock can return SA_AIS_ERR_BAD_HANDLE when the handle lckHandle that was passed to the functions saLckResourceOpenAsync has already been finalized. SA_AIS_ERR_BAD_HANDLE when the handle lckHandle that was passed to the functions saLckResourceOpenAsync has already been finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          20.c P37-11:P37-12 Test if API saLckResourceLock can return SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 3-3 Y Y
          21.c P37-13:P37-15 Test if API saLckResourceLock can return SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Return = SA_AIS_ERR_NO_MEMORY Y N
          22.c P37-16:P37-17 Test if API saLckResourceLock can return SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Return = SA_AIS_ERR_NO_RESOURCES Y N
          23.c P37-18:P37-18 Test if API saLckResourceLock can return SA_AIS_ERR_BAD_FLAGS. SA_AIS_ERR_BAD_FLAGS. Return = SA_AIS_ERR_BAD_FLAGS Same with 4-3 Y Y
          24.c P37-19:P37-21 Test if API saLckResourceLock can return SA_AIS_ERR_NOT_SUPPORTED SA_AIS_ERR_NOT_SUPPORTED Return = SA_AIS_ERR_NOT_SUPPORTED Y Y

      • saLckResourceOpen(complete/total:19 /25)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P29-29:P29-30 Call the api with valid lckHandle and other valid params. SA_AIS_OK Y Y
          1-2.c P29-29:P29-30 Call the api with lckhandle which is not obtained through the saLckInitialize . SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P29-35:P29-37 Call the api with valid lockResourceName and other valid params. SA_AIS_OK Same with 1-1 Y Y
          2-2.c P29-35:P29-37 Call the api with NULL lockResourceName and other valid params. SA_AIS_ERR_INVALID_PARAM Y Y
          3-1.c P29-38:P29-41 Call the api with valid resourceFlags which is set to SA_LCK_RESOURCE_CREATE. SA_LCK_RESOURCE_CREATE. Return = SA_AIS_OK Same with 1-1 Y Y
          3-2.c P29-38:P29-41 Call the api with invalid resourceFlags SA_AIS_ERR_BAD_FLAGS Y Y
          4.c P30-1:P30-2 Call the api with valid timeout and other valid params SA_AIS_OK Y Y
          5-1.c P30-3:P30-6 Call the api with non-null lockResourceHandle and other valid params SA_AIS_OK Same with 1-1 Y Y
          5-2.c P30-3:P30-6 Call the api with null lockResourceHandle and other valid params SA_AIS_ERR_INVALID_PARAM Y Y
          6.c P30-7:P30-11 Call the api with valid params SA_AIS_OK Same with 1-1 Y Y
          7.c P30-12:P30-12 Test if the api is a blocking operation. SA_AIS_OK Y N
          8.c P30-25:P30-27 Call the api with SA_LCK_RESOURCE_CREATE set and other valid params, test if the a lock resource handle designated by lockResourceHandle is valid. SA_LCK_RESOURCE_CREATE set and other valid params, test if the a lock resource handle designated by lockResourceHandle is valid. Return = SA_AIS_OK Y Y
          9.c P30-28:P30-30 Call the api without SA_LCK_RESOURCE_CREATE set and other valid params test if the a lock resource handle designated by lockResourceHandle is valid. SA_LCK_RESOURCE_CREATE set and other valid params test if the a lock resource handle designated by lockResourceHandle is valid. Return = SA_AIS_OK Y Y
          10.c P30-31:P30-35 Call the api with valid params and test if the returned handle lockResourceHandle can be used to close lock resource. SA_AIS_OK Y Y
          11.c P30-40:P30-42 Test if API saLckResourceOpen can return SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-1 Y Y
          12.c P31-1:P31-2 Test if API saLckResourceOpen can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          13.c P31-3:P31-6 Test if API saLckResourceOpen can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          14.c P31-7:P31-8 Test if API saLckResourceOpen can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          15-1.c P31-9:P31-10 Test if API saLckResourceOpen can return SA_AIS_ERR_BAD_HANDLE when lckHandle is uninitialized. SA_AIS_ERR_BAD_HANDLE when lckHandle is uninitialized. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          15-2.c P31-9:P31-10 Test if API saLckResourceOpen can return SA_AIS_ERR_BAD_HANDLE when lckHandle is finalized. SA_AIS_ERR_BAD_HANDLE when lckHandle is finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          16.c P31-15:P31-15 Test if API saLckResourceOpen can return SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 2-2 Y Y
          17.c P31-16:P31-17 Test if API saLckResourceOpen can return SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Return = SA_AIS_ERR_NO_MEMORY Y N
          18.c P31-18:P31-20 Test if API saLckResourceOpen can return SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Return = SA_AIS_ERR_NO_RESOURCES Y N
          19.c P31-21:P31-22 Test if API saLckResourceOpen can return SA_AIS_ERR_NOT_EXIST SA_AIS_ERR_NOT_EXIST Return = SA_AIS_ERR_NOT_EXIST Y Y
          20.c P31-23:P31-23 Test if API saLckResourceOpen can return SA_AIS_ERR_BAD_FLAGS SA_AIS_ERR_BAD_FLAGS Return = SA_AIS_ERR_BAD_FLAGS Same with 3-2 Y Y

      • saLckResourceUnlock(complete/total:13 /21)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P44-14:P44-16 Test the API with the lockId returned from a previous saLckResourceLock. SA_AIS_OK Y Y
          1-2.c P44-14:P44-16 Test the API with the lockId returned from a previous saLckResourceLockAsync. SA_AIS_OK Y Y
          2.c P44-16:P44-17 Test the API when the lockId has already been successfully released. SA_AIS_ERR_NOT_EXIST Y Y
          3-1.c P44-19:P44-20 Test the API with proper timeout param and other params. Same with 1-1.   Y Y
          3-2.c P44-19:P44-20 Test the function returns SA_AIS_ERR_TIMEOUT when a timeout specified by the timeout param occured before the call completes. SA_AIS_ERR_TIMEOUT Y N
          4.c P44-24:P44-24 Test the function releases synchronously the lock identified by lockId. SA_AIS_OK Y Y
          5.c P44-25:P44-26 Test if the lockId identifies a pending lock request, after call the api, the pending lock request will be canceled. SA_AIS_OK Y Y
          6-1.c P44-27:P44-27 If the function returns SA_AIS_OK, the function succeeded. Test Steps: 1. Initialize a lock handle. 2. Open a resource 3. Lock the resource 4. Unlock the resource 5. If the unlock returns SA_AIS_OK successfully and unlocks it again, it will return error. SA_AIS_OK Y Y
          6-2.c P44-27:P44-27 Test the resource is not really unlocked if the function returns failed. SA_AIS_ERR_TRY_AGAIN Y N
          7.c P44-30:P44-31 Test the function returns SA_AIS_OK. Same with 1-1.   Y Y
          8.c P44-32:P44-34 Test the function returns SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY Y N
          9-1.c P44-35:P44-37 Test the function returns SA_AIS_ERR_TIMEOUT when a implementation- dependent timeout occurs. SA_AIS_ERR_TIMEOUT Y N
          9-2.c P44-35:P44-37 Test the function returns SA_AIS_ERR_TIMEOUT when a timeout specified by the timeout param occured before the call completes. Same with 3-2.   Y N
          10.c P44-38:P44-40 Test the function returns SA_AIS_ERR_TRY_AGAIN when the service is not available at the time. SA_AIS_ERR_TRY_AGAIN Y N
          11.c P44-41:P45-3 Test the function returns SA_AIS_ERR_BAD_HANDLE when the corresponding lock resource has been closed. SA_AIS_ERR_BAD_HANDLE Y Y
          12-1.c P45-4:p45-6 Test the function returns SA_AIS_ERR_BAD_HANDLE when the handle lckHandle passed to the function saLckResourceOpen() has been finalized. SA_AIS_ERR_BAD_HANDLE Y Y
          12-2.c P45-4:p45-6 Test the function returns SA_AIS_ERR_BAD_HANDLE when the handle lckHandle passed to the function saLckResourceOpenAsync() has been finalized. SA_AIS_ERR_BAD_HANDLE Y Y
          13.c P45-7:P45-7 Test the function returns SA_AIS_ERR_INVALID_PARAM when a param is set incorrectly. SA_AIS_ERR_INVALID_PARAM Y N
          14.c P45-8:P45-11 Test the function returns SA_AIS_ERR_NOT_EXIST when the lock specified by lockId is unlocked. Same with 2.   Y Y
          15-1.c P45-12:P45-14 Test the function returns SA_AIS_ERR_NOT_EXIST when the lock is corrupted. SA_AIS_ERR_NOT_EXIST Y N
          15-2.c P45-12:P45-14 Test the function returns SA_AIS_ERR_NOT_EXIST when the lock is not obtained via the saLckResourceLock() or saLckResourceLockAsync() functions. SA_AIS_ERR_NOT_EXIST Y Y

      • saLckResourceUnlockAsync(complete/total:14 /18)

          XML error: Mismatched tag at line 41
          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P45-32:P45-42 Call the api with valid invocation and other valid params test if the invocation obtained from saLckResourceUnlockCallback matches the init value. SA_AIS_OK Y Y
          1-2.c P45-32:P45-42 Call the api with different lockIds and other valid params. test if the callback count is right. SA_AIS_OK Y Y
          2-1.c P46-1:P46-5 Call the api with valid lockId which is obtained from saLckResourceLock. SA_AIS_OK Y Y
          2-2.c P46-1:P46-5 Call the api with valid lockId which is obtained from saLckResourceLockAsync. SA_AIS_OK Y Y
          2-3.c P46-1:P46-5 Call the api with invalid lockId which is not obtained from saLckResourceLock or saLckResourceLockAsync. SA_AIS_ERR_NOT_EXIST Y Y
          3.c P46-6:P46-10 When the lockId identifies a pending lock request, test if after the invocation of this function , the pending lock request will be canceled. SA_AIS_OK Y Y
          4.c P46-11:P46-16 After the execution of the saLckResourceUnlockCallback callback function, test if the unlock request is completed successfully. SA_AIS_Ok Y Y

      • SaLckResourceOpenCallbckT(complete/total:8 /13)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P32-14:P32-18 SaLckResourceOpenCallbackT is called with a invocation. Check if the invocation match the value in Callback.   Y Y
          2.c P32-19:P32-22 SaLckResourceOpenCallbackT is called with valid params. Check if the lockResourceHandle can be used.   Y Y
          3.c P32-23:P32-26 open resource with normal params. Return value should be SA_AIS_OK. Same with 1 SA_AIS_OK. Same with 1 Y Y
          4.c P32-27:P32-28 open resource with corruption. Return value should be SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY Y N
          5.c P32-29:P32-32 open resource with implementation-dependent timeout occurred. Return value should be SA_AIS_TIMEOUT. SA_AIS_TIMEOUT Y N
          6.c P32-33:P32-34 open resource when The service cannot be provided at this time. Return value should be SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN Y N
          7.c P32-35:P32-37 open resource when the Lock Service library or the Lock Service provider is out of memory and cannot provide the service. Return value should be SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY Y N
          8.c P32-38:P32-39 open resource when There are insufficient resources (other memory). Return value should be SA_AIS_ERR_NO_RESOURCES . SA_AIS_ERR_NO_RESOURCES Y N
          9.c P32-40:P32-43 open resource when SA_LCK_RESOURCE_CREATE flag is not set, and the resource, designated by resourceName does not exist. Return value should be SA_AIS_ERR_NOT_EXIST. SA_LCK_RESOURCE_CREATE flag is not set, and the resource, designated by resourceName does not exist. Return value should be SA_AIS_ERR_NOT_EXIST Y Y
          10.c P33-1:P33-5 open resource with valid params. Same with 1.   Y Y
          11.c P33-6:P33-10 open resource when SA_LCK_RESOURCE_CREATE flag is set, and the resource, designated by resourceName does not exist. Return value should be SA_AIS_OK. Same with 1. SA_LCK_RESOURCE_CREATE flag is set, and the resource, designated by resourceName does not exist. Return value should be SA_AIS_OK. Same with 1 Y Y
          12.c P33-11:P33-15 open resource when SA_LCK_RESOURCE_CREATE flag is not set, and the resource, designated by resourceName exist. Return value should be SA_AIS_OK. SA_LCK_RESOURCE_CREATE flag is not set, and the resource, designated by resourceName exist. Return value should be SA_AIS_OK Y Y
          13.c P33-16:P33-17 SaLckResourceOpenCallbackT is called with valid params. Check if the lockResourceHandle can be used in subsequent requests to lock. Same with 2.   Y Y

      • saLckResourceOpenAsync(complete/total:18 /25)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P29-29:P29-30 Call the api with valid lckHandle and other valid params. SA_AIS_OK Y Y
          1-2.c P29-29:P29-30 Call the api with lckhandle which is not obtained through the saLckInitialize . SA_AIS_ERR_BAD_HANDLE Y Y
          2.c P29-31:P29-34 Call the api with valid invocation and other valid params test if the invocation obtained from saLckResourceOpenCallback matches the init value. SA_AIS_OK Y Y
          3-1.c P29-35:P29-37 Call the api with valid lockResourceName and other valid params. SA_AIS_OK Same with 1-1 Y Y
          3-2.c P29-35:P29-37 Call the api with NULL lockResourceName and other valid params. SA_AIS_ERR_INVALID_PARAM Y Y
          4-1.c P29-38:P29-41 Call the api with valid resourceFlags which is set to SA_LCK_RESOURCE_CREATE. SA_LCK_RESOURCE_CREATE. Return = SA_AIS_OK Same with 1-1 Y Y
          4-2.c P29-38:P29-41 Call the api with invalid resourceFlags SA_AIS_ERR_BAD_FLAGS Y Y
          5.c P30-7:P30-11 Call the api with valid params SA_AIS_OK Same with 1-1 Y Y
          6-1.c P30-13:P30-24 Call api with setting the invocation's value ,which it uses subsequently to match the corresponding callback with this particular invocation. SA_AIS_OK Same with 2 Y Y
          6-2.c P30-13:P30-24 Call api with invalid params , and test if saLckResourceOpenCallback will be executed when saLckResourceOpenAsync function does not return SA_AIS_OK SA_AIS_OK Return = SA_AIS_ERR_INVALID_PARAM Y Y
          7.c P30-25:P30-27 Call the api with SA_LCK_RESOURCE_CREATE set and other valid params, test if the a lock resource handle designated by lockResourceHandle is valid. SA_LCK_RESOURCE_CREATE set and other valid params, test if the a lock resource handle designated by lockResourceHandle is valid. Return = SA_AIS_OK Y N
          8.c P30-28:P30-30 Call the api without SA_LCK_RESOURCE_CREATE set and other valid params test if the a lock resource handle designated by lockResourceHandle is valid. SA_LCK_RESOURCE_CREATE set and other valid params test if the a lock resource handle designated by lockResourceHandle is valid. Return = SA_AIS_OK Y Y
          9.c P30-31:P30-35 Call the api with valid params and test if the returned handle lockResourceHandle can be used to close lock resource. SA_AIS_OK Y N
          10.c P30-40:P30-42 Test if API saLckResourceOpenAsync can return SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-1 Y Y
          11.c P31-1:P31-2 Test if API saLckResourceOpenAsync can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          12.c P31-3:P31-6 Test if API saLckResourceOpenAsync can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          13.c P31-7:P31-8 Test if API saLckResourceOpenAsync can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          14-1.c P31-9:P31-10 Test if API saLckResourceOpenAsync can return SA_AIS_ERR_BAD_HANDLE when lckHandle is uninitialized. SA_AIS_ERR_BAD_HANDLE when lckHandle is uninitialized. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          14-2.c P31-9:P31-10 Test if API saLckResourceOpenAsync can return SA_AIS_ERR_BAD_HANDLE when lckHandle is finalized. SA_AIS_ERR_BAD_HANDLE when lckHandle is finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          15.c P31-11:P31-14 Test if API saLckResourceOpenAsync can return SA_AIS_ERR_INIT,when the previous initialization with saLckInitialize was incomplete, since the saLckResourceOpenCallback function is missing. SA_AIS_ERR_INIT,when the previous initialization with saLckInitialize was incomplete, since the saLckResourceOpenCallback function is missing. Return = SA_AIS_ERR_INIT Y Y
          16.c P31-15:P31-15 Test if API saLckResourceOpenAsync can return SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 3-2 Y Y
          17.c P31-16:P31-17 Test if API saLckResourceOpenAsync can return SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Return = SA_AIS_ERR_NO_MEMORY Y N
          18.c P31-18:P31-20 Test if API saLckResourceOpenAsync can return SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Return = SA_AIS_ERR_NO_RESOURCES Y N
          19.c P31-21:P31-22 Test if API saLckResourceOpenAsync can return SA_AIS_ERR_NOT_EXIST SA_AIS_ERR_NOT_EXIST Return = SA_AIS_ERR_NOT_EXIST Y Y
          20.c P31-23:P31-23 Test if API saLckResourceOpenAsync can return SA_AIS_ERR_BAD_FLAGS SA_AIS_ERR_BAD_FLAGS Return = SA_AIS_ERR_BAD_FLAGS Same with 4-2 Y Y

      • saLckLockPurge(complete/total:10 /13)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P48-38:P48-41 Call the api with valid lockResourceHandle which was previously obtained via a call to saLckResourceOpen. SA_AIS_OK Y Y
          1-2.c P48-38:P48-41 Call the api with valid lockResourceHandle which was previously obtained via a call to saLckResourceOpenCallback. SA_AIS_OK Y Y
          1-3.c P48-38:P48-41 Call the api with valid lockResourceHandle which was not previously obtained via a call to saLckResourceOpen or saLckResourceOpenAsync. SA_AIS_ERR_BAD_HANDLE Y Y
          2.c P49-1:P49-10 Call the api with valid param, after the invocation, test if the lock is unlocked. SA_AIS_OK Y Y
          3.c P49-11:P49-15 Call the api when other processes hold the lock in shared mode, test if they continue to do SA_AIS_OK Y Y
          4.c P49-16:P49-19 Test if API saLckLockPurge can return SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-1 Y Y
          5.c P49-20:P49-21 Test if API saLckLockPurge can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          6.c P49-22:P49-25 Test if API saLckLockPurge can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          7.c P49-26:P49-27 Test if API saLckLockPurge can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          8-1.c P49-28:P49-33 Test if API saLckLockPurge can return SA_AIS_ERR_BAD_HANDLE when the lockResourceHandle was not obtained via the saLckResourceOpen or saLckResourceOpenAsync SA_AIS_ERR_BAD_HANDLE when the lockResourceHandle was not obtained via the saLckResourceOpen or saLckResourceOpenAsync Return = SA_AIS_ERR_BAD_HANDLE Same with 1-3 Y Y
          8-2.c P49-28:P49-33 Test if API saLckLockPurge can return SA_AIS_ERR_BAD_HANDLE when the corresponding lock resource has already been closed. SA_AIS_ERR_BAD_HANDLE when the corresponding lock resource has already been closed. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          9.c P49-34:P49-35 Test if API saLckLockPurge can return SA_AIS_ERR_BAD_HANDLE when the handle lckHandle that was passed to the functions saLckResourceOpen or saLckResourceOpenAsync has already been finalized. SA_AIS_ERR_BAD_HANDLE when the handle lckHandle that was passed to the functions saLckResourceOpen or saLckResourceOpenAsync has already been finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          10.c P49-36:P49-37 Test if API saLckLockPurge can return SA_AIS_ERR_NOT_SUPPORTED SA_AIS_ERR_NOT_SUPPORTED Return = SA_AIS_ERR_NOT_SUPPORTED Y Y

      • SaLckLockGrantCallbackT(complete/total:7 /13)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P40-40:P41-2 SaLckLockGrantCallback is called with a invocation. Check if the invocation match the value in Callback.   Y Y
          2.c P41-3:P41-7 SaLckLockGrantCallback is called with valid params. Check if the lockStatus is correct when the error parameter is SA_AIS_OK . SA_AIS_OK Y Y
          3.c P41-8:P41-14 lock resource with normal params. Return error value should be SA_AIS_OK. SA_AIS_OK Y Y
          4.c P41-15:P41-16 lock resource with corruption. Return error value should be SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY Y N
          5.c P41-17:P41-20 lock resource with implementation-dependent timeout occurred. Return error value should be SA_AIS_TIMEOUT. SA_AIS_TIMEOUT Y N
          6.c P41-21:P41-22 lock resource when the service cannot be provided at this time. Return error value should be SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN Y N
          7.c P41-23:P41-23 lock resource when the params are invalid. Return error value should be SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM Y Y
          8.c P41-24:P41-25 lock resource when the Lock Service library or the Lock Service provider is out of memory and cannot provide the service. Return error value should be SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY Y N
          9.c P41-26:P41-27 lock resource when there are insufficient resources (other than memory). Return error value should be SA_AIS_ERR_NO_RESOURCES . SA_AIS_ERR_NO_RESOURCES Y N
          10.c P41-28:P41-32 lock resource when the lock request have been canceled in the period between saLckResourceLockAsync and the execution of this callback. Return error value should be SA_AIS_ERR_NOT_EXIST. SA_AIS_ERR_NOT_EXIST Y Y
          11.c P41-33:P42-2 lock resource with valid params in the normal case . test if the lock will have been granted in the requested mode. SA_AIS_OK Same with 2 Y Y
          12.c P42-3;P42-5 Test if implementations that support deadlock detection will detect deadlocks and indicate in the lockStatus field that granting the lock would cause a deadlock.   Y N
          13.c P42-6:P42-10 Test if the lockStatus can have other values other than SA_LCK_LOCK_GRANTED. SA_LCK_LOCK_GRANTED Y Y

    • lifecycle(complete/total:57/77)
      • saLckInitialize(complete/total:15 /20)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P21-35:P21-36 Initialize the lock service with a valid LckHandle and other valid parameters. SA_AIS_OK Y Y
          1-2.c P21-35:P21-36 Initialize the lock service with a NULL Lckhandle. SA_AIS_ERR_INVALID_PARAM Y Y
          2-1.c P21-37:P21-41 Initialize the lock service with correct parameters such as normal handle, verion and callback, and callback is not NULL. SA_AIS_OK Y Y
          2-2.c P21-37:P21-41 Initialize the lock service with correct parameters such as normal handle, verion and callback, but callback is set to NULL SA_AIS_OK Y Y
          3-1.c P22-1:P22-5 Initialize the lock service with a NULL version code. SA_AIS_ERR_INVALID_PARAM Y Y
          3-2.c P22-1:P22-5 Initialize the lock service with a valid version code. SA_AIS_OK Same with 1-1 Y Y
          4.c P22-6:P22-12 Initialize the lock service with a valid LckHandle and other valid parameters. SA_AIS_OK Same with 1-1 Y Y
          5-1.c P22-13:P22-23 Initialize the lock service with a version code. Suppose the returned major version number is bigger than the required majorversion number SA_AIS_OK Y Y
          5-2.c P22-13:P22-23 Initialize the lock service with a version code. Suppose the returned major version number is equal to the required majorversion number SA_AIS_OK Y Y
          6-1.c P22-24:P23-20 Initialize the lock service with a version code. Suppose the returned major version number is smaller than the required majorversion number SA_AIS_ERR_VERSION Y Y
          6-2.c P22-24:P23-20 Initialize the lock service with a version code, whose release code is bigger than current one, and could not be supported now. SA_AIS_ERR_VERSION Y Y
          6-3.c P22-24:P23-20 Initialize the lock service with a version code, whose release code is lower than current one, and is supposed not to be supported. SA_AIS_ERR_VERSION Y Y
          7.c P23-21:P23-23 Test whether this API saLckInitialize can return a value of SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-1 Y Y
          8.c P23-24:P23-25 Test whether this API saLckInitialize can return a value of SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          9.c P23-26:P23-28 Test whether this API saLckInitialize can return a value of SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          10.c P23-29:P23-31 Test whether this API saLckInitialize can return a value of SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          11.c P23-32:P23-33 Test whether this API saLckInitialize can return a value of SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 1-2 Y Y
          12.c P23-34:P23-35 Test whether this API saLckInitialize can return a value of SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Return = SA_AIS_ERR_NO_MEMORY Y N
          13.c P23-36:P23-37 Test whether this API saLckInitialize can return a value of SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Return = SA_AIS_ERR_NO_RESOURCES Y N
          14.c P23-38:P23-40 Test whether this API saLckInitialize can return a value of SA_AIS_ERR_VERSION SA_AIS_ERR_VERSION Return = SA_AIS_ERR_VERSION Same with test case 6-1 Y Y

      • saLckDispatch(complete/total:11 /14)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P26-35:P26-37 Dispatch correctly, set valid lckHandle value and dispatch Flag to SA_DISPATCH_ONE. The function should complete successfully. SA_DISPATCH_ONE. The function should complete successfully. Return = SA_AIS_OK Y Y
          1-2.c P26-35:P26-37 Dispatch is called with an unintialized saLckHandle. SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P26-35:P26-37 Dispatch is called with a finalized lckhandle. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P26-38:P26-42 Dispatch correctly, Set valid lckHandle value and dispatch Flag to SA_DISPATCH_ONE. The function should complete successfully. SA_DISPATCH_ONE. The function should complete successfully. Return = SA_AIS_OK Same with 1-1 Y Y
          2-2.c P26-38:P26-42 Dispatch correctly, Set dispatch Flag to SA_DISPATCH_ALL. The function completes successfully. SA_DISPATCH_ALL. The function completes successfully. Return = SA_AIS_OK Y Y
          2-3.c P26-38:P26-42 Dispatch correctly, Set dispatch Flag to SA_DISPATCH_BLOCKING. The function completes successfully. SA_DISPATCH_BLOCKING. The function completes successfully. Return = SA_AIS_OK Y Y
          2-4.c P26-38:P26-42 Dispatch is called with an dispatch flag other than "SA_DISPATCH_ONE, SA_DISPATCH_ALL or SA_DISPATCH_BLOCKING". SA_DISPATCH_ONE, SA_DISPATCH_ALL or SA_DISPATCH_BLOCKING". Return = SA_AIS_ERR_INVALID_PARAM Y Y
          3.c P27-1:P27-5 Dispatch correctly, Set valid lckHandle value and dispatch Flag SA_AIS_OK Same with 1-1 Y Y
          4.c P27-6:P27-7 Test whether the API saLckDispatch can return value SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-1 Y Y
          5.c P27-8:P27-11 Test whether the API saLckDispatch can return value SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          6.c P27-12:P27-14 Test whether the API saLckDispatch can return value SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          7.c P27-15:P27-17 Test whether the API saLckDispatch can return value SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          8.c P27-18:P27-19 Test whether the API saLckDispatch can return value SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          9.c P27-20:P27-20 Test whether the API saLckDispatch can return value SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 2-4 Y Y

      • saLckFinalize(complete/total:10 /14)

          XML error: Invalid document end at line 77
          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P27-36:P27-40 Call this function with valid lckHandle and other valid params SA_AIS_OK Y Y
          1-2.c P27-36:P27-40 Call this function with a finalized lckHandle SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P27-36:P27-40 Call this function with an uninitialized lckHandle SA_AIS_ERR_BAD_HANDLE Y Y
          2.c P27-41:P28-2 Call this function with valid lckHandle and other valid params. SA_AIS_OK Same with 1-1 Y Y
          3.c P28-3:P28-4 Call saLckResourceOpen to get a pointer to the lock resource handle After finalizing , call saLckResourceClose to test if the resource is released. SA_AIS_OK Y Y
          4.c P28-5:P28-5 Call the api and test if the process releases the lock when the process hold a lock before. SA_AIS_OK Y N
          5.c P28-6:P28-7 Call the api and test if the process drops the pending request,when the process has a lock request queued before. Test steps: 1. initialize lock service to get a lckhandle 2. create a resource to lock. 3. create an "EX" lock on the resource. 4. create an "PR" lock thread. 5. finalize the lckhandle . 6. if the pending lock was canceled,it return SA_AIS_PASS. otherwise,it will timeout. SA_AIS_PASS. otherwise,it will timeout. Return = SA_AIS_OK Y Y
          6.c P28-8:P28-10 After finalizing, we try to call callbacks related to the lckHandle SA_AIS_OK Y N
          7.c P28-11:P28-12 Call saLckSelectionObjectGet related to the lckHandle , After finalizing we call select to detect whether the selectionObject is invaild . SA_AIS_OK Y Y
          8.c P28-13:P28-15 Test whether API saLckFinalize can return the value of SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-1 Y Y
          9.c P28-16:P28-17 Test whether API saLckFinalize can return the value of SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          10.c P28-18:P28-21 Test whether API saLckFinalize can return the value of SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          11.c P28-22:P28-23 Test whether API saLckFinalize can return the value of SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          12.c P28-24:P28-25 Test whether API saLckFinalize can return the value of SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y

      • saLckSelectionObjectGet(complete/total:10 /16)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P24-15:P24-20 Get the selectionObject with valid parameters, including lckHandle, and selectionObject SA_AIS_OK Y Y
          1-2.c P24-15:P24-20 Get the selectionObject without initialize SA_AIS_ERR_BAD_HANDLE Y Y
          1-3.c P24-15:P24-20 Get the selectionObject after finalize, which will cause the lckHandle invalid SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P24-21:P24-23 Get the selectionObject with valid parameters SA_AIS_OK Same with test case 1-1 Y Y
          2-2.c P24-21:P24-23 Set the return selectionObject as NULL SA_AIS_ERR_INVALID_PARAM Y Y
          3.c P24-24:P24-32 Call the selectionObject with valid parameters, including lckHandle, and selectionObject, and then call saLckResourceOpenAsync to invoke a callback, and use select to detect pending callback.the returned value should be over zero. SA_AIS_OK Y Y
          4.c P24-33:P24-35 Call saLckSelectionObjectGet related to the lckHandle , After finalizing we call select to detect whether the selectionObject is invaild .the returned value should be -1. SA_AIS_OK Y Y
          5.c P24-36:P24-38 Test whether the API saLckSelectionObjectGet can return the value SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-1 Y Y
          6.c P24-39:P24-40 Test whether the API saLckSelectionObjectGet can return the value SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          7.c P24-41:P24-43 Test whether the API saLckSelectionObjectGet can return the value SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          8.c P25-1:P25-2 Test whether the API saLckSelectionObjectGet can return the value SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          9.c P25-3:P25-5 Test whether the API saLckSelectionObjectGet can return the value SA_AIS_ERR_BAD_HANDLE SA_AIS_ERR_BAD_HANDLE Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          10.c P25-6:P25-6 Test whether the API saLckSelectionObjectGet can return the value SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 2-2 Y Y
          11.c P25-7:P25-8 Test whether the API saLckSelectionObjectGet can return the value SA_AIS_NO_MEMORY SA_AIS_NO_MEMORY Return = SA_AIS_NO_MEMORY Y N
          12.c P25-9:P25-11 Test whether the API saLckSelectionObjectGet can return the value SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Return = SA_AIS_ERR_NO_RESOURCES Y N

      • saLckOptionCheck(complete/total:11 /13)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P25-29:P25-31 Test saLckOptionCheck without initialized lckHandle. SA_AIS_ERR_BAD_HANDLE Y Y
          1-2.c P25-29:P25-31 Test saLckOptionCheck with valid lckHandle. SA_AIS_OK Y Y
          2-1.c P25-32:P25-35 Test saLckOptionCheck will get lckOptions with valid parameter. SA_AIS_OK Same with 1-2 Y Y
          2-2.c P25-32:P25-35 Test saLckOptionCheck will not get lckOptions with invalid parameter. SA_AIS_ERR_BAD_HANDLE Same with 1-1 Y Y
          3.c P25-36:P25-41 Test saLckOptionCheck will set a flag into lckOptions bitmask after the function returns successfully. Steps: 1. Initialize a lckHandle. 2. saLckOptionCheck runs. 3. Check whether lckOptions fit SA_LCK_OPT_ORPHAN_LOCKS, or SA_LCK_OPT_DEADLOCK_DETECTION, or both of them, or none of them. 4. Finalize the lckHandle. SA_LCK_OPT_ORPHAN_LOCKS, or SA_LCK_OPT_DEADLOCK_DETECTION, or both of them, or none of them. 4. Finalize the lckHandle. Return = SA_AIS_OK Y Y
          4-1.c P25-41:P26-3 Test if application attempts to use SA_LCK_LOCK_ORPHAN, which is not supported, it will return error. Steps: 1. get lckOptions by this api 2. if lckOptions is SA_LCK_OPT_ORPHAN_LOCKS, return pass 3. if lckOptions is not SA_LCK_OPT_ORPHAN_LOCKS, use SA_LCK_LOCK_ORPHAN as lockFlag to lock the resource. 4. If the lock action of step 3 succeeds, case fails. Otherwise, case passes. SA_LCK_LOCK_ORPHAN, which is not supported, it will return error. Steps: 1. get lckOptions by this api 2. if lckOptions is SA_LCK_OPT_ORPHAN_LOCKS, return pass 3. if lckOptions is not SA_LCK_OPT_ORPHAN_LOCKS, use SA_LCK_LOCK_ORPHAN as lockFlag to lock the resource. 4. If the lock action of step 3 succeeds, case fails. Otherwise, case passes. Return = SA_AIS_OK Y Y
          4-2.c P25-41:P26-3 Test if application uses feature which is supported by saLckOptionsCheck, it will be OK.   Y Y
          5.c P26-4:P26-9 Test an application may encounter a deadlock when deadlock detection is not supported, while the application expects it is supported. SA_AIS_OK Y N
          6.c P26-11 Test saLckOptionsCheck returns SA_AIS_OK. SA_AIS_OK. Return = SA_AIS_OK Same with 1-2 Y Y
          7.c P26-12:P26-14 Test saLckOptionsCheck returns SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Return = SA_AIS_ERR_LIBARY Y N
          8-1.c P26-15:P26-16 Test saLckOptionsCheck returns SA_AIS_ERR_BAD_HANDLE when lckHandle is uninitialized. SA_AIS_ERR_BAD_HANDLE when lckHandle is uninitialized. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-1 Y Y
          8-2.c P26-15:P26-16 Test saLckOptionsCheck returns SA_AIS_ERR_BAD_HANDLE when lckHandle is finalized. SA_AIS_ERR_BAD_HANDLE when lckHandle is finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          9.c P26-17:P26-18 Test saLckOptionsCheck returns SA_AIS_ERR_INVALID_PARAM when a parameter is not set correctly. SA_AIS_ERR_INVALID_PARAM when a parameter is not set correctly. Return = SA_AIS_ERR_INVALID_PARAM Y Y

  • AIS-msg-B.01.01(complete/total:461/588)
    • queuegroup(complete/total:106/141)
      • saMsgQueueGroupTrackStop(complete/total:12 /17)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P52-21:P52-24 Call the api with valid msgHandle and other valid params. SA_AIS_OK Y Y
          1-2.c P52-21:P52-24 Call the api with invalid msgHandle which is not uninitialized. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P52-25:P52-28 Call the api with valid queueGroupName and other valid params. SA_AIS_OK Same with 1-1 Y Y
          2-2.c P52-25:P52-28 Call the api with invalid queueGroupName which the message queue group, designated by,can not be found. SA_AIS_ERR_NOT_EXIST Y Y
          2-3.c P52-25:P52-28 Call the api with NULL queueGroupName which the message queue group, designated by,can not be found. SA_AIS_ERR_INVALID_PARAM Y Y
          3.c P52-29:P52-31 Call the api with valid params. SA_AIS_OK Y Y
          4.c P52-32:P52-34 Test the api saMsgQueueGroupTrackStop can return SA_AIS_OK. SA_AIS_OK. Return = SA_AIS_OK Same with 1-1 Y Y
          5.c P52-35:P52-37 Test the api saMsgQueueGroupTrackStop can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Return = SA_AIS_ERR_LIBRARY Y N
          6.c P52-38:P52-40 Test the api saMsgQueueGroupTrackStop can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Return = SA_AIS_ERR_TIMEOUT Y N
          7.c P52-41:P52-43 Test the api saMsgQueueGroupTrackStop can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Return = SA_AIS_ERR_TRY_AGAIN Y N
          8-1.c P53-1:P53-3 Test the api saMsgQueueGroupTrackStop can return SA_AIS_ERR_BAD_HANDLE when msgHandle is uninitialized. SA_AIS_ERR_BAD_HANDLE when msgHandle is uninitialized. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          8-2.c P53-1:P53-3 Test the api saMsgQueueGroupTrackStop can return SA_AIS_ERR_BAD_HANDLE when msgHandle is finalized. SA_AIS_ERR_BAD_HANDLE when msgHandle is finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          9.c P53-4:P53-4 Test the api saMsgQueueGroupTrackStop can return SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Return = SA_AIS_ERR_INVALID_PARAM Same with 2-3 Y Y
          10.c P53-5:P53-7 Test the api saMsgQueueGroupTrackStop can return SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY. Return = SA_AIS_ERR_NO_MEMORY Y N
          11.c P53-8:P53-9 Test the api saMsgQueueGroupTrackStop can return SA_AIS_ERR_NO_RESOURCES. SA_AIS_ERR_NO_RESOURCES. Return = SA_AIS_ERR_NO_RESOURCES Y N
          12.c P53-10:P53-14 Test the api saMsgQueueGroupTrackStop can return SA_AIS_ERR_NOT_EXIST when the message queue group name designated by queueGroupName cannot be found. SA_AIS_ERR_NOT_EXIST when the message queue group name designated by queueGroupName cannot be found. Return = SA_AIS_ERR_NOT_EXIST Same with 2-2 Y Y
          13.c P53-15:P53-17 Test the api saMsgQueueGroupTrackStop can return SA_AIS_ERR_NOT_EXIST when no track of changes in the membership in queueGroupName was previously started via saMsgQueueGroupTrack with track flags SA_TRACK_CHANGES or SA_TRACK_CHANGES_ONLY and which is still in effect. SA_AIS_ERR_NOT_EXIST when no track of changes in the membership in queueGroupName was previously started via saMsgQueueGroupTrack with track flags SA_TRACK_CHANGES or SA_TRACK_CHANGES_ONLY and which is still in effect. Return = SA_AIS_ERR_NOT_EXIST Y Y

      • saMsgQueueGroupTrack(complete/total:26 /33)

          XML error: Mismatched tag at line 179
          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P47-30:P47-32 Call the api with valid msgHandle and other valid params. SA_AIS_Ok Y Y
          1-2.c P47-30:P47-32 Call the api with invalid msgHandle which is uninitialized. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P47-33:P47-35 Call the api with valid queueGroupName and other valid params. SA_AIS_OK Same with 1-1 Y Y
          2-2.c P47-33:P47-35 Call the api with invalid queueGroupName which the message queue group designated by can't be found. SA_AIS_ERR_NOT_EXIST Y Y
          2-3.c P47-33:P47-35 Call the api with NULL queueGroupName. SA_AIS_ERR_INVALID_PARAM Y Y
          3.c P47-36:P48-1 Call the api with SA_TRACK_CURRENT set and null notificationBuffer,Test if information about all members in the message queue group is returned by a single subsequent invocation of the saMsgQueueGroupTrackCallback notification callback. SA_TRACK_CURRENT set and null notificationBuffer,Test if information about all members in the message queue group is returned by a single subsequent invocation of the saMsgQueueGroupTrackCallback notification callback. Return = SA_AIS_OK Y Y
          4.c P48-2:P48-3 Call the api with SA_TRACK_CURRENT set and non-null notificationBuffer, test if information about all members in the message queue group is returned in notificationBuffer when the api call completes. SA_TRACK_CURRENT set and non-null notificationBuffer, test if information about all members in the message queue group is returned in notificationBuffer when the api call completes. Return = SA_AIS_OK Y Y
          5-1.c P48-4:P48-10 Call the api with SA_TRACK_CHANGES set and other valid params. Test if the notification callback is invoked each time and the callback call provides an SaMsgQueueGroupNotificationT structure for all members (changed and not changed) of the message queue group,when a change occurs in the membership of the message queue group. SA_TRACK_CHANGES set and other valid params. Test if the notification callback is invoked each time and the callback call provides an SaMsgQueueGroupNotificationT structure for all members (changed and not changed) of the message queue group,when a change occurs in the membership of the message queue group. Return = SA_AIS_OK Y Y
          5-2.c P48-4:P48-10 Call the api with SA_TRACK_CHANGES set and other valid params. Test if the notification callback is invoked each time and the callback call provides an SaMsgQueueGroupNotificationT structure for all members (changed and not changed) of the message queue group,when a change occurs in the SaMsgQueueGroupMemberT structure of a member of the message queue group. SA_TRACK_CHANGES set and other valid params. Test if the notification callback is invoked each time and the callback call provides an SaMsgQueueGroupNotificationT structure for all members (changed and not changed) of the message queue group,when a change occurs in the SaMsgQueueGroupMemberT structure of a member of the message queue group. Return = SA_AIS_OK Y N
          6-1.c P48-11:P48-16 Call the api with SA_TRACK_CHANGES_ONLY set and other valid params. Test if the notification callback is invoked each time and the callback call provides an SaMsgQueueGroupNotificationT structure for all changed members of the message queue group,when a change occurs in the membership of the message queue group. SA_TRACK_CHANGES_ONLY set and other valid params. Test if the notification callback is invoked each time and the callback call provides an SaMsgQueueGroupNotificationT structure for all changed members of the message queue group,when a change occurs in the membership of the message queue group. Return = SA_AIS_OK Y Y
          6-2.c P48-11:P48-16 Call the api with SA_TRACK_CHANGES_ONLY set and other valid params. Test if the notification callback is invoked each time and the callback call provides an SaMsgQueueGroupNotificationT structure for all changed members of the message queue group,when a change occurs in the SaMsgQueueGroupMemberT structure of a member of the message queue group. SA_TRACK_CHANGES_ONLY set and other valid params. Test if the notification callback is invoked each time and the callback call provides an SaMsgQueueGroupNotificationT structure for all changed members of the message queue group,when a change occurs in the SaMsgQueueGroupMemberT structure of a member of the message queue group. Return = SA_AIS_OK Y N
          7.c P48-17:P48-19 Call the api with SA_TRACK_CHANGES | SA_TRACK_CHANGES_ONLY set. SA_TRACK_CHANGES | SA_TRACK_CHANGES_ONLY set. Return = SA_AIS_ERR_BAD_FLAGS Y Y
          8-1.c P48-20:P48-33 Call the api with numberOfItems which is the same with the number of message queue in the message queue group. SA_AIS_OK Same with 1-1 Y Y
          8-2.c P48-20:P48-33 Call the api with numberOfItems which is less than the number of message queue in the message queue group. SA_AIS_ERR_NO_SPACE Y Y
          9.c P48-34:P48-36 Call the api with null notification, test if the message service allocate memory for the message queue group information. SA_AIS_OK Y Y
          10.c P48-37:P49-2 Call the api when the saMsgQueueGroupTrackCallback have not been supplied. SA_AIS_ERR_INIT Y Y
          11.c P49-3:P49-10 Call the api with SA_TRACK_CHANGES_ONLY set while we have called the api with SA_TRACK_CHANGES before, test if changes in the membership of a message queue group are currently being tracked according to SA_TRACK_CHANGES_ONLY. SA_TRACK_CHANGES_ONLY set while we have called the api with SA_TRACK_CHANGES before, test if changes in the membership of a message queue group are currently being tracked according to SA_TRACK_CHANGES_ONLY. Return = SA_AIS_OK Y Y
          12.c P49-11:P49-11 Call the api with SA_TRACK_CHANGES set while we have called the api with SA_TRACK_CHANGES_ONLY before, test if changes in the membership of a message queue group are currently being tracked according to SA_TRACK_CHANGES. SA_TRACK_CHANGES set while we have called the api with SA_TRACK_CHANGES_ONLY before, test if changes in the membership of a message queue group are currently being tracked according to SA_TRACK_CHANGES. Return = SA_AIS_OK Y Y
          13-1.c P49-12:P49-15 Call the api with SA_TRACK_CHANGES set and then Call the saMsgQueueGroupTrackStop , test if the notifications can be stopped. SA_TRACK_CHANGES set and then Call the saMsgQueueGroupTrackStop , test if the notifications can be stopped. Return = SA_AIS_OK Y Y
          13-2.c P49-12:P49-15 Call the api with SA_TRACK_CHANGES_ONLY set and then Call the saMsgQueueGroupTrackStop , test if the notifications can be stopped. SA_TRACK_CHANGES_ONLY set and then Call the saMsgQueueGroupTrackStop , test if the notifications can be stopped. Return = SA_AIS_OK Y Y
          14.c P49-16:P49-18 Test if saMsgQueueGroupTrack can return SA_AIS_OK. SA_AIS_OK. Return = SA_AIS_OK Same with 1-1 Y Y
          15.c P49-19:P49-20 Test if saMsgQueueGroupTrack can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Return = SA_AIS_ERR_LIBRARY Y N
          16.c P49-21:P49-25 Test if saMsgQueueGroupTrack can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Return = SA_AIS_ERR_TIMEOUT Y N
          17.c P49-26:P49-27 Test if saMsgQueueGroupTrack can return SA_AIS_ERR_TRY_OUT. SA_AIS_ERR_TRY_OUT. Return = SA_AIS_ERR_TRY_OUT Y N
          18-1.c P49-28:P49-29 Test if saMsgQueueGroupTrack can return SA_AIS_ERR_BAD_HANDLE when the msgHandle is uninitialized. SA_AIS_ERR_BAD_HANDLE when the msgHandle is uninitialized. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          18-2.c P49-28:P49-29 Test if saMsgQueueGroupTrack can return SA_AIS_ERR_BAD_HANDLE when the msgHandle is finalized. SA_AIS_ERR_BAD_HANDLE when the msgHandle is finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          19.c P49-30:P49-31 Test if saMsgQueueGroupTrack can return SA_AIS_ERR_INIT. SA_AIS_ERR_INIT. Return = SA_AIS_ERR_INIT Same with 10 Y Y
          20.c P49-32:P49-33 Test if saMsgQueueGroupTrack can return SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Return = SA_AIS_ERR_INVALID_PARAM Same with 2-3 Y Y
          21.c P49-34:P49-36 Test if saMsgQueueGroupTrack can return SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY. Return = SA_AIS_ERR_NO_MEMORY Y N
          22.c P49-37:P49-38 Test if saMsgQueueGroupTrack can return SA_AIS_ERR_NO_RESOURCES. SA_AIS_ERR_NO_RESOURCES. Return = SA_AIS_ERR_NO_RESOURCES Y N
          23.c P49-39:P49-43 Test if saMsgQueueGroupTrack can return SA_AIS_ERR_NO_SPACE. SA_AIS_ERR_NO_SPACE. Return = SA_AIS_ERR_NO_SPACE Same with 8-2 Y Y
          24.c P50-1:P50-2 Test if saMsgQueueGroupTrack can return SA_AIS_ERR_NOT_EXIST. SA_AIS_ERR_NOT_EXIST. Return = SA_AIS_ERR_NOT_EXIST Same with 2-2 Y Y
          25.c P50-3:P50-5 Test if saMsgQueueGroupTrack can return SA_AIS_ERR_BAD_FLAGS. SA_AIS_ERR_BAD_FLAGS. Return = SA_AIS_ERR_BAD_FLAGS Same with 7 Y Y

      • saMsgQueueGroupCreate(complete/total:12 /18)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P42-16:P42-20 Call the api with valid msgHandle and other valid params. SA_AIS_OK Y Y
          1-2.c P42-16:P42-20 Call the api with invalid msgHandle and other valid params. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P42-21:P42-22 Call the api with non-null queueGroupName and other valid params. SA_AIS_OK Same with 1-1 Y Y
          2-2.c P42-21:P42-22 Call the api with null queueGroupName and other valid params. SA_AIS_ERR_INVALID_PARAM Y Y
          3-1.c P42-23:P42-25 Call the api with valid queueGroupPolicy and other valid params. SA_AIS_OK Same with 1-1 Y Y
          3-2.c P42-23:P42-25 Call the api with invalid queueGroupPolicy and other valid params. SA_AIS_ERR_NOT_SUPPORTED Y N
          4.c P42-26:P42-30 Call the api with valid params. SA_AIS_OK Same with 1-1 Y Y
          5.c P42-31:P42-33 Test if saMsgQueueGroupCreate can return SA_AIS_OK. SA_AIS_OK. Return = SA_AIS_OK Same with 1-1 Y Y
          6.c P42-34:P42-35 Test if saMsgQueueGroupCreate can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Return = SA_AIS_ERR_LIBRARY Y N
          7.c P42-36:P42-40 Test if saMsgQueueGroupCreate can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Return = SA_AIS_ERR_TIMEOUT Y N
          8.c P42-41:P42-42 Test if saMsgQueueGroupCreate can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Return = SA_AIS_ERR_TRY_AGAIN Y N
          9-1.c P43-1:P43-2 Test if saMsgQueueGroupCreate can return SA_AIS_ERR_BAD_HANDLE when msgHandle is uninitialized. SA_AIS_ERR_BAD_HANDLE when msgHandle is uninitialized. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          9-2.c P43-1:P43-2 Test if saMsgQueueGroupCreate can return SA_AIS_ERR_BAD_HANDLE when msgHandle has been finalized. SA_AIS_ERR_BAD_HANDLE when msgHandle has been finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          10.c P43-3:P43-3 Test if saMsgQueueGroupCreate can return SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Return = SA_AIS_ERR_INVALID_PARAM Same with 2-2 Y Y
          11.c P43-4:P43-6 Test if saMsgQueueGroupCreate can return SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY. Return = SA_AIS_ERR_NO_MEMORY Y N
          12.c P43-7:P43-10 Test if saMsgQueueGroupCreate can return SA_AIS_ERR_NO_RESOURCES. SA_AIS_ERR_NO_RESOURCES. Return = SA_AIS_ERR_NO_RESOURCES Y N
          13.c P43-11:P43-12 Test if saMsgQueueGroupCreate can return SA_AIS_ERR_EXIST. SA_AIS_ERR_EXIST. Return = SA_AIS_ERR_EXIST Y Y
          14.c P43-13:P43-15 Test if saMsgQueueGroupCreate can return SA_AIS_ERR_NOT_SUPPORTED. SA_AIS_ERR_NOT_SUPPORTED. Return = SA_AIS_ERR_NOT_SUPPORTED Same with 3-2 Y Y

      • saMsgQueueGroupDelete(complete/total:12 /15)

          XML error: Mismatched tag at line 73
          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P46-25:P46-26 Call the api with valid msgHandle and other valid params. SA_AIS_Ok Y Y
          1-2.c P46-25:P46-26 Call the api with invalid msgHandle which is uninitialized. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P46-27:P46-30 Call the api with valid queueGroupName and other valid params SA_AIS_OK Same with 1-1 Y Y
          2-2.c P46-27:P46-30 Call the api with invalid queueGroupName which the message queue group designated by can't be found. SA_AIS_ERR_NOT_EXIST Y Y
          2-3.c P46-27:P46-30 Call the api with NULL queueGroupName SA_AIS_ERR_INVALID_PARAM Y Y
          3.c P46-31:P46-33 Call the api with valid params. SA_AIS_OK Same with 1-1 Y Y
          4.c P46-34:P46-35 After the invocation of the api , test if it is no longer possible to send message to the message queue group SA_AIS_OK Y Y
          5.c P46-36:P46-36 Test if saMsgQueueGroupDelete can return SA_AIS_OK SA_AIS_OK Return = SA_AIS_OK Same with 1-1 Y Y
          6.c P46-37:P46-39 Test if saMsgQueueGroupDelete can return SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = SA_AIS_ERR_LIBRARY Y N
          7.c P46-40:P46-43 Test if saMsgQueueGroupDelete can return SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = SA_AIS_ERR_TIMEOUT Y N
          8.c P47-1:P47-3 Test if saMsgQueueGroupDelete can return SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = SA_AIS_ERR_TRY_AGAIN Y N
          9-1.c P47-4:P47-5 Test if saMsgQueueGroupDelete can return SA_AIS_ERR_BAD_HANDLE when msgHandle is uninitialized SA_AIS_ERR_BAD_HANDLE when msgHandle is uninitialized Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          9-2.c P47-4:P47-5 Test if saMsgQueueGroupDelete can return SA_AIS_ERR_BAD_HANDLE when msgHandle is finalized SA_AIS_ERR_BAD_HANDLE when msgHandle is finalized Return = SA_AIS_ERR_BAD_HANDLE Y Y
          10.c P47-6:P47-7 Test if saMsgQueueGroupDelete can return SA_AIS_ERR_INVALID_PARAM SA_AIS_ERR_INVALID_PARAM Return = SA_AIS_ERR_INVALID_PARAM Same with 2-3 Y Y
          11.c P47-8:P47-10 Test if saMsgQueueGroupDelete can return SA_AIS_ERR_NOT_EXIST when the message queue group designated by queueGroupName can not be found SA_AIS_ERR_NOT_EXIST when the message queue group designated by queueGroupName can not be found Return = SA_AIS_ERR_NOT_EXIST Same with 2-2 Y Y

      • saMsgQueueGroupRemove(complete/total:17 /20)

          XML error: Mismatched tag at line 100
          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P45-15:P45-17 Call the api with valid msgHandle and other valid params. SA_AIS_OK Y Y
          1-2.c P45-15:P45-17 Call the api with invalid msgHandle which is uninitialized. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P45-18:P45-20 Call the api with valid queueGroupName and other valid params. SA_AIS_OK Same with 1-1 Y Y
          2-2.c P45-18:P45-20 Call the api with invalid queueGroupName which the message queue group designated by can't be found. SA_AIS_ERR_NOT_EXIST Y Y
          2-3.c P45-18:P45-20 Call the api with NULL queueGroupName. SA_AIS_ERR_INVALID_PARAM Y Y
          3-1.c P45-21:P45-25 Call the api with valid queueName and other valid params. SA_AIS_OK Same with 1-1 Y Y
          3-2.c P45-21:P45-25 Call the api with NULL queueName and other valid params. SA_AIS_ERR_INVALID_PARAM Y Y
          3-3.c P45-21:P45-25 Call the api with invalid queueName whcih is not a member of the message queue group, identified by queueGroupName. SA_AIS_ERR_NOT_EXIST Y Y
          3-4.c P45-21:P45-25 Call the api with invalid queueName which does not exist. SA_AIS_ERR_NOT_EXIST Y Y
          4.c P45-26:P45-29 Call the api with valid params. SA_AIS_OK Same with 1-1 Y Y
          5.c P45-30:P45-30 Test if saMsgQueueGroupRemove can return SA_AIS_OK. SA_AIS_OK. Return = SA_AIS_OK Same with 1-1 Y Y
          6.c P45-31:P45-33 Test if saMsgQueueGroupRemove can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Return = SA_AIS_ERR_LIBRARY Y N
          7.c P45-34:P45-36 Test if saMsgQueueGroupRemove can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Return = SA_AIS_ERR_TIMEOUT Y N
          8.c P45-37:P45-39 Test if saMsgQueueGroupRemove can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Return = SA_AIS_ERR_TRY_AGAIN Y N
          9-1.c P45-40:P45-42 Test if saMsgQueueGroupRemove can return SA_AIS_ERR_BAD_HANDLE when msgHandle is uninitialized. SA_AIS_ERR_BAD_HANDLE when msgHandle is uninitialized. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          9-2.c P45-40:P45-42 Test if saMsgQueueGroupRemove can return SA_AIS_ERR_BAD_HANDLE when msgHandle is finalized. SA_AIS_ERR_BAD_HANDLE when msgHandle is finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          10.c P45-43:P45-43 Test if saMsgQueueGroupRemove can return SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Return = SA_AIS_ERR_INVALID_PARAM Same with 2-3 Y Y
          11-1.c P46-1:P46-3 Test if saMsgQueueGroupRemove can return SA_AIS_ERR_NOT_EXIST when the message queue designated by queueName can not be found. SA_AIS_ERR_NOT_EXIST when the message queue designated by queueName can not be found. Return = SA_AIS_ERR_NOT_EXIST Same with 3-4 Y Y
          11-2.c P46-1:P46-3 Test if saMsgQueueGroupRemove can return SA_AIS_ERR_NOT_EXIST when the message queue group designated by queueGroupName can not be found. SA_AIS_ERR_NOT_EXIST when the message queue group designated by queueGroupName can not be found. Return = SA_AIS_ERR_NOT_EXIST Same with 2-2 Y Y
          12.c P46-4:P46-5 Test if saMsgQueueGroupRemove can return SA_AIS_ERR_NOT_EXIST when the message queue is not a member of the message queue group designated by queueGroupName. SA_AIS_ERR_NOT_EXIST when the message queue is not a member of the message queue group designated by queueGroupName. Return = SA_AIS_ERR_NOT_EXIST Same with 3-3 Y Y

      • saMsgQueueGroupInsert(complete/total:17 /22)

          XML error: Mismatched tag at line 106
          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P43-34:P43-37 Call the api with valid msgHandle and other params. SA_AIS_OK Y Y
          1-2.c P43-34:P43-37 Call the api with invalid msgHandle and other params. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P43-38:P43-40 Call the api with valid queueGroupName and other params. SA_AIS_OK Same with 1-1 Y Y
          2-2.c P43-38:P43-40 Call the api with invalid queueGroupName which the message queue group designated by can't be found. SA_AIS_ERR_NOT_EXIST Y Y
          2-3.c P43-38:P43-40 Call the api with NULL queueGroupName. SA_AIS_ERR_INVALID_PARAM Y Y
          3-1.c P43-41:P43-42 Call the api with valid queueName and other valid params. SA_AIS_OK Same with 1-1 Y Y
          3-2.c P43-41:P43-42 Call the api with NULL queueName and other valid params. SA_AIS_ERR_INVALID_PARAM Y Y
          3-3.c P43-41:P43-42 Call the api with invalid queueName which is already a member of the message queue group, identified by queueGroupName. SA_AIS_ERR_EXIST Y Y
          3-4.c P43-41:P43-42 Call the api with invalid queueName which does not exist. SA_AIS_ERR_NOT_EXIST Y Y
          4.c P44-1:P44-5 Call the api with valid params. SA_AIS_OK Same with 1-1 Y Y
          5.c P44-6:P44-7 Test if saMsgQueueGroupInsert can return SA_AIS_OK. SA_AIS_OK. Return = SA_AIS_OK Same with 1-1 Y Y
          6.c P44-8:P44-10 Test if saMsgQueueGroupInsert can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Return = SA_AIS_ERR_LIBRARY Y N
          7.c P44-11:P44-13 Test if saMsgQueueGroupInsert can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Return = SA_AIS_ERR_TIMEOUT Y N
          8.c P44-14:P44-15 Test if saMsgQueueGroupInsert can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Return = SA_AIS_ERR_TRY_AGAIN Y N
          9-1.c P44-16:P44-17 Test if saMsgQueueGroupInsert can return SA_AIS_ERR_BAD_HANDLE when msgHandle is uninitialized. SA_AIS_ERR_BAD_HANDLE when msgHandle is uninitialized. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          9-2.c P44-16:P44-17 Test if saMsgQueueGroupInsert can return SA_AIS_ERR_BAD_HANDLE when msgHandle is finalized. SA_AIS_ERR_BAD_HANDLE when msgHandle is finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          10.c P44-18:P44-19 Test if saMsgQueueGroupInsert can return SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Return = SA_AIS_ERR_INVALID_PARAM Same with 2-3 Y Y
          11.c P44-20:P44-22 Test if saMsgQueueGroupInsert can return SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY. Return = SA_AIS_ERR_NO_MEMORY Y N
          12.c P44-23:P44-25 Test if saMsgQueueGroupInsert can return SA_AIS_ERR_NOT_RESOURCES. SA_AIS_ERR_NOT_RESOURCES. Return = SA_AIS_ERR_NOT_RESOURCES Y N
          13-1.c P44-26:P44-27 Test if saMsgQueueGroupInsert can return SA_AIS_ERR_NOT_EXIST when the message queue designated by queueName cannot be found. SA_AIS_ERR_NOT_EXIST when the message queue designated by queueName cannot be found. Return = SA_AIS_ERR_NOT_EXIST Same with 3-4 Y Y
          13-2.c P44-26:P44-27 Test if saMsgQueueGroupInsert can return SA_AIS_ERR_NOT_EXIST when the message queue group designated by queueGroupName cannot be found. SA_AIS_ERR_NOT_EXIST when the message queue group designated by queueGroupName cannot be found. Return = SA_AIS_ERR_NOT_EXIST Same with 2-2 Y Y
          14.c P44-28:P44-30 Test if saMsgQueueGroupInsert can return SA_AIS_ERR_EXIST. SA_AIS_ERR_EXIST. Return = SA_AIS_ERR_EXIST Same with 3-3 Y Y

      • saMsgQueueGroupTrackCallback(complete/total:10 /16)

          XML error: Mismatched tag at line 110
          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P50-26:P50-26 saMsgQueueGroupTrackCallbackT is called with valid queueGroupName. Check if the queueGroupName matches the function which invoked this callback.   Y Y
          2.c P50-27:P50-30 saMsgQueueGroupTrackCallbackT is called with valid notificationBuffer. Check if the notificationBuffer matches current state.   Y Y
          3.c P50-31:P50-32 saMsgQueueGroupTrackCallbackT is called with valid numberOfMembers. Check if the numberOfMembers matches current state.   Y Y
          4.c P50-33:P50-36 saMsgQueueGroupTrackCallbackT is called with valid params. The error returned should be SA_AIS_OK SA_AIS_OK Return = NULL Same with 1 Y Y
          5.c P50-37:P50-38 Track the change in the message queue group , when the library cannot be used any more. The error returned should be SA_AIS_ERR_LIBRARY SA_AIS_ERR_LIBRARY Return = NULL Y N
          6.c P50-39:P50-42 Track the change in the message queue group, when an implementation -dependent timeout occured before the call could complete. The error returned should be SA_AIS_ERR_TIMEOUT SA_AIS_ERR_TIMEOUT Return = NULL Y N
          7.c P51-1:P51-3 Track the change in the message queue group, when the service cannot be provided at this time. The error returned should be SA_AIS_ERR_TRY_AGAIN SA_AIS_ERR_TRY_AGAIN Return = NULL Y N
          8.c P51-4:P51-7 Track the change in the message queue group, when either the message service library or the provider of the service is out of memory and cannot provide the service. The error returned should be SA_AIS_ERR_NO_MEMORY SA_AIS_ERR_NO_MEMORY Return = NULL Y N
          9.c P51-8:P51-11 Track the change in the message queue group, when either the message service library or the provider of the service is out of resources (other than memory)and can not provide the service. The error returned should be SA_AIS_ERR_NO_RESOURCES SA_AIS_ERR_NO_RESOURCES Return = NULL Y N
          10.c P51-12:P51-15 Track the change in the message queue group, when the message queue group designated by queueGroupName no longer exists. The error returned should be SA_AIS_ERR_NOT_EXIST and the message service should stop the tracking of the queue group automatically. SA_AIS_ERR_NOT_EXIST and the message service should stop the tracking of the queue group automatically. Return = NULL Y Y
          11.c P51-16:P51-20 when the error returned is SA_AIS_ERR_NO_MEMORY or SA_AIS_ERR_NO_RESOURCES ,the process that invoked saMsgQueueGroupTrack should invoke saMsgQueueGroupTrackStop and then invoke saMsgQueueGroupTrack again to resynchronize with the current state. SA_AIS_ERR_NO_MEMORY or SA_AIS_ERR_NO_RESOURCES ,the process that invoked saMsgQueueGroupTrack should invoke saMsgQueueGroupTrackStop and then invoke saMsgQueueGroupTrack again to resynchronize with the current state. Return = NULL Y N
          12-1.c P51-21:P51-31 Call saMsgQueueGroupTrack with SA_TRACK_CHANGES set and other valid params. Test if saMsgQueueGroupTrackCallbackT is invoked each time and the callback call provides an SaMsgQueueGroupNotificationT structure for all members (changed and not changed) of the message queue group,when a change occurs in the membership of the message queue group. SA_TRACK_CHANGES set and other valid params. Test if saMsgQueueGroupTrackCallbackT is invoked each time and the callback call provides an SaMsgQueueGroupNotificationT structure for all members (changed and not changed) of the message queue group,when a change occurs in the membership of the message queue group. Return = NULL Y Y
          12-2.c P51-21:P51-31 Call saMsgQueueGroupTrack with SA_TRACK_CHANGES_ONLY set and other valid params.Test if saMsgQueueGroupTrackCallbackT is invoked each time and the callback call provides an SaMsgQueueGroupNotificationT structure for all changed members of the message queue group,when a change occurs in the membership of the message queue group. SA_TRACK_CHANGES_ONLY set and other valid params.Test if saMsgQueueGroupTrackCallbackT is invoked each time and the callback call provides an SaMsgQueueGroupNotificationT structure for all changed members of the message queue group,when a change occurs in the membership of the message queue group. Return = NULL Y Y
          13-1.c P51-32:P51-39 when a message queue have recently left the message queue group and SA_TRACK_CHANGES is set ,the notificationBuffer contains information about the current members of the message queue group and also about message queues that have recently left the message queue group,and the value of the numberOfItems attribute in the notificationBuffer parameter should be greater than the value the numberOfMembers parameter. SA_TRACK_CHANGES is set ,the notificationBuffer contains information about the current members of the message queue group and also about message queues that have recently left the message queue group,and the value of the numberOfItems attribute in the notificationBuffer parameter should be greater than the value the numberOfMembers parameter. Return = NULL Same with 12-1 Y Y
          13-2.c P51-32:P51-39 when a message queue have recently left the message queue group and SA_TRACK_CHANGES_ONLY is set ,the notificationBuffer contains information about the current members of the message queue group and also about message queues that have recently left the message queue group,and the value of the numberOfItems attribute in the notificationBuffer parameter should be greater than the value the numberOfMembers parameter. SA_TRACK_CHANGES_ONLY is set ,the notificationBuffer contains information about the current members of the message queue group and also about message queues that have recently left the message queue group,and the value of the numberOfItems attribute in the notificationBuffer parameter should be greater than the value the numberOfMembers parameter. Return = NULL Same with 12-2 Y Y
          14.c P51-40:P51-40 If an error occurs, it should be returned in the error parameter. Same with 10   Y Y

    • queue(complete/total:126/152)
      • saMsgQueueOpenCallback(complete/total:7 /12)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1.c P35-30:P35-31 saMsgQueueOpenCallback is called with a invocation. Check if the invocation matches the value in Callback.   Y Y
          2.c P35-32:P35-33 saMsgQueueOpenCallback is called with valid params. Check if the queueHandle can be used.   Y Y
          3.c P35-34:P35-38 open queue with normal params. Return error should be SA_AIS_OK. SA_AIS_OK Y Y
          4.c P35-39:P35-41 open queue with corruption. Return error should be SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY Y N
          5.c P36-1:P36-3 open queue with implementation-dependent timeout occurred. Return error should be SA_AIS_TIMEOUT. SA_AIS_TIMEOUT Y N
          6.c P36-4:P36-5 open queue when The service cannot be provided at this time. Return error should be SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN Y N
          7.c P36-6:P36-7 open queue when the Message Service library or the Message Service provider is out of memory and cannot provide the service. Return error should be SA_AIS_ERR_NO_MEMORY. SA_AIS_ERR_NO_MEMORY Y N
          8.c P36-8:P36-10 open queue when There are insufficient resources (other memory). Return error should be SA_AIS_ERR_NO_RESOURCES. SA_AIS_ERR_NO_RESOURCES Y N
          9.c P36-11:P36-12 open queue when SA_MSG_QUEUE_CREATE flag is not set, and the queue, designated by queueName does not exist. Return error should be SA_AIS_ERR_NOT_EXIST. SA_MSG_QUEUE_CREATE flag is not set, and the queue, designated by queueName does not exist. Return error should be SA_AIS_ERR_NOT_EXIST Y Y
          10.c P36-13:P36-15 open queue when the message queue already exists and creationAttributes are different from the ones used at creation time. Return error should be SA_AIS_ERR_EXIST. SA_AIS_ERR_EXIST Y Y
          11.c P36-16:P36-20 open queue when the queue is already open by another process Return error should be SA_AIS_ERR_BUSY. 11-fork is used as its child process SA_AIS_ERR_BUSY. 11-fork is used as its child process Y Y
          12.c P36-21:P36-27 saMsgQueueOpenCallback is called with valid params. Check if the queueHandle can be used in subsequent requests Same with 2.   Y Y

      • saMsgQueueUnlink(complete/total:19 /22)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P40-14:P40-15 Call the api with valid msghandle and other valid params. SA_AIS_OK Y Y
          1-2.c P40-14:P40-15 Call the api with invalid msghandle and other valid params. SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P40-16:P40-20 Call the api with valid queueName and other valid params. SA_AIS_OK Same with 1-1 Y Y
          2-2.c P40-16:P40-20 Call the api with null queueName and other valid params. SA_AIS_ERR_INVALID_PARAM Y Y
          2-3.c P40-16:P40-20 Call the api with un-existing queueName and other valid params. SA_AIS_ERR_NOT_EXIST Y Y
          2-4.c P40-16:P40-20 Call the api with unlinked queueName and other valid params. SA_AIS_ERR_NOT_EXIST Y Y
          3.c P40-21:P40-22 Call the api with valid params.check if the message queue is deleted. SA_AIS_OK Same with 1-1 Y Y
          4.c P40-23:P40-26 create a message queue, close it, then unlink it, check if the queue name is invalid through open it again with SA_MSG_QUEUE_EMPTY flag set. SA_MSG_QUEUE_EMPTY flag set. Return = SA_AIS_OK Same with 1-1 Y Y
          5.c P40-27:P40-31 create a message queue, close it, then unlink it. create another queue with same name and SA_MSG_QUEUE_CREATE flag. SA_MSG_QUEUE_CREATE flag. Return = SA_AIS_OK Y Y
          6.c P40-32:P40-35 create a message queue with SA_MSG_QUEUE_PERSISTENT set, close it then unlink it.check if the queue is valid. SA_MSG_QUEUE_PERSISTENT set, close it then unlink it.check if the queue is valid. Return = SA_AIS_OK Same with 1-1 Y Y
          7.c P40-36:P40-37 create a queue and fork a sub-process, sub-process unlinks the queue; the main process still can access the queue after sub-process unlink the queue. Deletion of the message queue will occur when the message queue is closed. 7-fork.c is used as its child process SA_AIS_OK Y Y
          8.c P40-38:P40-40 After the deletion of a message queue , test if all resource will be freed by the message service for the message queue. SA_AIS_OK Y Y
          9.c P40-41:P40-42 After the invocation of the api, test if the message queue has been removed from all message queue groups it is a member of. SA_AIS_OK Y Y
          10.c P41-1:P41-2 create a queue and fork a sub-process in which the queue is unlinked to test if the invoking process need not be creater or opener of the message queue. 10-fork.c is used as its child processs SA_AIS_OK Y Y
          11.c P41-3:P41-6 Test if saMsgQueueUnlink can return SA_AIS_OK. SA_AIS_OK. Return = SA_AIS_OK Same with 1-1 Y Y
          12.c P41-7:P41-9 Test if saMsgQueueUnlink can return SA_AIS_ERR_LIBRARY. SA_AIS_ERR_LIBRARY. Return = SA_AIS_ERR_LIBRARY Y N
          13.c P41-10:P41-12 Test if saMsgQueueUnlink can return SA_AIS_ERR_TIMEOUT. SA_AIS_ERR_TIMEOUT. Return = SA_AIS_ERR_TIMEOUT Y N
          14.c P41-13:P41-15 Test if saMsgQueueUnlink can return SA_AIS_ERR_TRY_AGAIN. SA_AIS_ERR_TRY_AGAIN. Return = SA_AIS_ERR_TRY_AGAIN Y N
          15-1.c P41-16:P41-17 Test if saMsgQueueUnlink can return SA_AIS_ERR_BAD_HANDLE when msgHandle is uninitialized. SA_AIS_ERR_BAD_HANDLE when msgHandle is uninitialized. Return = SA_AIS_ERR_BAD_HANDLE Same with 1-2 Y Y
          15-2.c P41-16:P41-17 Test if saMsgQueueUnlink can return SA_AIS_ERR_BAD_HANDLE when msgHandle is finalized. SA_AIS_ERR_BAD_HANDLE when msgHandle is finalized. Return = SA_AIS_ERR_BAD_HANDLE Y Y
          16.c P41-18:P41-19 Test if saMsgQueueUnlink can return SA_AIS_ERR_NOT_EXIST. SA_AIS_ERR_NOT_EXIST. Return = SA_AIS_ERR_NOT_EXIST Same with 2-3 Y Y
          17.c P41-20:P41-21 Test if saMsgQueueUnlink can return SA_AIS_ERR_INVALID_PARAM. SA_AIS_ERR_INVALID_PARAM. Return = SA_AIS_ERR_INVALID_PARAM Same with 2-2 Y Y

      • saMsgQueueStatusGet(complete/total:12 /16)

          ID Spec Line(s) Description Expected Return Automatic(Y/N) Complete(Y/N)
          1-1.c P38-35:P38-37 Call the api with valid msgHandle SA_AIS_OK Y Y
          1-2.c P38-35:P38-37 Call the api with invalid msgHandle SA_AIS_ERR_BAD_HANDLE Y Y
          2-1.c P38-38:P38-40 Call the api with valid queueName and other valid param SA_AIS_OK Same with 1-1 Y Y
          2-2.c P38-38:P38-40 Call the api with NULL queueName SA_AIS_ERR_INVALID_PARAM Y Y
          2-3.c</