---
 src/ntf/apitest/tet_coldsync.c | 690 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 688 insertions(+), 2 deletions(-)

diff --git a/src/ntf/apitest/tet_coldsync.c b/src/ntf/apitest/tet_coldsync.c
index b2d4cab..949c4f6 100644
--- a/src/ntf/apitest/tet_coldsync.c
+++ b/src/ntf/apitest/tet_coldsync.c
@@ -204,12 +204,698 @@ void test_coldsync_saNtfNotificationReadNext_01(void)
        safassert(saNtfFinalize(ntfHandle), SA_AIS_OK);
        test_validate(errorCode, SA_AIS_ERR_NOT_EXIST); /* read all 
notifications!! */
 }
+/**
+ * This test function is to verify the reader Id to be
+ * cold sync to standby.
+ * Steps:
+ * - Send alarms
+ * - Call read initialize
+ * - Reboot the standby, the alarms should be cold sync
+ * - switch over to make the standby become active
+ * - Read alarms, reader is successful to read alarms from the new active
+ */
+void test_coldsync_saNtfNotificationReadInitialize_01(void)
+{
+       saNotificationAllocationParamsT myNotificationAllocationParams;
+       saNotificationFilterAllocationParamsT
+                       myNotificationFilterAllocationParams;
+       saNotificationParamsT myNotificationParams;
+
+       SaNtfSearchCriteriaT searchCriteria;
+       SaNtfAlarmNotificationFilterT myAlarmFilter;
+       SaNtfNotificationTypeFilterHandlesT myNotificationFilterHandles = {
+                       0, 0, 0, 0, 0};
+       SaNtfReadHandleT readHandle;
+       SaNtfHandleT ntfHandle;
+       SaNtfNotificationsT returnedNotification;
+       SaNtfAlarmNotificationT myNotification;
+       searchCriteria.searchMode = SA_NTF_SEARCH_ONLY_FILTER;
+       SaAisErrorT errorCode;
+       SaUint32T readCounter = 0;
+
+       fillInDefaultValues(&myNotificationAllocationParams,
+                                       &myNotificationFilterAllocationParams,
+                                       &myNotificationParams);
+
+       safassert(ntftest_saNtfInitialize(&ntfHandle, &ntfCallbacks, 
&ntfVersion),
+                       SA_AIS_OK);
+
+       safassert(ntftest_saNtfAlarmNotificationFilterAllocate(
+               ntfHandle, /* handle to Notification Service instance */
+               &myAlarmFilter, /* put filter here */
+               /* number of event types */
+               myNotificationFilterAllocationParams.numEventTypes,
+               /* number of notification objects */
+               myNotificationFilterAllocationParams.numNotificationObjects,
+               /* number of notifying objects */
+               myNotificationFilterAllocationParams.numNotifyingObjects,
+               /* number of notification class ids */
+               myNotificationFilterAllocationParams.numNotificationClassIds,
+               /* number of probable causes */
+               myNotificationFilterAllocationParams.numProbableCauses,
+               /* number of perceived severities */
+               myNotificationFilterAllocationParams.numPerceivedSeverities,
+               /* number of trend indications */
+               myNotificationFilterAllocationParams.numTrends),
+               SA_AIS_OK);
+
+       myNotificationFilterHandles.alarmFilterHandle =
+               myAlarmFilter.notificationFilterHandle;
+       myAlarmFilter.perceivedSeverities[0] = SA_NTF_SEVERITY_WARNING;
+       myAlarmFilter.perceivedSeverities[1] = SA_NTF_SEVERITY_CLEARED;
+
+       /* Send one alarm notification */
+       safassert(ntftest_saNtfAlarmNotificationAllocate(
+               ntfHandle, /* handle to Notification Service instance */
+               &myNotification,
+               /* number of correlated notifications */
+               myNotificationAllocationParams.numCorrelatedNotifications,
+               /* length of additional text */
+               myNotificationAllocationParams.lengthAdditionalText,
+               /* number of additional info items*/
+               myNotificationAllocationParams.numAdditionalInfo,
+               /* number of specific problems */
+               myNotificationAllocationParams.numSpecificProblems,
+               /* number of monitored attributes */
+               myNotificationAllocationParams.numMonitoredAttributes,
+               /* number of proposed repair actions */
+               myNotificationAllocationParams.numProposedRepairActions,
+               /* use default allocation size */
+               myNotificationAllocationParams.variableDataSize),
+               SA_AIS_OK);
+
+       myNotificationParams.eventType = myNotificationParams.alarmEventType;
+
+       fill_header_part(&myNotification.notificationHeader,
+                        (saNotificationParamsT *)&myNotificationParams,
+                        myNotificationAllocationParams.lengthAdditionalText);
+
+       /* determine perceived severity */
+       *(myNotification.perceivedSeverity) =
+                       myNotificationParams.perceivedSeverity;
+
+       /* set probable cause*/
+       *(myNotification.probableCause) = myNotificationParams.probableCause;
+
+       
safassert(ntftest_saNtfNotificationSend(myNotification.notificationHandle),
+                       SA_AIS_OK);
+
+       /* Read initialize here to get the notification above */
+       safassert(ntftest_saNtfNotificationReadInitialize(searchCriteria,
+               &myNotificationFilterHandles, &readHandle),
+               SA_AIS_OK);
+       // reboot standby, switchover
+       wait_controllers(3);
+       wait_controllers(4);
+       /* read as many matching notifications as exist for the time period
+        between the last received one and now */
+       for (; (errorCode = ntftest_saNtfNotificationReadNext(
+                               readHandle, SA_NTF_SEARCH_YOUNGER,
+                               &returnedNotification)) == SA_AIS_OK;) {
+               safassert(errorCode, SA_AIS_OK);
+               readCounter++;
+
+               if (verbose) {
+                       newNotification(69, &returnedNotification);
+               } else {
+                       free_notif_2(0, &returnedNotification);
+               }
+       }
+       if (verbose) {
+               (void)printf("\n errorcode to break loop: %d\n", 
(int)errorCode);
+       }
+       if (readCounter == 0) {
+               errorCode = SA_AIS_ERR_FAILED_OPERATION;
+       }
+
+       // No more...
+       safassert(ntftest_saNtfNotificationReadFinalize(readHandle), SA_AIS_OK);
+       
safassert(ntftest_saNtfNotificationFilterFree(myAlarmFilter.notificationFilterHandle),
+               SA_AIS_OK);
+       free(myNotificationParams.additionalText);
+       
safassert(ntftest_saNtfNotificationFree(myNotification.notificationHandle),
+                       SA_AIS_OK);
+       safassert(saNtfFinalize(ntfHandle), SA_AIS_OK);
+       test_validate(errorCode, SA_AIS_ERR_NOT_EXIST); /* read all 
notifications!! */
+}
+/**
+ * This test function is to verify the reader Id, read iteration to be
+ * cold sync to standby.
+ * Steps:
+ * - Send alarms
+ * - Call read initialize
+ * - Call read next
+ * - Reboot the standby, the alarms should be cold sync
+ * - switch over to make the standby become active
+ * - Read alarms, reader is successful to read alarms from the new active
+ */
+void test_coldsync_saNtfNotificationReadNext_02(void)
+{
+       saNotificationAllocationParamsT myNotificationAllocationParams;
+       saNotificationFilterAllocationParamsT
+                       myNotificationFilterAllocationParams;
+       saNotificationParamsT myNotificationParams;
+
+       SaNtfSearchCriteriaT searchCriteria;
+       SaNtfAlarmNotificationFilterT myAlarmFilter;
+       SaNtfNotificationTypeFilterHandlesT myNotificationFilterHandles = {
+                       0, 0, 0, 0, 0};
+       SaNtfReadHandleT readHandle;
+       SaNtfHandleT ntfHandle;
+       SaNtfNotificationsT returnedNotification;
+       SaNtfAlarmNotificationT myNotification;
+       searchCriteria.searchMode = SA_NTF_SEARCH_ONLY_FILTER;
+       SaAisErrorT errorCode;
+       SaUint32T readCounter = 0;
+
+       fillInDefaultValues(&myNotificationAllocationParams,
+                                       &myNotificationFilterAllocationParams,
+                                       &myNotificationParams);
+
+       safassert(ntftest_saNtfInitialize(&ntfHandle, &ntfCallbacks, 
&ntfVersion),
+                       SA_AIS_OK);
+
+       safassert(ntftest_saNtfAlarmNotificationFilterAllocate(
+               ntfHandle, /* handle to Notification Service instance */
+               &myAlarmFilter, /* put filter here */
+               /* number of event types */
+               myNotificationFilterAllocationParams.numEventTypes,
+               /* number of notification objects */
+               myNotificationFilterAllocationParams.numNotificationObjects,
+               /* number of notifying objects */
+               myNotificationFilterAllocationParams.numNotifyingObjects,
+               /* number of notification class ids */
+               myNotificationFilterAllocationParams.numNotificationClassIds,
+               /* number of probable causes */
+               myNotificationFilterAllocationParams.numProbableCauses,
+               /* number of perceived severities */
+               myNotificationFilterAllocationParams.numPerceivedSeverities,
+               /* number of trend indications */
+               myNotificationFilterAllocationParams.numTrends),
+               SA_AIS_OK);
+
+       myNotificationFilterHandles.alarmFilterHandle =
+               myAlarmFilter.notificationFilterHandle;
+       myAlarmFilter.perceivedSeverities[0] = SA_NTF_SEVERITY_WARNING;
+       myAlarmFilter.perceivedSeverities[1] = SA_NTF_SEVERITY_CLEARED;
+
+       /* Send one alarm notification */
+       safassert(ntftest_saNtfAlarmNotificationAllocate(
+               ntfHandle, /* handle to Notification Service instance */
+               &myNotification,
+               /* number of correlated notifications */
+               myNotificationAllocationParams.numCorrelatedNotifications,
+               /* length of additional text */
+               myNotificationAllocationParams.lengthAdditionalText,
+               /* number of additional info items*/
+               myNotificationAllocationParams.numAdditionalInfo,
+               /* number of specific problems */
+               myNotificationAllocationParams.numSpecificProblems,
+               /* number of monitored attributes */
+               myNotificationAllocationParams.numMonitoredAttributes,
+               /* number of proposed repair actions */
+               myNotificationAllocationParams.numProposedRepairActions,
+               /* use default allocation size */
+               myNotificationAllocationParams.variableDataSize),
+               SA_AIS_OK);
+
+       myNotificationParams.eventType = myNotificationParams.alarmEventType;
+
+       fill_header_part(&myNotification.notificationHeader,
+                        (saNotificationParamsT *)&myNotificationParams,
+                        myNotificationAllocationParams.lengthAdditionalText);
+
+       /* determine perceived severity */
+       *(myNotification.perceivedSeverity) =
+                       myNotificationParams.perceivedSeverity;
+
+       /* set probable cause*/
+       *(myNotification.probableCause) = myNotificationParams.probableCause;
+
+       
safassert(ntftest_saNtfNotificationSend(myNotification.notificationHandle),
+                       SA_AIS_OK);
+       
safassert(ntftest_saNtfNotificationSend(myNotification.notificationHandle),
+                       SA_AIS_OK);
+
+       /* Read initialize here to get the notification above */
+       safassert(ntftest_saNtfNotificationReadInitialize(searchCriteria,
+               &myNotificationFilterHandles, &readHandle),
+               SA_AIS_OK);
+
+       /* read as many matching notifications as exist for the time period
+        between the last received one and now */
+       for (; (errorCode = ntftest_saNtfNotificationReadNext(
+                               readHandle, SA_NTF_SEARCH_YOUNGER,
+                               &returnedNotification)) == SA_AIS_OK;) {
+               safassert(errorCode, SA_AIS_OK);
+               if (readCounter == 0) {
+                       // reboot standby, switchover
+                       wait_controllers(3);
+                       wait_controllers(4);
+               }
+               readCounter++;
+
+               if (verbose) {
+                       newNotification(69, &returnedNotification);
+               } else {
+                       free_notif_2(0, &returnedNotification);
+               }
+       }
+       if (verbose) {
+               (void)printf("\n errorcode to break loop: %d\n", 
(int)errorCode);
+       }
+       if (readCounter == 0) {
+               errorCode = SA_AIS_ERR_FAILED_OPERATION;
+       }
+
+       // No more...
+       safassert(ntftest_saNtfNotificationReadFinalize(readHandle), SA_AIS_OK);
+       
safassert(ntftest_saNtfNotificationFilterFree(myAlarmFilter.notificationFilterHandle),
+               SA_AIS_OK);
+       free(myNotificationParams.additionalText);
+       
safassert(ntftest_saNtfNotificationFree(myNotification.notificationHandle),
+                       SA_AIS_OK);
+       safassert(saNtfFinalize(ntfHandle), SA_AIS_OK);
+       test_validate(errorCode, SA_AIS_ERR_NOT_EXIST); /* read all 
notifications!! */
+}
+
+/**
+ * This test function is to verify the ReaderInitialize_2 to be checkpointed
+ * to the standby.
+ * Steps:
+ * - Send alarms
+ * - ReadInitialize,
+ * - switch over to make the standby become active
+ * - ReadNext
+ */
+void test_async_saNtfNotificationReadInitialize_01(void)
+{
+       saNotificationAllocationParamsT myNotificationAllocationParams;
+       saNotificationFilterAllocationParamsT
+                       myNotificationFilterAllocationParams;
+       saNotificationParamsT myNotificationParams;
+
+       SaNtfSearchCriteriaT searchCriteria;
+       SaNtfAlarmNotificationFilterT myAlarmFilter;
+       SaNtfNotificationTypeFilterHandlesT myNotificationFilterHandles = {
+                       0, 0, 0, 0, 0};
+       SaNtfReadHandleT readHandle;
+       SaNtfHandleT ntfHandle;
+       SaNtfNotificationsT returnedNotification;
+       SaNtfAlarmNotificationT myNotification;
+       searchCriteria.searchMode = SA_NTF_SEARCH_ONLY_FILTER;
+       SaAisErrorT errorCode;
+       SaUint32T readCounter = 0;
+
+       fillInDefaultValues(&myNotificationAllocationParams,
+                                       &myNotificationFilterAllocationParams,
+                                       &myNotificationParams);
+
+       safassert(ntftest_saNtfInitialize(&ntfHandle,
+               &ntfCallbacks, &ntfVersion), SA_AIS_OK);
+
+       safassert(ntftest_saNtfAlarmNotificationFilterAllocate(
+               ntfHandle, /* handle to Notification Service instance */
+               &myAlarmFilter, /* put filter here */
+               /* number of event types */
+               myNotificationFilterAllocationParams.numEventTypes,
+               /* number of notification objects */
+               myNotificationFilterAllocationParams.numNotificationObjects,
+               /* number of notifying objects */
+               myNotificationFilterAllocationParams.numNotifyingObjects,
+               /* number of notification class ids */
+               myNotificationFilterAllocationParams.numNotificationClassIds,
+               /* number of probable causes */
+               myNotificationFilterAllocationParams.numProbableCauses,
+               /* number of perceived severities */
+               myNotificationFilterAllocationParams.numPerceivedSeverities,
+               /* number of trend indications */
+               myNotificationFilterAllocationParams.numTrends),
+               SA_AIS_OK);
+
+       myNotificationFilterHandles.alarmFilterHandle =
+               myAlarmFilter.notificationFilterHandle;
+       myAlarmFilter.perceivedSeverities[0] = SA_NTF_SEVERITY_WARNING;
+       myAlarmFilter.perceivedSeverities[1] = SA_NTF_SEVERITY_CLEARED;
+
+       /* Send one alarm notification */
+       safassert(ntftest_saNtfAlarmNotificationAllocate(
+               ntfHandle, /* handle to Notification Service instance */
+               &myNotification,
+               /* number of correlated notifications */
+               myNotificationAllocationParams.numCorrelatedNotifications,
+               /* length of additional text */
+               myNotificationAllocationParams.lengthAdditionalText,
+               /* number of additional info items*/
+               myNotificationAllocationParams.numAdditionalInfo,
+               /* number of specific problems */
+               myNotificationAllocationParams.numSpecificProblems,
+               /* number of monitored attributes */
+               myNotificationAllocationParams.numMonitoredAttributes,
+               /* number of proposed repair actions */
+               myNotificationAllocationParams.numProposedRepairActions,
+               /* use default allocation size */
+               myNotificationAllocationParams.variableDataSize),
+               SA_AIS_OK);
+
+       myNotificationParams.eventType = myNotificationParams.alarmEventType;
+
+       fill_header_part(&myNotification.notificationHeader,
+                        (saNotificationParamsT *)&myNotificationParams,
+                        myNotificationAllocationParams.lengthAdditionalText);
+
+       /* determine perceived severity */
+       *(myNotification.perceivedSeverity) =
+                       myNotificationParams.perceivedSeverity;
+
+       /* set probable cause*/
+       *(myNotification.probableCause) = myNotificationParams.probableCause;
+
+       safassert(ntftest_saNtfNotificationSend(
+                       myNotification.notificationHandle),SA_AIS_OK);
+
+       /* Read initialize here to get the notification above */
+       safassert(ntftest_saNtfNotificationReadInitialize(searchCriteria,
+               &myNotificationFilterHandles, &readHandle),
+               SA_AIS_OK);
+       wait_controllers(4);
+       /* read as many matching notifications as exist for the time period
+        between the last received one and now */
+       for (; (errorCode = ntftest_saNtfNotificationReadNext(
+                               readHandle, SA_NTF_SEARCH_YOUNGER,
+                               &returnedNotification)) == SA_AIS_OK;) {
+               safassert(errorCode, SA_AIS_OK);
+               readCounter++;
+
+               if (verbose) {
+                       newNotification(69, &returnedNotification);
+               } else {
+                       free_notif_2(0, &returnedNotification);
+               }
+       }
+       if (verbose) {
+               (void)printf("\n errorcode to break loop: %d\n",
+                       (int)errorCode);
+       }
+       if (readCounter == 0) {
+               errorCode = SA_AIS_ERR_FAILED_OPERATION;
+       }
+
+       // No more...
+       safassert(ntftest_saNtfNotificationReadFinalize(readHandle), SA_AIS_OK);
+       safassert(ntftest_saNtfNotificationFilterFree(
+               myAlarmFilter.notificationFilterHandle), SA_AIS_OK);
+       free(myNotificationParams.additionalText);
+       
safassert(ntftest_saNtfNotificationFree(myNotification.notificationHandle),
+                       SA_AIS_OK);
+       safassert(saNtfFinalize(ntfHandle), SA_AIS_OK);
+       test_validate(errorCode, SA_AIS_ERR_NOT_EXIST);
+}
+/**
+ * This test function is to verify the reader iteration to be checkpointed
+ * to the standby.
+ * Steps:
+ * - Send alarms
+ * - ReadInitialize, ReadNext
+ * - switch over to make the standby become active
+ * - ReadNext
+ */
+void test_async_saNtfNotificationReadNext_01(void)
+{
+       saNotificationAllocationParamsT myNotificationAllocationParams;
+       saNotificationFilterAllocationParamsT
+                       myNotificationFilterAllocationParams;
+       saNotificationParamsT myNotificationParams;
+
+       SaNtfSearchCriteriaT searchCriteria;
+       SaNtfAlarmNotificationFilterT myAlarmFilter;
+       SaNtfNotificationTypeFilterHandlesT myNotificationFilterHandles = {
+                       0, 0, 0, 0, 0};
+       SaNtfReadHandleT readHandle;
+       SaNtfHandleT ntfHandle;
+       SaNtfNotificationsT returnedNotification;
+       SaNtfAlarmNotificationT myNotification;
+       searchCriteria.searchMode = SA_NTF_SEARCH_ONLY_FILTER;
+       SaAisErrorT errorCode;
+       SaUint32T readCounter = 0;
+
+       fillInDefaultValues(&myNotificationAllocationParams,
+                                       &myNotificationFilterAllocationParams,
+                                       &myNotificationParams);
+
+       safassert(ntftest_saNtfInitialize(&ntfHandle,
+               &ntfCallbacks, &ntfVersion), SA_AIS_OK);
+
+       safassert(ntftest_saNtfAlarmNotificationFilterAllocate(
+               ntfHandle, /* handle to Notification Service instance */
+               &myAlarmFilter, /* put filter here */
+               /* number of event types */
+               myNotificationFilterAllocationParams.numEventTypes,
+               /* number of notification objects */
+               myNotificationFilterAllocationParams.numNotificationObjects,
+               /* number of notifying objects */
+               myNotificationFilterAllocationParams.numNotifyingObjects,
+               /* number of notification class ids */
+               myNotificationFilterAllocationParams.numNotificationClassIds,
+               /* number of probable causes */
+               myNotificationFilterAllocationParams.numProbableCauses,
+               /* number of perceived severities */
+               myNotificationFilterAllocationParams.numPerceivedSeverities,
+               /* number of trend indications */
+               myNotificationFilterAllocationParams.numTrends),
+               SA_AIS_OK);
+
+       myNotificationFilterHandles.alarmFilterHandle =
+               myAlarmFilter.notificationFilterHandle;
+       myAlarmFilter.perceivedSeverities[0] = SA_NTF_SEVERITY_WARNING;
+       myAlarmFilter.perceivedSeverities[1] = SA_NTF_SEVERITY_CLEARED;
+
+       /* Send one alarm notification */
+       safassert(ntftest_saNtfAlarmNotificationAllocate(
+               ntfHandle, /* handle to Notification Service instance */
+               &myNotification,
+               /* number of correlated notifications */
+               myNotificationAllocationParams.numCorrelatedNotifications,
+               /* length of additional text */
+               myNotificationAllocationParams.lengthAdditionalText,
+               /* number of additional info items*/
+               myNotificationAllocationParams.numAdditionalInfo,
+               /* number of specific problems */
+               myNotificationAllocationParams.numSpecificProblems,
+               /* number of monitored attributes */
+               myNotificationAllocationParams.numMonitoredAttributes,
+               /* number of proposed repair actions */
+               myNotificationAllocationParams.numProposedRepairActions,
+               /* use default allocation size */
+               myNotificationAllocationParams.variableDataSize),
+               SA_AIS_OK);
+
+       myNotificationParams.eventType = myNotificationParams.alarmEventType;
+
+       fill_header_part(&myNotification.notificationHeader,
+                        (saNotificationParamsT *)&myNotificationParams,
+                        myNotificationAllocationParams.lengthAdditionalText);
+
+       /* determine perceived severity */
+       *(myNotification.perceivedSeverity) =
+                       myNotificationParams.perceivedSeverity;
+
+       /* set probable cause*/
+       *(myNotification.probableCause) = myNotificationParams.probableCause;
+
+       safassert(ntftest_saNtfNotificationSend(
+                       myNotification.notificationHandle),SA_AIS_OK);
+
+       safassert(ntftest_saNtfNotificationSend(
+                       myNotification.notificationHandle),SA_AIS_OK);
+
+       /* Read initialize here to get the notification above */
+       safassert(ntftest_saNtfNotificationReadInitialize(searchCriteria,
+               &myNotificationFilterHandles, &readHandle),
+               SA_AIS_OK);
+       /* read as many matching notifications as exist for the time period
+        between the last received one and now */
+       for (; (errorCode = ntftest_saNtfNotificationReadNext(
+                               readHandle, SA_NTF_SEARCH_YOUNGER,
+                               &returnedNotification)) == SA_AIS_OK;) {
+               safassert(errorCode, SA_AIS_OK);
+               if (readCounter == 0)
+                       wait_controllers(4);
+
+               readCounter++;
+
+               if (verbose) {
+                       newNotification(69, &returnedNotification);
+               } else {
+                       free_notif_2(0, &returnedNotification);
+               }
+       }
+       if (verbose) {
+               (void)printf("\n errorcode to break loop: %d\n",
+                       (int)errorCode);
+       }
+       if (readCounter == 0) {
+               errorCode = SA_AIS_ERR_FAILED_OPERATION;
+       }
+
+       // No more...
+       safassert(ntftest_saNtfNotificationReadFinalize(readHandle), SA_AIS_OK);
+       safassert(ntftest_saNtfNotificationFilterFree(
+               myAlarmFilter.notificationFilterHandle), SA_AIS_OK);
+       free(myNotificationParams.additionalText);
+       
safassert(ntftest_saNtfNotificationFree(myNotification.notificationHandle),
+                       SA_AIS_OK);
+       safassert(saNtfFinalize(ntfHandle), SA_AIS_OK);
+       test_validate(errorCode, SA_AIS_ERR_NOT_EXIST);
+}
+/**
+ * This test function is to verify the reader finalize to be checkpointed
+ * to the standby.
+ * Steps:
+ * - Send alarms
+ * - ReadInitialize, ReadNext, ReadFinalize
+ * - switch over to make the standby become active
+ */
+void test_async_saNtfNotificationReadFinalize_01(void)
+{
+       saNotificationAllocationParamsT myNotificationAllocationParams;
+       saNotificationFilterAllocationParamsT
+                       myNotificationFilterAllocationParams;
+       saNotificationParamsT myNotificationParams;
+
+       SaNtfSearchCriteriaT searchCriteria;
+       SaNtfAlarmNotificationFilterT myAlarmFilter;
+       SaNtfNotificationTypeFilterHandlesT myNotificationFilterHandles = {
+                       0, 0, 0, 0, 0};
+       SaNtfReadHandleT readHandle;
+       SaNtfHandleT ntfHandle;
+       SaNtfNotificationsT returnedNotification;
+       SaNtfAlarmNotificationT myNotification;
+       searchCriteria.searchMode = SA_NTF_SEARCH_ONLY_FILTER;
+       SaAisErrorT errorCode;
+       SaUint32T readCounter = 0;
+
+       fillInDefaultValues(&myNotificationAllocationParams,
+                                       &myNotificationFilterAllocationParams,
+                                       &myNotificationParams);
+
+       safassert(ntftest_saNtfInitialize(&ntfHandle,
+               &ntfCallbacks, &ntfVersion), SA_AIS_OK);
+
+       safassert(ntftest_saNtfAlarmNotificationFilterAllocate(
+               ntfHandle, /* handle to Notification Service instance */
+               &myAlarmFilter, /* put filter here */
+               /* number of event types */
+               myNotificationFilterAllocationParams.numEventTypes,
+               /* number of notification objects */
+               myNotificationFilterAllocationParams.numNotificationObjects,
+               /* number of notifying objects */
+               myNotificationFilterAllocationParams.numNotifyingObjects,
+               /* number of notification class ids */
+               myNotificationFilterAllocationParams.numNotificationClassIds,
+               /* number of probable causes */
+               myNotificationFilterAllocationParams.numProbableCauses,
+               /* number of perceived severities */
+               myNotificationFilterAllocationParams.numPerceivedSeverities,
+               /* number of trend indications */
+               myNotificationFilterAllocationParams.numTrends),
+               SA_AIS_OK);
+
+       myNotificationFilterHandles.alarmFilterHandle =
+               myAlarmFilter.notificationFilterHandle;
+       myAlarmFilter.perceivedSeverities[0] = SA_NTF_SEVERITY_WARNING;
+       myAlarmFilter.perceivedSeverities[1] = SA_NTF_SEVERITY_CLEARED;
+
+       /* Send one alarm notification */
+       safassert(ntftest_saNtfAlarmNotificationAllocate(
+               ntfHandle, /* handle to Notification Service instance */
+               &myNotification,
+               /* number of correlated notifications */
+               myNotificationAllocationParams.numCorrelatedNotifications,
+               /* length of additional text */
+               myNotificationAllocationParams.lengthAdditionalText,
+               /* number of additional info items*/
+               myNotificationAllocationParams.numAdditionalInfo,
+               /* number of specific problems */
+               myNotificationAllocationParams.numSpecificProblems,
+               /* number of monitored attributes */
+               myNotificationAllocationParams.numMonitoredAttributes,
+               /* number of proposed repair actions */
+               myNotificationAllocationParams.numProposedRepairActions,
+               /* use default allocation size */
+               myNotificationAllocationParams.variableDataSize),
+               SA_AIS_OK);
+
+       myNotificationParams.eventType = myNotificationParams.alarmEventType;
+
+       fill_header_part(&myNotification.notificationHeader,
+                        (saNotificationParamsT *)&myNotificationParams,
+                        myNotificationAllocationParams.lengthAdditionalText);
+
+       /* determine perceived severity */
+       *(myNotification.perceivedSeverity) =
+                       myNotificationParams.perceivedSeverity;
+
+       /* set probable cause*/
+       *(myNotification.probableCause) = myNotificationParams.probableCause;
+
+       safassert(ntftest_saNtfNotificationSend(
+                       myNotification.notificationHandle),SA_AIS_OK);
+
+       /* Read initialize here to get the notification above */
+       safassert(ntftest_saNtfNotificationReadInitialize(searchCriteria,
+               &myNotificationFilterHandles, &readHandle),
+               SA_AIS_OK);
+       /* read as many matching notifications as exist for the time period
+        between the last received one and now */
+       for (; (errorCode = ntftest_saNtfNotificationReadNext(
+                               readHandle, SA_NTF_SEARCH_YOUNGER,
+                               &returnedNotification)) == SA_AIS_OK;) {
+               safassert(errorCode, SA_AIS_OK);
+               readCounter++;
+
+               if (verbose) {
+                       newNotification(69, &returnedNotification);
+               } else {
+                       free_notif_2(0, &returnedNotification);
+               }
+       }
+       if (verbose) {
+               (void)printf("\n errorcode to break loop: %d\n",
+                       (int)errorCode);
+       }
+       if (readCounter == 0) {
+               errorCode = SA_AIS_ERR_FAILED_OPERATION;
+       }
+
+       // No more...
+       safassert(ntftest_saNtfNotificationReadFinalize(readHandle), SA_AIS_OK);
+       wait_controllers(4);
+       safassert(ntftest_saNtfNotificationFilterFree(
+               myAlarmFilter.notificationFilterHandle), SA_AIS_OK);
+       free(myNotificationParams.additionalText);
+       
safassert(ntftest_saNtfNotificationFree(myNotification.notificationHandle),
+                       SA_AIS_OK);
+       safassert(saNtfFinalize(ntfHandle), SA_AIS_OK);
+       test_validate(errorCode, SA_AIS_ERR_NOT_EXIST);
+}
 
 void add_coldsync_test(void)
 {
        install_sigusr2();
 
-       test_suite_add(41, "Cold sync - Reader");
+       test_suite_add(41, "Synchronization - Reader");
        test_case_add(41, test_coldsync_saNtfNotificationReadNext_01,
-           "saNtfNotificationReadNext after rebooting standby SC and switch 
over");
+                       "saNtfNotificationReadNext: Test cold sync of cached 
alarm");
+       test_case_add(41, test_coldsync_saNtfNotificationReadInitialize_01,
+                       "saNtfNotificationReadNext: Test cold sync of reader 
Id, reader filter");
+       test_case_add(41, test_coldsync_saNtfNotificationReadNext_02,
+                       "saNtfNotificationReadNext: Test cold sync of current 
reader iteration");
+       test_case_add(41, test_async_saNtfNotificationReadInitialize_01,
+                       "saNtfNotificationReadInitialize: Test reader Id, 
reader filter to be checkpoint");
+       test_case_add(41, test_async_saNtfNotificationReadNext_01,
+                       "saNtfNotificationReadNext:  Test current reader 
iteration to be checkpoint");
+       test_case_add(41, test_async_saNtfNotificationReadFinalize_01,
+                       "saNtfNotificationReadFinalize: Test reader finalize to 
be checkpoint");
+
 }
-- 
2.7.4


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to