--- .../apitest/management/test_saImmOmClassCreate_2.c | 129 +++++++++++++++++++++ .../apitest/management/test_saImmOmClassDelete.c | 27 +++++ .../management/test_saImmOmClassDescriptionGet_2.c | 32 +++++ src/imm/apitest/management/test_saImmOmDispatch.c | 122 +++++++++++++++++++ src/imm/apitest/management/test_saImmOmFinalize.c | 26 +++++ .../apitest/management/test_saImmOmInitialize.c | 53 +++++++++ .../management/test_saImmOmSelectionObjectGet.c | 26 +++++ 7 files changed, 415 insertions(+)
diff --git a/src/imm/apitest/management/test_saImmOmClassCreate_2.c b/src/imm/apitest/management/test_saImmOmClassCreate_2.c index 4f25f8b..f43884e 100644 --- a/src/imm/apitest/management/test_saImmOmClassCreate_2.c +++ b/src/imm/apitest/management/test_saImmOmClassCreate_2.c @@ -426,6 +426,110 @@ void saImmOmClassCreate_2_19(void) safassert(immutil_saImmOmFinalize(immOmHandle), SA_AIS_OK); } +/* Object to test: saImmOmClassCreate_2() API: + * Test: Creating a config class with invalid handle + * step1:Call saImmOmInitialize() API and it returns SA_AIS_OK + * step2:Now call the saImmOmClassCreate_2() with -1 + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmClassCreate_2_with_invalid_handle_with_config_class(void) +{ + const SaImmClassNameT className = (SaImmClassNameT) __FUNCTION__; + SaImmAttrDefinitionT_2 attr1 = {"rdn", SA_IMM_ATTR_SANAMET, + SA_IMM_ATTR_CONFIG | SA_IMM_ATTR_RDN, + NULL}; + const SaImmAttrDefinitionT_2 *attrDefinitions[] = {&attr1, NULL}; + + safassert(immutil_saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), + SA_AIS_OK); + rc = immutil_saImmOmClassCreate_2(-1, className, SA_IMM_CLASS_CONFIG, + attrDefinitions); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); + safassert(immutil_saImmOmFinalize(immOmHandle), SA_AIS_OK); +} + +/* Object to test: saImmOmClassCreate_2() API: + * Test: Creating a config class with uninitialized handle + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmClassCreate_2_uninitialized_handle_with_config_class(void) +{ + const SaImmClassNameT className = (SaImmClassNameT) __FUNCTION__; + SaImmAttrDefinitionT_2 attr1 = {"rdn", SA_IMM_ATTR_SANAMET, + SA_IMM_ATTR_CONFIG | SA_IMM_ATTR_RDN, + NULL}; + const SaImmAttrDefinitionT_2 *attrDefinitions[] = {&attr1, NULL}; + + rc = immutil_saImmOmClassCreate_2(immOmHandle, className, SA_IMM_CLASS_CONFIG, + attrDefinitions); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); +} + +/* Object to test: saImmOmClassCreate_2() API: + * Test: Creating a runtime class with uninitialized handle + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmClassCreate_2_with_uninitialized_handle_with_runtime_class(void) +{ + const SaImmClassNameT className = (SaImmClassNameT) __FUNCTION__; + SaImmAttrDefinitionT_2 attr1 = { + "rdn", SA_IMM_ATTR_SANAMET, + SA_IMM_ATTR_RUNTIME | SA_IMM_ATTR_RDN | SA_IMM_ATTR_CACHED, NULL}; + const SaImmAttrDefinitionT_2 *attrDefinitions[] = {&attr1, NULL}; + + rc = immutil_saImmOmClassCreate_2(immOmHandle, className, SA_IMM_CLASS_RUNTIME, + attrDefinitions); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); +} + + +/* Object to test: saImmOmClassCreate_2() API: + * Test: Creating a config class with invalid handle + * step1:Call saImmOmInitialize() API and it returns SA_AIS_OK + * step2:Call saImmOmFinalize() + * step3:Now call the saImmOmClassCreate_2() with immOmHandle + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmClassCreate_2_with_finalized_handle_config_class(void) +{ + const SaImmClassNameT className = (SaImmClassNameT) __FUNCTION__; + SaImmAttrDefinitionT_2 attr1 = {"rdn", SA_IMM_ATTR_SANAMET, + SA_IMM_ATTR_CONFIG | SA_IMM_ATTR_RDN, + NULL}; + const SaImmAttrDefinitionT_2 *attrDefinitions[] = {&attr1, NULL}; + + safassert(immutil_saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), + SA_AIS_OK); + immutil_saImmOmFinalize(immOmHandle); + rc = immutil_saImmOmClassCreate_2(immOmHandle, className, SA_IMM_CLASS_CONFIG, + attrDefinitions); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); +} + + +/* Object to test: saImmOmClassCreate_2() API: + * Test: Creating a runtime class with invalid handle + * step1:Call saImmOmInitialize() API and it returns SA_AIS_OK + * step2:Call saImmOmFinalize() + * step3:Now call the saImmOmClassCreate_2() with immOmHandle + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmClassCreate_2_with_finalized_handle_runtime_class(void) +{ + const SaImmClassNameT className = (SaImmClassNameT) __FUNCTION__; + SaImmAttrDefinitionT_2 attr1 = { + "rdn", SA_IMM_ATTR_SANAMET, + SA_IMM_ATTR_RUNTIME | SA_IMM_ATTR_RDN | SA_IMM_ATTR_CACHED, NULL}; + const SaImmAttrDefinitionT_2 *attrDefinitions[] = {&attr1, NULL}; + + safassert(immutil_saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), + SA_AIS_OK); + immutil_saImmOmFinalize(immOmHandle); + rc = immutil_saImmOmClassCreate_2(immOmHandle, className, SA_IMM_CLASS_RUNTIME, + attrDefinitions); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); +} + /* Verify it is not allowed to create IMM object class with reserved name. NOTE: As the list of reserved class names is read from the environment @@ -1435,6 +1539,7 @@ extern void saImmOmClassDescriptionGet_2_02(void); extern void saImmOmClassDescriptionGet_2_03(void); extern void saImmOmClassDescriptionGet_2_04(void); extern void saImmOmClassDescriptionGet_2_05(void); +extern void saImmOmClassDescriptionGet_2_with_className_as_null(void); extern void saImmOmClassDescriptionMemoryFree_2_01(void); extern void saImmOmClassDescriptionMemoryFree_2_02(void); @@ -1442,6 +1547,7 @@ extern void saImmOmClassDelete_2_01(void); extern void saImmOmClassDelete_2_02(void); extern void saImmOmClassDelete_2_03(void); extern void saImmOmClassDelete_2_04(void); +extern void saImmOmClassDelete_2_with_deleted_class(void); __attribute__((constructor)) static void saImmOmInitialize_constructor(void) { @@ -1497,6 +1603,22 @@ __attribute__((constructor)) static void saImmOmInitialize_constructor(void) test_case_add( 2, saImmOmClassCreate_2_19, "saImmOmClassCreate_2 - SA_AIS_OK, Create a class that has STRONG_DEFAULT flag without having default value"); + test_case_add(2, saImmOmClassCreate_2_with_invalid_handle_with_config_class, + "saImmOmClassCreate_2 - SA_AIS_ERR_BAD_HANDLE, create config" + " class with invalid handle"); + test_case_add(2, saImmOmClassCreate_2_uninitialized_handle_with_config_class, + "saImmOmClassCreate_2 - SA_AIS_ERR_BAD_HANDLE, create config" + " class with uninitialized handle"); + test_case_add(2, saImmOmClassCreate_2_with_uninitialized_handle_with_runtime_class, + "saImmOmClassCreate_2 - SA_AIS_ERR_BAD_HANDLE, create runtime" + " class with uninitialized handle "); + test_case_add(2, saImmOmClassCreate_2_with_finalized_handle_config_class, + "saImmOmClassCreate_2 - SA_AIS_ERR_BAD_HANDLE, create config" + " class with finalized handle"); + test_case_add(2, saImmOmClassCreate_2_with_finalized_handle_runtime_class, + "saImmOmClassCreate_2 - SA_AIS_ERR_BAD_HANDLE, create runtime" + " class with finalized handle"); + test_case_add( 2, saImmOmClassCreate_with_reserved_name_01, "saImmOmClassCreate_2 - SA_AIS_ERR_INVALID_PARAM," @@ -1519,6 +1641,9 @@ __attribute__((constructor)) static void saImmOmInitialize_constructor(void) test_case_add( 2, saImmOmClassDescriptionGet_2_05, "saImmOmClassDescriptionGet_2 - SA_AIS_OK, Fetch includes SA_IMM_ATTR_NO_DANGLING"); + test_case_add(2, saImmOmClassDescriptionGet_2_with_className_as_null, + "saImmOmClassDescriptionGet_2 - SA_AIS_ERR_INVALID_PARAM" + "Get class descriptor of an invalid class name"); test_case_add(2, saImmOmClassDescriptionMemoryFree_2_01, "saImmOmClassDescriptionMemoryFree_2 - SA_AIS_OK"); @@ -1539,6 +1664,10 @@ __attribute__((constructor)) static void saImmOmInitialize_constructor(void) test_case_add( 2, saImmOmClassDelete_2_04, "saImmOmClassDelete_2 - SA_AIS_ERR_INVALID_PARAM, Empty classname"); + test_case_add( + 2, saImmOmClassDelete_2_with_deleted_class, + "saImmOmClassDelete_2 - SA_AIS_ERR_NOT_EXIST " + "Double delete class name"); test_case_add( 2, saImmOmClassCreate_SchemaChange_2_01, diff --git a/src/imm/apitest/management/test_saImmOmClassDelete.c b/src/imm/apitest/management/test_saImmOmClassDelete.c index 273d192..ffcf481 100644 --- a/src/imm/apitest/management/test_saImmOmClassDelete.c +++ b/src/imm/apitest/management/test_saImmOmClassDelete.c @@ -76,3 +76,30 @@ void saImmOmClassDelete_2_04(void) test_validate(rc, SA_AIS_ERR_INVALID_PARAM); safassert(immutil_saImmOmFinalize(immOmHandle), SA_AIS_OK); } + +/* Object to test: saImmOmClassDelete() API: + * Test: deleting the class which is already deleted + * step1:Call saImmOmInitialize() API and it returns SA_AIS_OK + * step2:Call saImmOmClassCreate_2() + * step3:Now call the saImmOmClassDelete() + * step4:Now again call this saImmOmClassDelete() + * Result: Shall fail with return code SA_AIS_ERR_NOT_EXIST + */ +void saImmOmClassDelete_2_with_deleted_class(void) +{ + const SaImmClassNameT className = (SaImmClassNameT) __FUNCTION__; + SaImmAttrDefinitionT_2 attr1 = {"rdn", SA_IMM_ATTR_SANAMET, + SA_IMM_ATTR_CONFIG | SA_IMM_ATTR_RDN, + NULL}; + const SaImmAttrDefinitionT_2 *attrDefinitions[] = {&attr1, NULL}; + + safassert(immutil_saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), + SA_AIS_OK); + safassert(immutil_saImmOmClassCreate_2(immOmHandle, className, + SA_IMM_CLASS_CONFIG, attrDefinitions), + SA_AIS_OK); + immutil_saImmOmClassDelete(immOmHandle, className); + rc = immutil_saImmOmClassDelete(immOmHandle, className); + test_validate(rc, SA_AIS_ERR_NOT_EXIST); + safassert(immutil_saImmOmFinalize(immOmHandle), SA_AIS_OK); +} diff --git a/src/imm/apitest/management/test_saImmOmClassDescriptionGet_2.c b/src/imm/apitest/management/test_saImmOmClassDescriptionGet_2.c index ecf7ceb..1d4e8eb 100644 --- a/src/imm/apitest/management/test_saImmOmClassDescriptionGet_2.c +++ b/src/imm/apitest/management/test_saImmOmClassDescriptionGet_2.c @@ -175,3 +175,35 @@ void saImmOmClassDescriptionGet_2_05(void) safassert(immutil_saImmOmClassDelete(immOmHandle, className), SA_AIS_OK); safassert(immutil_saImmOmFinalize(immOmHandle), SA_AIS_OK); } + +/* Object to test: saImmOmClassDescriptionGet_2() API: + * Test: Getting the class description with invalid params + * step1:Call saImmOmInitialize() API and it returns SA_AIS_OK + * step2:Call saImmOmClassCreate_2() + * step3:Now call the saImmOmClassDescriptionGet_2() with class name as null + * Result: Shall fail with return code SA_AIS_ERR_INVALID_PARAM + */ +void saImmOmClassDescriptionGet_2_with_className_as_null(void) +{ + const SaImmClassNameT className = (SaImmClassNameT) __FUNCTION__; + SaImmAttrDefinitionT_2 attr1 = { + "rdn", SA_IMM_ATTR_SANAMET, + SA_IMM_ATTR_RUNTIME | SA_IMM_ATTR_RDN | SA_IMM_ATTR_CACHED, NULL}; + const SaImmAttrDefinitionT_2 *attrDefinitionsIn[] = {&attr1, NULL}; + SaImmClassCategoryT classCategory; + SaImmAttrDefinitionT_2 **attrDefinitionsOut; + + safassert(immutil_saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), + SA_AIS_OK); + safassert(immutil_saImmOmClassCreate_2(immOmHandle, className, + SA_IMM_CLASS_RUNTIME, attrDefinitionsIn), + SA_AIS_OK); + rc = immutil_saImmOmClassDescriptionGet_2(immOmHandle, NULL, + &classCategory, &attrDefinitionsOut); + test_validate(rc, SA_AIS_ERR_INVALID_PARAM); + safassert(immutil_saImmOmClassDescriptionMemoryFree_2(immOmHandle, + attrDefinitionsOut), + SA_AIS_OK); + safassert(immutil_saImmOmClassDelete(immOmHandle, className), SA_AIS_OK); + safassert(immutil_saImmOmFinalize(immOmHandle), SA_AIS_OK); +} diff --git a/src/imm/apitest/management/test_saImmOmDispatch.c b/src/imm/apitest/management/test_saImmOmDispatch.c index 3648a95..c5c411c 100644 --- a/src/imm/apitest/management/test_saImmOmDispatch.c +++ b/src/imm/apitest/management/test_saImmOmDispatch.c @@ -52,3 +52,125 @@ void saImmOmDispatch_04(void) test_validate(rc, SA_AIS_ERR_INVALID_PARAM); safassert(immutil_saImmOmFinalize(immOmHandle), SA_AIS_OK); } + +/* Object to test: saImmOmDispatch() API: + * Test:Dispatching with uninitialized handle and SA_DISPATCH_ONE + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmDispatch_with_uninitialized_handle_with_SA_DISPATCH_ONE(void) +{ + rc = saImmOmDispatch(immOmHandle, SA_DISPATCH_ONE); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); +} + +/* Object to test: saImmOmDispatch() API: + * Test: Dispatching with finalized handle and SA_DISPATCH_ONE + * step1:Call saImmOmInitialize() API and it returns SA_AIS_OK + * step2:call saImmOmFinalize() + * step3:Now call the saImmOmDispatch() with immOmHandle + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmDispatch_with_finalized_handle_with_SA_DISPATCH_ONE(void) +{ + safassert(immutil_saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), + SA_AIS_OK); + immutil_saImmOmFinalize(immOmHandle); + rc = saImmOmDispatch(immOmHandle, SA_DISPATCH_ONE); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); +} + +/* Object to test: saImmOmDispatch() API: + * Test:Dispatching with initialized handle and SA_DISPATCH_BLOCKING + * Result: Shall pass with return code SA_AIS_OK + */ +void saImmOmDispatch_with_SA_DISPATCH_BLOCKING(void) +{ + safassert(immutil_saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), + SA_AIS_OK); + rc = saImmOmDispatch(immOmHandle, SA_DISPATCH_BLOCKING); + test_validate(rc, SA_AIS_OK); + safassert(immutil_saImmOmFinalize(immOmHandle), SA_AIS_OK); +} + +/* Object to test: saImmOmDispatch() API: + * Test: Dispatching with invalid handle and SA_DISPATCH_ALL + * step1:Call saImmOmInitialize() API and it returns SA_AIS_OK + * step2:Now call the saImmOmDispatch() with -1 + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmDispatch_with_invalid_handle_with_SA_DISPATCH_ALL(void) +{ + safassert(immutil_saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), + SA_AIS_OK); + rc = saImmOmDispatch(-1, SA_DISPATCH_ALL); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); + safassert(immutil_saImmOmFinalize(immOmHandle), SA_AIS_OK); +} + +/* Object to test: saImmOmDispatch() API: + * Test:Dispatching with uninitialized handle and SA_DISPATCH_ALL + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmDispatch_with_uninitialized_handle_with_SA_DISPATCH_ALL(void) +{ + rc = saImmOmDispatch(immOmHandle, SA_DISPATCH_ALL); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); +} + +/* Object to test: saImmOmDispatch() API: + * Test: Dispatching with finalized handle and SA_DISPATCH_ALL + * step1:Call saImmOmInitialize() API and it returns SA_AIS_OK + * step2:call saImmOmFinalize() + * step3:Now call the saImmOmDispatch() with immOmHandle + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ + +void saImmOmDispatch_with_finalized_handle_with_SA_DISPATCH_ALL(void) +{ + safassert(immutil_saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), + SA_AIS_OK); + immutil_saImmOmFinalize(immOmHandle); + rc = saImmOmDispatch(immOmHandle, SA_DISPATCH_ALL); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); +} + +/* Object to test: saImmOmDispatch() API: + * Test: Dispatching with invalid handle and SA_DISPATCH_BLOCKING + * step1:Call saImmOmInitialize() API and it returns SA_AIS_OK + * step2:Now call the saImmOmDispatch() with -1 + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmDispatch_with_invalid_handle_with_SA_DISPATCH_BLOCKING(void) +{ + safassert(immutil_saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), + SA_AIS_OK); + rc = saImmOmDispatch(-1, SA_DISPATCH_BLOCKING); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); + safassert(immutil_saImmOmFinalize(immOmHandle), SA_AIS_OK); +} + +/* Object to test: saImmOmDispatch() API: + * Test:Dispatching with uninitialized handle and SA_DISPATCH_BLOCKING + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmDispatch_with_uninitialized_handle_with_SA_DISPATCH_BLOCKING(void) +{ + rc = saImmOmDispatch(immOmHandle, SA_DISPATCH_BLOCKING); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); +} + +/* Object to test: saImmOmDispatch() API: + * Test: Dispatching with finalized handle and SA_DISPATCH_BLOCKING + * step1:Call saImmOmInitialize() API and it returns SA_AIS_OK + * step2:call saImmOmFinalize() + * step3:Now call the saImmOmDispatch() with immOmHandle + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmDispatch_with_finalized_handle_with_SA_DISPATCH_BLOCKING(void) +{ + safassert(immutil_saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), + SA_AIS_OK); + immutil_saImmOmFinalize(immOmHandle); + rc = saImmOmDispatch(immOmHandle, SA_DISPATCH_BLOCKING); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); +} diff --git a/src/imm/apitest/management/test_saImmOmFinalize.c b/src/imm/apitest/management/test_saImmOmFinalize.c index 1c60657..421d64d 100644 --- a/src/imm/apitest/management/test_saImmOmFinalize.c +++ b/src/imm/apitest/management/test_saImmOmFinalize.c @@ -33,3 +33,29 @@ void saImmOmFinalize_02(void) test_validate(rc, SA_AIS_ERR_BAD_HANDLE); safassert(immutil_saImmOmFinalize(immOmHandle), SA_AIS_OK); } + +/* Object to test: saImmOmFinalize() API: + * Test: Finalizing with finalized handle + * step1:Call saImmOmInitialize() API and it returns SA_AIS_OK + * step2:call saImmOmFinalize() + * step3:call saImmOmFinalize() with immOmHandle handle + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmFinalize_with_finalized_handle(void) +{ + safassert(immutil_saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), + SA_AIS_OK); + rc = immutil_saImmOmFinalize(immOmHandle); + rc = immutil_saImmOmFinalize(immOmHandle); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); +} + +/* Object to test: saImmOmFinalize() API: + * Test: Finalizing with uninitialized handle + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmFinalize_with_uninitialized_handle(void) +{ + rc = immutil_saImmOmFinalize(immOmHandle); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); +} diff --git a/src/imm/apitest/management/test_saImmOmInitialize.c b/src/imm/apitest/management/test_saImmOmInitialize.c index 9dcfe7a..e97da1d 100644 --- a/src/imm/apitest/management/test_saImmOmInitialize.c +++ b/src/imm/apitest/management/test_saImmOmInitialize.c @@ -303,12 +303,25 @@ void saImmOmInitialize_11(void) extern void saImmOmSelectionObjectGet_01(void); extern void saImmOmSelectionObjectGet_02(void); +extern void saImmOmSelectionObjectGet_with_uninitialized_handle(void); +extern void saImmOmSelectionObjectGet_with_finalized_handle(void); extern void saImmOmDispatch_01(void); extern void saImmOmDispatch_02(void); extern void saImmOmDispatch_03(void); extern void saImmOmDispatch_04(void); +extern void saImmOmDispatch_with_uninitialized_handle_with_SA_DISPATCH_ONE(void); +extern void saImmOmDispatch_with_finalized_handle_with_SA_DISPATCH_ONE(void); +extern void saImmOmDispatch_with_SA_DISPATCH_BLOCKING(void); +extern void saImmOmDispatch_with_invalid_handle_with_SA_DISPATCH_ALL(void); +extern void saImmOmDispatch_with_uninitialized_handle_with_SA_DISPATCH_ALL(void); +extern void saImmOmDispatch_with_finalized_handle_with_SA_DISPATCH_ALL(void); +extern void saImmOmDispatch_with_invalid_handle_with_SA_DISPATCH_BLOCKING(void); +extern void saImmOmDispatch_with_uninitialized_handle_with_SA_DISPATCH_BLOCKING(void); +extern void saImmOmDispatch_with_finalized_handle_with_SA_DISPATCH_BLOCKING(void); extern void saImmOmFinalize_01(void); extern void saImmOmFinalize_02(void); +extern void saImmOmFinalize_with_finalized_handle(void); +extern void saImmOmFinalize_with_uninitialized_handle(void); extern void saImmOmThreadInterference_01(void); __attribute__((constructor)) static void saImmOmInitialize_constructor(void) @@ -350,6 +363,14 @@ __attribute__((constructor)) static void saImmOmInitialize_constructor(void) test_case_add( 1, saImmOmSelectionObjectGet_02, "saImmOmSelectionObjectGet - SA_AIS_ERR_BAD_HANDLE - invalid handle"); + test_case_add( + 1, saImmOmSelectionObjectGet_with_uninitialized_handle, + "saImmOmSelectionObjectGet - SA_AIS_ERR_BAD_HANDLE " + "- uninitialized handle"); + test_case_add( + 1, saImmOmSelectionObjectGet_with_finalized_handle, + "saImmOmSelectionObjectGet - SA_AIS_ERR_BAD_HANDLE " + "- finalized handle"); test_case_add(1, saImmOmDispatch_01, "saImmOmDispatch - SA_AIS_OK SA_DISPATCH_ALL"); @@ -361,11 +382,43 @@ __attribute__((constructor)) static void saImmOmInitialize_constructor(void) test_case_add( 1, saImmOmDispatch_04, "saImmOmDispatch - SA_AIS_ERR_INVALID_PARAM - invalid dispatchFlags"); + test_case_add( + 1, saImmOmDispatch_with_uninitialized_handle_with_SA_DISPATCH_ONE, + "saImmOmDispatch - SA_AIS_ERR_BAD_HANDLE - uninitialized handle SA_DISPATCH_ONE"); + test_case_add( + 1, saImmOmDispatch_with_finalized_handle_with_SA_DISPATCH_ONE, + "saImmOmDispatch - SA_AIS_ERR_BAD_HANDLE - finalized handle SA_DISPATCH_ONE"); + test_case_add(1, saImmOmDispatch_with_SA_DISPATCH_BLOCKING, + "saImmOmDispatch - SA_AIS_OK SA_DISPATCH_BLOCKING"); + test_case_add( + 1, saImmOmDispatch_with_invalid_handle_with_SA_DISPATCH_ALL, + "saImmOmDispatch - SA_AIS_ERR_BAD_HANDLE - invalid handle SA_DISPATCH_ALL"); + test_case_add( + 1, saImmOmDispatch_with_uninitialized_handle_with_SA_DISPATCH_ALL, + "saImmOmDispatch - SA_AIS_ERR_BAD_HANDLE - uninitialized handle SA_DISPATCH_ALL"); + test_case_add( + 1, saImmOmDispatch_with_finalized_handle_with_SA_DISPATCH_ALL, + "saImmOmDispatch - SA_AIS_ERR_BAD_HANDLE - finalized handle SA_DISPATCH_ALL"); + test_case_add( + 1, saImmOmDispatch_with_invalid_handle_with_SA_DISPATCH_BLOCKING, + "saImmOmDispatch - SA_AIS_ERR_BAD_HANDLE - invalid handle SA_DISPATCH_BLOCKING"); + test_case_add( + 1, saImmOmDispatch_with_uninitialized_handle_with_SA_DISPATCH_BLOCKING, + "saImmOmDispatch - SA_AIS_ERR_BAD_HANDLE - uninitialized handle SA_DISPATCH_BLOCKING"); + test_case_add( + 1, saImmOmDispatch_with_finalized_handle_with_SA_DISPATCH_BLOCKING, + "saImmOmDispatch - SA_AIS_ERR_BAD_HANDLE - finalized handle SA_DISPATCH_BLOCKING"); test_case_add(1, saImmOmFinalize_01, "saImmOmFinalize - SA_AIS_OK"); test_case_add( 1, saImmOmFinalize_02, "saImmOmFinalize - SA_AIS_ERR_BAD_HANDLE - invalid handle"); + test_case_add( + 1, saImmOmFinalize_with_finalized_handle, + "saImmOmFinalize - SA_AIS_ERR_BAD_HANDLE - finalized handle"); + test_case_add( + 1, saImmOmFinalize_with_uninitialized_handle, + "saImmOmFinalize - SA_AIS_ERR_BAD_HANDLE - uninitialized handle"); test_case_add( 1, saImmOmThreadInterference_01, diff --git a/src/imm/apitest/management/test_saImmOmSelectionObjectGet.c b/src/imm/apitest/management/test_saImmOmSelectionObjectGet.c index 017fd70..3a56fd3 100644 --- a/src/imm/apitest/management/test_saImmOmSelectionObjectGet.c +++ b/src/imm/apitest/management/test_saImmOmSelectionObjectGet.c @@ -35,3 +35,29 @@ void saImmOmSelectionObjectGet_02(void) test_validate(rc, SA_AIS_ERR_BAD_HANDLE); safassert(immutil_saImmOmFinalize(immOmHandle), SA_AIS_OK); } + +/* Object to test: saImmOmSelectionObjectGet() API: + * Test: Getting the selectionObject with uninitialized handle + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmSelectionObjectGet_with_uninitialized_handle(void) +{ + rc = immutil_saImmOmSelectionObjectGet(immOmHandle, &selectionObject); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); +} + +/* Object to test: saImmOmSelectionObjectGet() API: + * Test: Getting the SelectionObject with finalized handle + * step1:Call saImmOmInitialize() API and it returns SA_AIS_OK + * step2:call saImmOmFinalize() + * step3:Now call the saImmOmSelectionObjectGet() with immOmHandle + * Result: Shall fail with return code SA_AIS_ERR_BAD_HANDLE + */ +void saImmOmSelectionObjectGet_with_finalized_handle(void) +{ + safassert(immutil_saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), + SA_AIS_OK); + immutil_saImmOmFinalize(immOmHandle); + rc = immutil_saImmOmSelectionObjectGet(immOmHandle, &selectionObject); + test_validate(rc, SA_AIS_ERR_BAD_HANDLE); +} -- 2.7.4 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel