From e7e29543ddd6df23faa6e0630e963320eedf4e40 Mon Sep 17 00:00:00 2001
From: madiot <madiot@localhost>
Date: Wed, 27 Jan 2010 09:14:32 +0000
Subject: [PATCH] fix related to code coverage with EMMA - serialize the startDS in the tools function startservers to avoid emma.properties generated file to overwrite each other - skip the kill on OpenDS processes to avoid potential unexpected behaviour with code coverage - generating a new Emma coverage.ec statistics file for each start of any given OpenDS instance

---
 opends/tests/staf-tests/shared/functions/tools.xml |   94 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 69 insertions(+), 25 deletions(-)

diff --git a/opends/tests/staf-tests/shared/functions/tools.xml b/opends/tests/staf-tests/shared/functions/tools.xml
index 7ea7014..870a1e5 100755
--- a/opends/tests/staf-tests/shared/functions/tools.xml
+++ b/opends/tests/staf-tests/shared/functions/tools.xml
@@ -1043,33 +1043,77 @@
       
     <sequence>
       <!-- Start the servers in the list -->    
-      <paralleliterate var="server" in="serverList">
+      <script>
+        # check if using coverage in which case we'll avoid doing parallele iterate
+        coverage = False
+        if os.path.exists(os.path.join(serverList[0].getDir(),OPENDSNAME,'lib','emma.jar')):
+          coverage = True
+        print 'tools.xml - coverage=%s' % coverage
+      </script>
+      <if expr="coverage == True">
         <sequence>
-          <message>
-            'Start DS on host  %s to run on port %s' % (server.getHostname(),server.getPort())
-          </message>
-          
-          <!--- Start DS -->                 
-          <call function="'StartDsWithScript'">
-            { 'location' : server.getHostname(),
-              'dsPath'   : '%s/%s' % (server.getDir(),OPENDSNAME)
-            }
-          </call>
-          
-          <!--- Check that DS started -->
-          <call function="'isAlive'">
-            { 'location'         : server.getHostname(),
-              'dsPath'           : '%s/%s' % (server.getDir(),OPENDSNAME),
-              'dsInstanceHost'   : server.getHostname(), 
-              'dsInstancePort'   : server.getPort(),
-              'dsInstanceDn'     : server.getRootDn(),
-              'dsInstancePswd'   : server.getRootPwd(),
-              'noOfLoops'        : 10 ,
-              'noOfMilliSeconds' : 2000
-            }
-          </call>
+          <message>'starting servers in sequence using "iterate"'</message>
+          <iterate var="server" in="serverList">
+            <sequence>
+              <message>
+                'Start DS on host  %s to run on port %s' % (server.getHostname(),server.getPort())
+              </message>
+              
+              <!--- Start DS -->                 
+              <call function="'StartDsWithScript'">
+                { 'location' : server.getHostname(),
+                  'dsPath'   : '%s/%s' % (server.getDir(),OPENDSNAME)
+                }
+              </call>
+              
+              <!--- Check that DS started -->
+              <call function="'isAlive'">
+                { 'location'         : server.getHostname(),
+                  'dsPath'           : '%s/%s' % (server.getDir(),OPENDSNAME),
+                  'dsInstanceHost'   : server.getHostname(), 
+                  'dsInstancePort'   : server.getPort(),
+                  'dsInstanceDn'     : server.getRootDn(),
+                  'dsInstancePswd'   : server.getRootPwd(),
+                  'noOfLoops'        : 10 ,
+                  'noOfMilliSeconds' : 2000
+                }
+              </call>
+            </sequence>
+          </iterate>
         </sequence>
-      </paralleliterate>
+        <else>
+          <sequence>
+            <message>'starting servers in parallel using "paralleliterate"'</message>
+            <paralleliterate var="server" in="serverList">
+              <sequence>
+                <message>
+                  'Start DS on host  %s to run on port %s' % (server.getHostname(),server.getPort())
+                </message>
+                
+                <!--- Start DS -->                 
+                <call function="'StartDsWithScript'">
+                  { 'location' : server.getHostname(),
+                    'dsPath'   : '%s/%s' % (server.getDir(),OPENDSNAME)
+                  }
+                </call>
+                
+                <!--- Check that DS started -->
+                <call function="'isAlive'">
+                  { 'location'         : server.getHostname(),
+                    'dsPath'           : '%s/%s' % (server.getDir(),OPENDSNAME),
+                    'dsInstanceHost'   : server.getHostname(), 
+                    'dsInstancePort'   : server.getPort(),
+                    'dsInstanceDn'     : server.getRootDn(),
+                    'dsInstancePswd'   : server.getRootPwd(),
+                    'noOfLoops'        : 10 ,
+                    'noOfMilliSeconds' : 2000
+                  }
+                </call>
+              </sequence>
+            </paralleliterate>         
+          </sequence>
+        </else>
+      </if>
     </sequence>
   </function>
   

--
Gitblit v1.10.0