tests/immsv/common/immtest.c                                |   4 ++++
 tests/immsv/implementer/test_SaImmOiRtAttrUpdateCallbackT.c |   2 +-
 tests/immsv/implementer/test_cleanup.c                      |   2 +-
 tests/immsv/management/test_cleanup.c                       |   2 +-
 tests/immsv/management/test_saImmOmAdminOwnerFinalize.c     |   1 +
 tests/immsv/management/test_saImmOmInitialize.c             |   1 +
 tests/immsv/management/test_saImmOmSearchInitialize_2.c     |   2 +-
 tests/immsv/management/test_saImmOmThreadInterference.c     |  10 +++++++---
 8 files changed, 17 insertions(+), 7 deletions(-)


diff --git a/tests/immsv/common/immtest.c b/tests/immsv/common/immtest.c
--- a/tests/immsv/common/immtest.c
+++ b/tests/immsv/common/immtest.c
@@ -18,6 +18,7 @@
 #include <stdlib.h>
 #include <sys/time.h>
 #include <unistd.h>
+#include <pthread.h>
 #include "immtest.h"
 
 const SaVersionT constImmVersion = {'A', 0x02, 0x0c}; 
@@ -68,6 +69,9 @@ int main(int argc, char **argv)
     if(test_cleanup)
         test_cleanup();
 
+    /* Added pthread_exit() to remove dlopen@@GLIBC leak from valgrind */
+    pthread_exit(NULL);
+
     return rc;
 }  
 
diff --git a/tests/immsv/implementer/test_SaImmOiRtAttrUpdateCallbackT.c 
b/tests/immsv/implementer/test_SaImmOiRtAttrUpdateCallbackT.c
--- a/tests/immsv/implementer/test_SaImmOiRtAttrUpdateCallbackT.c
+++ b/tests/immsv/implementer/test_SaImmOiRtAttrUpdateCallbackT.c
@@ -138,9 +138,9 @@ static void *test_saImmOmAccessorGet_2(v
     safassert(saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), 
SA_AIS_OK);
     safassert(saImmOmAccessorInitialize(immOmHandle, &accessorHandle), 
SA_AIS_OK);
     safassert(saImmOmAccessorGet_2(accessorHandle, dn, attributeNames, 
&attributes), SA_AIS_OK);
-    safassert(saImmOmFinalize(immOmHandle), SA_AIS_OK);
     assert(attributes[0]->attrValueType == SA_IMM_ATTR_SAINT32T);
     assert(*((SaInt32T*) attributes[0]->attrValues[0]) == int1Value);
+    safassert(saImmOmFinalize(immOmHandle), SA_AIS_OK);
 
     TRACE_LEAVE();
     return NULL;
diff --git a/tests/immsv/implementer/test_cleanup.c 
b/tests/immsv/implementer/test_cleanup.c
--- a/tests/immsv/implementer/test_cleanup.c
+++ b/tests/immsv/implementer/test_cleanup.c
@@ -64,7 +64,7 @@ static void cleanup() {
 
        /* Delete objects */
        int len;
-       SaNameT objectName;
+       SaNameT objectName = {0};
        SaNameT *objectNames[2] = { &objectName, NULL };
        obj = objects;
        while(*obj) {
diff --git a/tests/immsv/management/test_cleanup.c 
b/tests/immsv/management/test_cleanup.c
--- a/tests/immsv/management/test_cleanup.c
+++ b/tests/immsv/management/test_cleanup.c
@@ -70,7 +70,7 @@ static void cleanup() {
 
        /* Delete objects */
        int len;
-       SaNameT objectName;
+       SaNameT objectName = {0};
        SaNameT *objectNames[2] = { &objectName, NULL };
        obj = objects;
        while(*obj) {
diff --git a/tests/immsv/management/test_saImmOmAdminOwnerFinalize.c 
b/tests/immsv/management/test_saImmOmAdminOwnerFinalize.c
--- a/tests/immsv/management/test_saImmOmAdminOwnerFinalize.c
+++ b/tests/immsv/management/test_saImmOmAdminOwnerFinalize.c
@@ -74,4 +74,5 @@ void saImmOmAdminOwnerFinalize_03(void)
 
     /* Cleanup */ 
     safassert(saImmOmAdminOwnerFinalize(rudeGuyHandle), SA_AIS_OK);
+    safassert(saImmOmFinalize(immOmHandle), SA_AIS_OK);
 }
diff --git a/tests/immsv/management/test_saImmOmInitialize.c 
b/tests/immsv/management/test_saImmOmInitialize.c
--- a/tests/immsv/management/test_saImmOmInitialize.c
+++ b/tests/immsv/management/test_saImmOmInitialize.c
@@ -243,6 +243,7 @@ void saImmOmInitialize_10(void)
 
     test_validate(rc, SA_AIS_OK);
 
+    safassert(saImmOmFinalize(immOmHandle), SA_AIS_OK);
 }
 
 void saImmOmInitialize_11(void)
diff --git a/tests/immsv/management/test_saImmOmSearchInitialize_2.c 
b/tests/immsv/management/test_saImmOmSearchInitialize_2.c
--- a/tests/immsv/management/test_saImmOmSearchInitialize_2.c
+++ b/tests/immsv/management/test_saImmOmSearchInitialize_2.c
@@ -54,7 +54,7 @@ void saImmOmSearchInitialize_2_03(void)
 
 void saImmOmSearchInitialize_2_04(void)
 {
-    SaImmSearchHandleT searchHandle;
+    SaImmSearchHandleT searchHandle = 0;
 
     safassert(saImmOmInitialize(&immOmHandle, &immOmCallbacks, &immVersion), 
SA_AIS_OK);
     rc = saImmOmSearchInitialize_2(immOmHandle, NULL, SA_IMM_ONE,
diff --git a/tests/immsv/management/test_saImmOmThreadInterference.c 
b/tests/immsv/management/test_saImmOmThreadInterference.c
--- a/tests/immsv/management/test_saImmOmThreadInterference.c
+++ b/tests/immsv/management/test_saImmOmThreadInterference.c
@@ -88,7 +88,7 @@ void saImmOmThreadInterference_01(void) 
        SaImmAdminOwnerHandleT ownerHandle;
        SaImmSearchHandleT searchHandle;
        SaImmCcbHandleT ccbHandle;
-       pthread_t threadid;
+       pthread_t threadid1, threadid2;
        SaAisErrorT rc;
        SaImmAttrDefinitionT_2 attrDef = { "rdn", SA_IMM_ATTR_SASTRINGT, 
SA_IMM_ATTR_RDN | SA_IMM_ATTR_CONFIG, NULL };
        const SaImmAttrDefinitionT_2 *attrDefs[2] = { &attrDef, NULL };
@@ -123,7 +123,7 @@ void saImmOmThreadInterference_01(void) 
        safassert(saImmOiInitialize_2(&immOiHandle, &immOiCallbacks, 
&immVersion), SA_AIS_OK);
        safassert(saImmOiImplementerSet(immOiHandle, implementerName), 
SA_AIS_OK);
        safassert(saImmOiObjectImplementerSet(immOiHandle, &objectName, 
SA_IMM_ONE), SA_AIS_OK);
-       assert(!pthread_create(&threadid, NULL, implementer_thread, 
&immOiHandle));
+       assert(!pthread_create(&threadid1, NULL, implementer_thread, 
&immOiHandle));
 
        while(!isReady)
                usleep(100);
@@ -132,7 +132,7 @@ void saImmOmThreadInterference_01(void) 
        isReady = 0;
        isOmDone = 0;
        isAdminOperDone = 0;
-       assert(!pthread_create(&threadid, NULL, lockomhandle_thread, 
&ownerHandle));
+       assert(!pthread_create(&threadid2, NULL, lockomhandle_thread, 
&ownerHandle));
 
        while(!isReady)
                usleep(100);
@@ -166,6 +166,10 @@ done:
        safassert(saImmOiImplementerClear(immOiHandle), SA_AIS_OK);
        safassert(saImmOiFinalize(immOiHandle), SA_AIS_OK);
 
+       /* Use pthread_detach() to remove pthread_create@@GLIBC leak from 
valgrind */
+       pthread_detach(threadid1);
+       pthread_detach(threadid2);
+
        while(!isOiDone)
                usleep(200);
 

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. Consolidate legacy IT systems to a single system of record for IT
2. Standardize and globalize service processes across IT
3. Implement zero-touch automation to replace manual, redundant tasks
http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to