From 789d74ea81cd4be6a18af942a0c4c71aef4c19a0 Mon Sep 17 00:00:00 2001
From: madiot <madiot@localhost>
Date: Mon, 17 Aug 2009 07:08:38 +0000
Subject: [PATCH] reintroduction of the code coverage leveraging EMMA

---
 opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml |   54 ++++++++++++++++++++++++------------------------------
 1 files changed, 24 insertions(+), 30 deletions(-)

diff --git a/opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml b/opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml
index ef184a9..86496e9 100755
--- a/opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml
+++ b/opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml
@@ -1151,28 +1151,7 @@
           CurrentTestPath['group']='unknown-group'
         
         ThisGroupName=CurrentTestPath['group']
-        
-        # NOTE: the same code lives in topology.xml
-        #       the reason for that is that the topology is created AFTER the
-        #       first test group has started (as part of the first setup)
-        #       the following groups are going to use the same topology
-        mylog="::coverage - checking for %s/%s/lib/emma.jar\n" % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)
-        if os.path.exists('%s/%s/lib/emma.jar' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)):
-          mylog+="  ::coverage on\n"
-          if not os.path.exists('%s/coverage' % TMPDIR):
-            os.mkdir('%s/coverage' % TMPDIR)
-            mylog+="    ::mkdir %s/coverage on\n" % TMPDIR
-          if not os.path.exists('%s/coverage/%s' % (TMPDIR,CurrentTestPath['group'])):
-            os.mkdir('%s/coverage/%s' % (TMPDIR,CurrentTestPath['group']))
-            mylog+="    ::mkdir %s/coverage/%s on\n" % (TMPDIR,CurrentTestPath['group'])
-          mylog+="  ::writing to %s/%s/classes/emma.properties" % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)
-          coveragefh = open( '%s/%s/classes/emma.properties' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME), 'w' )
-          coveragefh.write( 'coverage.out.file=%s/coverage/%s/coverage.ec\n' % (TMPDIR,CurrentTestPath['group']) )
-          coveragefh.close()
       </script>
-      <message>
-        mylog
-      </message>
       <message>'##### %s group preamble #####' % ThisGroupName</message>
     </sequence>
   </function>
@@ -1196,20 +1175,35 @@
       <message>'##### %s group postamble #####' % ThisGroupName</message>
 
       <script>
+        coveragePath=os.path.join(LOGS_ROOT,'coverage')
         emmaJar='%s/%s/lib/emma.jar' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)
-        coverageEm='%s/%s/coverage.em' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)
-        coverageEc='%s/coverage/%s/coverage.ec' % (TMPDIR,CurrentTestPath['group'])
-        coverageXml='%s/coverage/%s/coverage.xml' % (TMPDIR,CurrentTestPath['group'])
-        coverageHtml='%s/coverage/%s/coverage.html' % (TMPDIR,CurrentTestPath['group'])
+        coverageEm=os.path.join(coveragePath,'coverage.em')
+        ecPath=os.path.join(coveragePath,CurrentTestPath['group'])
+        coverageEcs=[ os.path.join(ecPath,ec) for ec in os.listdir(ecPath) if ec.startswith('coverage') and ec.endswith('.ec')]
+        coverageFiles=','.join(coverageEcs)
+        coverageXml=os.path.join(ecPath,'coverage.xml')
+        coverageHtml=os.path.join(ecPath,'coverage.html')
       </script>
-            
       <if expr="os.path.exists(emmaJar)">
         <sequence>
+          <script>
+            srcPathPrefix = os.path.join(TMPDIR,"..","..","..","..","..","..","src")
+            srcPaths = [ os.path.join(srcPathPrefix,"server"),
+                         os.path.join(srcPathPrefix,"ads"),
+                         os.path.join(srcPathPrefix,"server","org"),
+                         os.path.join(srcPathPrefix,"admin","defn","org"),
+                         os.path.join(srcPathPrefix,"snmp","src","org"),
+                         os.path.join(srcPathPrefix,"ads","org"),
+                         os.path.join(srcPathPrefix,"dsml","org"),
+                         os.path.join(srcPathPrefix,"messages","src","org")
+                       ]
+            srcArgs = " -sp ".join(srcPaths)
+          </script>
           <call function="'runCommand'">
-            { 'name'      : 'Generate coverage xml report for test group %s' % CurrentTestPath['group'],
-              'command'   : 'java',
-              'arguments' : ' -Xms64M -Xmx512M -cp %s emma report -r xml,html -in %s,%s -Dreport.xml.out.file=%s -Dreport.html.out.file=%s -sp %s/../../../src' % (emmaJar,coverageEm,coverageEc,coverageXml,coverageHtml,TMPDIR),
-              'path'      : TMPDIR
+            { 'name' : 'Generate coverage xml report for test group %s' % CurrentTestPath['group'],
+              'command' : 'java',
+              'arguments' : ' -Xms64M -Xmx1G -cp %s emma report -r html -in %s,%s -Dreport.html.out.file=%s -sp %s' % (emmaJar, coverageEm, coverageFiles, coverageHtml, srcArgs),
+              'path' : TMPDIR
             }
           </call>
           <script>

--
Gitblit v1.10.0