---
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