mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

ludovicp
28.52.2010 2ef009229c3b6aff5c044680e398703007490735
Fix tests and remove obsolete ones.
5 files deleted
12 files modified
2435 ■■■■ changed files
opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_setup.xml 61 ●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/ant/tests.xml 98 ●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/functions/topology.xml 68 ●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/functions/utils.xml 65 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/functions/webcontainer.xml 26 ●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/staf/staf-controller.cfg 2 ●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/tests/runTestJob.xml 107 ●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/tests/runTests.xml 71 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/xsl/functestspec-stylesheet.xml 317 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/xsl/functestspec-stylesheet_security.xml 329 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/xsl/gen-alltests-report.xsl 489 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/xsl/gen-groups-report.xsl 16 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/xsl/gen-suites-report.xsl 16 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/xsl/gen-tests-report.xsl 16 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/xsl/gen-text-summary.xsl 93 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/xsl/id.xsl 18 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/xsl/my-report.xsl 643 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_setup.xml
@@ -49,17 +49,17 @@
              <call function="'createFolder'">
                {
                'location'   : STAXServiceMachine,
                'foldername' : '%s/dsml/STAF-INF/jars' % TMPDIR
                'foldername' : '%s/dsml/STAF-INF/jars' % local.temp
                }
              </call>
              <!--- In IPS mode, get snmp-mib2605.jar from remote machine-->
              <!--- In IPS mode, get OpenDS.jar from remote machine-->
              <if expr="IPS_PKG == True">
                <call function="'copyFile'">
                  {
                  'location'   : STAF_REMOTE_HOSTNAME,
                  'srcfile'    : '%s/%s/lib/OpenDS.jar' % (DIRECTORY_INSTANCE_BIN,OPENDSNAME),
                  'destfile'   : '%s/dsml/STAF-INF/jars/OpenDS.jar' % TMPDIR,
                  'destfile'   : '%s/dsml/STAF-INF/jars/OpenDS.jar' % local.temp,
                  'remotehost' : STAXServiceMachine
                  }
                </call>
@@ -70,15 +70,29 @@
                      'location' : STAXServiceMachine,
                      'zipfile'  : '%s/%s' % (ZIPPATH, ZIPNAME),
                      'file'     : '%s/lib/OpenDS.jar' % OPENDSNAME,
                      'unzipdir' : '%s/dsml' % TMPDIR
                      'unzipdir' : '%s/dsml' % local.temp
                      }
                    </call>
                    <!-- The war file can be included in the OpenDS archive -->
                    <if expr="not PRODUCTNAME.startswith('OpenDS')">
                      <sequence>
                        <call function="'unZipFile'">
                          {
                          'location' : STAXServiceMachine,
                          'zipfile'  : '%s/%s' % (ZIPPATH, ZIPNAME),
                          'file'     : '%s/addons/DSML.war' % OPENDSNAME,
                          'unzipdir' : '%s/dsml' % local.temp
                          }
                        </call>
                      </sequence>
                    </if>
                    <call function="'copyFile'">
                      {
                      'location'   : STAXServiceMachine,
                      'srcfile'    : '%s/dsml/%s/lib/OpenDS.jar' % (TMPDIR,OPENDSNAME),
                      'destfile'   : '%s/dsml/STAF-INF/jars/OpenDS.jar' % TMPDIR,
                      'srcfile'    : '%s/dsml/%s/lib/OpenDS.jar' % (local.temp,OPENDSNAME),
                      'destfile'   : '%s/dsml/STAF-INF/jars/OpenDS.jar' % local.temp,
                      'remotehost' : STAXServiceMachine
                      }
                    </call>
@@ -86,20 +100,25 @@
                </else>
              </if>
              <!-- The war file can be included in the OpenDS archive -->
              <script>
                if not PRODUCTNAME.startswith('OpenDS'):
                  DSML_WARPATH = '%s/dsml/%s/addons/DSML.war' % (local.temp,OPENDSNAME)
              </script>
              <call function="'unZipFile'">
                {
                'location' : STAXServiceMachine,
                'zipfile'  : DSML_WARPATH,
                'directory': 'WEB-INF/classes',
                'unzipdir' : '%s/dsml' % TMPDIR,
                'unzipdir' : '%s/dsml' % local.temp,
                }
              </call>
              <call function="'copyFolder'">
                {
                'location'   : STAXServiceMachine,
                'srcfolder'  : '%s/dsml/WEB-INF/classes' % TMPDIR,
                'destfolder' : '%s/dsml/STAF-INF/classes' % TMPDIR,
                'srcfolder'  : '%s/dsml/WEB-INF/classes' % local.temp,
                'destfolder' : '%s/dsml/STAF-INF/classes' % local.temp,
                'remotehost' : STAXServiceMachine
                }
              </call>
@@ -118,9 +137,9 @@
                else:
                  separator=':'
                opendsjar='%s/dsml/STAF-INF/jars/OpenDS.jar' % TMPDIR
                emmajar='%s/dsml/STAF-INF/jars/emma.jar' % TMPDIR
                dsmlclasses='%s/dsml/STAF-INF/classes' % TMPDIR
                opendsjar='%s/dsml/STAF-INF/jars/OpenDS.jar' % local.temp
                emmajar='%s/dsml/STAF-INF/jars/emma.jar' % local.temp
                dsmlclasses='%s/dsml/STAF-INF/classes' % local.temp
              </script>
              <call function="'GetVar'">
@@ -138,7 +157,7 @@
                {
                'location'   : STAXServiceMachine,
                'foldername' : '%s/src' % TESTS_DSML_DIR,
                'destfolder' : '%s/dsml/STAF-INF/classes' % TMPDIR,
                'destfolder' : '%s/dsml/STAF-INF/classes' % local.temp,
                'classpath'  : '%s%s%s%s%s%s%s' \
                               % (opendsjar,separator,emmajar,separator,dsmlclasses,separator,cp)
                }
@@ -148,7 +167,7 @@
                {
                'location'   : STAXServiceMachine,
                'srcfile'    : '%s/resource/errorStrings.properties' % TESTS_DSML_DIR,
                'destfile'   : '%s/dsml/STAF-INF/classes/errorStrings.properties' % TMPDIR,
                'destfile'   : '%s/dsml/STAF-INF/classes/errorStrings.properties' % local.temp,
                'remotehost' : STAXServiceMachine
                }
              </call>
@@ -164,7 +183,7 @@
                'location'     : STAXServiceMachine,
                'jarname'      : '%s/dsml/dsmlService.jar' % local.java,
                'entrypoint'   : 'STAF-INF',
                'pathfolder'   : '%s/dsml' % TMPDIR,
                'pathfolder'   : '%s/dsml' % local.temp,
                'manifestpath' : '%s/MANIFEST.MF' % TESTS_DSML_DIR
                }
              </call>
@@ -421,6 +440,13 @@
              <message>
                'setup: deploy DSML gateway webapp as described in config.py'
              </message>
              <!-- The war file can be included in the OpenDS archive -->
              <script>
                if not PRODUCTNAME.startswith('OpenDS'):
                  DSML_WARPATH = '%s/dsml/%s/addons/DSML.war' % (local.temp,OPENDSNAME)
              </script>
              <call function="'deployWebApplicationWAR'">
                { 'warFilePath' : '%s' % DSML_WARPATH }
              </call>
@@ -494,6 +520,11 @@
                }
              </call>
              <!-- The war file can be included in the OpenDS archive -->
              <script>
                if not PRODUCTNAME.startswith('OpenDS'):
                  DSML_WARPATH = '%s/dsml/%s/addons/DSML.war' % (local.temp,OPENDSNAME)
              </script>
              <call function="'runSTAFCommand'">
                { 'name'      :  'Extract DSML gateway web.xml',
                  'location'  :  STAXServiceMachine,
opends/tests/staf-tests/shared/ant/tests.xml
@@ -385,7 +385,6 @@
original.archive=${opends.dir.input}/${opends.name.input}.zip</echo>
  </target>
  <target name="coverage-init">
    <path id="emma.lib">
      <pathelement location="${project.home}/ext/emma/lib/emma.jar"     />
@@ -393,40 +392,59 @@
    </path>
    <taskdef resource="emma_ant.properties" classpathref="emma.lib" />
  </target>
  <target name="coverage-on" depends="coverage-init">
    <property name="coverage.on" value="true"/>
  </target>
  <target name="coverage-instrument" if="coverage.on">
    <delete dir="${tests.tmp.dir}/coverage-instr" />
    <mkdir dir="${tests.tmp.dir}/coverage-instr/opends" />
    <mkdir dir="${tests.tmp.dir}/coverage-instr/dsml" />
    <delete dir="${temp.dir}/coverage-instr" />
    <mkdir dir="${temp.dir}/coverage-instr/opends" />
    <mkdir dir="${temp.dir}/coverage-instr/dsml" />
    <!-- unzip the original package in a temporary location to make the
         changes necessary so that the coverage tool is called
     -->
    <unzip src="${opends.dir}/${opends.name}.zip"
           dest="${tests.tmp.dir}/coverage-instr/opends"/>
    <unzip src="${opends.dir}/${opends.name}-DSML.war"
           dest="${tests.tmp.dir}/coverage-instr/dsml"/>
           dest="${temp.dir}/coverage-instr/opends"/>
    <if>
      <matches string="${product.name}" pattern="^OpenDS ."/>
      <then>
        <!-- The war file is not in the opends archive -->
        <unzip src="${opends.dir}/${opends.name}-DSML.war"
               dest="${temp.dir}/coverage-instr/dsml"/>
      </then>
      <else>
        <!-- The war file is in the opends archive -->
        <unzip src="${temp.dir}/coverage-instr/opends/${opends.name}/addons/DSML.war"
               dest="${temp.dir}/coverage-instr/dsml"/>
      </else>
    </if>
    <!-- Add emma in the package along with the other librairies
         this has the advantage of being automatically picked up by the scripts
    -->
    <copy file="${project.home}/ext/emma/lib/emma.jar"
          tofile="${tests.tmp.dir}/coverage-instr/opends/${opends.name}/lib/emma.jar"/>
          tofile="${temp.dir}/coverage-instr/opends/${opends.name}/lib/emma.jar"/>
    <copy file="${project.home}/ext/emma/lib/emma.jar"
          tofile="${tests.tmp.dir}/coverage-instr/dsml/WEB-INF/lib/emma.jar"/>
          tofile="${temp.dir}/coverage-instr/dsml/WEB-INF/lib/emma.jar"/>
    <!-- move the original product package to make room for the coverage
         enabled package
     -->
    <move file="${opends.dir}/${opends.name}.zip" tofile="${opends.dir}/${opends.name}.zip.nocov"/>
    <move file="${opends.dir}/${opends.name}-DSML.war" tofile="${opends.dir}/${opends.name}-DSML.war.nocov"/>
    <if>
      <matches string="${product.name}" pattern="^OpenDS ."/>
      <then>
        <!-- The war file is not in the opends archive, so we need to backup the original package -->
        <move file="${opends.dir}/${opends.name}-DSML.war" tofile="${opends.dir}/${opends.name}-DSML.war.nocov"/>
      </then>
    </if>
    <!-- intrument the OpenDS java archive to gather coverage -->
    <java classpath="${tests.tmp.dir}/coverage-instr/opends/${opends.name}/lib/emma.jar"
    <java classpath="${temp.dir}/coverage-instr/opends/${opends.name}/lib/emma.jar"
          classname="emma" fork="true">
        <jvmarg value="-Demma.metadata.out.file=${tests.tmp.dir}/coverage-instr/opends/${opends.name}/coverage.em" />
        <jvmarg value="-Demma.metadata.out.file=${temp.dir}/coverage-instr/opends/${opends.name}/coverage.em" />
        <arg value="instr" />
        <arg value="-m" />
        <arg value="overwrite" />
@@ -439,12 +457,12 @@
        <arg value="-ix" />
        <arg value="com.*" />
        <arg value="-ip" />
        <arg value="${tests.tmp.dir}/coverage-instr/opends/${opends.name}/lib/OpenDS.jar:${tests.tmp.dir}/coverage-instr/opends/${opends.name}/lib/extensions/snmp-mib2605.jar" />
        <arg value="${temp.dir}/coverage-instr/opends/${opends.name}/lib/OpenDS.jar:${temp.dir}/coverage-instr/opends/${opends.name}/lib/extensions/snmp-mib2605.jar" />
    </java>
    <java classpath="${tests.tmp.dir}/coverage-instr/dsml/WEB-INF/lib/emma.jar"
    <java classpath="${temp.dir}/coverage-instr/dsml/WEB-INF/lib/emma.jar"
          classname="emma" fork="true">
        <jvmarg value="-Demma.metadata.out.file=${tests.tmp.dir}/coverage-instr/dsml/WEB-INF/lib/coverage.em" />
        <jvmarg value="-Demma.metadata.out.file=${temp.dir}/coverage-instr/dsml/WEB-INF/lib/coverage.em" />
        <arg value="instr" />
        <arg value="-m" />
        <arg value="overwrite" />
@@ -457,29 +475,53 @@
        <arg value="-ix" />
        <arg value="com.*" />
        <arg value="-ip" />
        <arg value="${tests.tmp.dir}/coverage-instr/dsml/WEB-INF/classes" />
        <arg value="${temp.dir}/coverage-instr/dsml/WEB-INF/classes" />
    </java>
    <!-- Repackage DSML Gateway the product with coverage enabled scripts -->
    <if>
      <matches string="${product.name}" pattern="^OpenDS ."/>
      <then>
        <!-- The war file is not in the opends archive, so we need to repackage the war file -->
        <zip basedir="${temp.dir}/coverage-instr/dsml" destfile="${opends.dir}/${opends.name}-DSML.war">
        <zipfileset dir="${temp.dir}/coverage-instr/dsml"
                    includes="WEB-INF/**,META-INF/**"/>
        </zip>
      </then>
      <else>
        <!-- The war file is in the opends archive, so we need to replace the war file -->
        <delete file="${temp.dir}/coverage-instr/opends/${opends.name}/addons/DSML.war"/>
        <zip basedir="${temp.dir}/coverage-instr/dsml" destfile="${temp.dir}/coverage-instr/opends/${opends.name}/addons/DSML.war">
        <zipfileset dir="${temp.dir}/coverage-instr/dsml"
                    includes="WEB-INF/**,META-INF/**"/>
        </zip>
      </else>
    </if>
    <!-- Repackage OpenDS the product with coverage enabled scripts -->
    <zip basedir="${tests.tmp.dir}/coverage-instr/opends" destfile="${opends.dir}/${opends.name}.zip">
    <zipfileset dir="${tests.tmp.dir}/coverage-instr/opends"
    <zip basedir="${temp.dir}/coverage-instr/opends" destfile="${opends.dir}/${opends.name}.zip">
    <zipfileset dir="${temp.dir}/coverage-instr/opends"
                includes="${opends.name}/setup,${opends.name}/uninstall,${opends.name}/upgrade,${opends.name}/bin/*,${opends.name}/lib/*.sh"
                filemode="755" dirmode="755" />
    </zip>
    <!-- Repackage DSML Gateway the product with coverage enabled scripts -->
    <zip basedir="${tests.tmp.dir}/coverage-instr/dsml" destfile="${opends.dir}/${opends.name}-DSML.war">
    <zipfileset dir="${tests.tmp.dir}/coverage-instr/dsml"
                includes="WEB-INF/**,META-INF/**"/>
    </zip>
    <!-- <delete dir="${tests.tmp.dir}/coverage-instr"/> -->
    <delete dir="${temp.dir}/coverage-instr"/>
  </target>
  <target name="restore-pkg" if="coverage.on">
    <delete file="${opends.dir}/${opends.name}.zip"/>
    <move file="${opends.dir}/${opends.name}.zip.nocov" tofile="${opends.dir}/${opends.name}.zip"/>
    <delete file="${opends.dir}/${opends.name}-DSML.war"/>
    <move file="${opends.dir}/${opends.name}-DSML.war.nocov" tofile="${opends.dir}/${opends.name}-DSML.war"/>
    <if>
      <matches string="${product.name}" pattern="^OpenDS ."/>
      <then>
        <!-- The war file is not in the opends archive, so we need to restore the original package -->
        <delete file="${opends.dir}/${opends.name}-DSML.war"/>
        <move file="${opends.dir}/${opends.name}-DSML.war.nocov" tofile="${opends.dir}/${opends.name}-DSML.war"/>
      </then>
    </if>
  </target>
  <target name="testwithcoverage" depends="coverage-on,coverage-instrument,run,restore-pkg"/>
</project>
opends/tests/staf-tests/shared/functions/topology.xml
@@ -453,7 +453,7 @@
            }
          </call>
          <!-- 'SNMP_OPENDMK_JARFILE' exists so we can continue with SNMP -->
          <if expr="RC != 48">
          <if expr="RC != 48 or not PRODUCTNAME.startswith('OpenDS')">
            <sequence>          
              <!---   Check if snmp java files are already compiled -->
              <call function="'listFolderByExtension'" >
@@ -468,28 +468,34 @@
                  <!--- Install DS Copy zip file -->
                  <message>
                    'Copy DS zip archive locally from %s to %s.' % \
                      (ZIPPATH,TMPDIR)
                      (ZIPPATH,local.temp)
                  </message>
                  <call function="'copyFile'">
                    { 
                    'srcfile'    : '%s/%s' % (ZIPPATH, ZIPNAME),
                    'destfile'   : '%s/%s' % (TMPDIR, ZIPNAME),
                    'destfile'   : '%s/%s' % (local.temp, ZIPNAME),
                    'remotehost' : STAXServiceMachine
                    }
                  </call>
                  
                  <!--- Install DS Extract zip file -->
                  <message>
                    'Extract locally DS zip archive to %s' % TMPDIR
                    'Extract locally DS zip archive to %s' % local.temp
                  </message>
                  <call function="'unZipFile'">
                    { 
                    'location' : STAXServiceMachine,
                    'zipfile'  : '%s/%s' % (TMPDIR, ZIPNAME),
                    'unzipdir' : TMPDIR
                    'zipfile'  : '%s/%s' % (local.temp, ZIPNAME),
                    'unzipdir' : local.temp
                    }
                  </call>
                  <!-- The jdmkrt.jar can be included in the OpenDS archive -->
                  <script>
                    if not PRODUCTNAME.startswith('OpenDS'):
                      SNMP_OPENDMK_JARFILE='%s/%s/addons/jdmkrt.jar' % (local.temp,OPENDSNAME)
                  </script>
                  <script>
                    if is_windows_platform(STAXServiceMachine):
                      jstaf_jarfile='%s\\bin\\JSTAF.jar' % LOCAL_STAF_ROOT
@@ -503,7 +509,7 @@
                      {
                      'location'   : STAF_REMOTE_HOSTNAME,
                      'srcfile'    : '%s/%s' % (DIRECTORY_INSTANCE_BIN,SNMP_OPENDS_JARFILE),
                      'destfile'   : '%s/%s' % (TMPDIR,SNMP_OPENDS_JARFILE),
                      'destfile'   : '%s/%s' % (local.temp,SNMP_OPENDS_JARFILE),
                      'remotehost' : STAXServiceMachine
                      }
                    </call>
@@ -515,7 +521,7 @@
                    % (javaLocalDir, STAXServiceMachine)
                  </message>
                  <script>
                    opends_jarfile='%s/%s' % (TMPDIR,SNMP_OPENDS_JARFILE)
                    opends_jarfile='%s/%s' % (local.temp,SNMP_OPENDS_JARFILE)
                    
                    if is_windows_platform(STAXServiceMachine):
                      separator=';'
@@ -531,28 +537,6 @@
                    }
                  </call>
                  
                  <!--  Delete the DS zip archive -->
                  <message>
                    'Delete %s/%s' % (TMPDIR, ZIPNAME)
                  </message>
                  <call function="'deleteFile'">
                    {
                    'location' : STAXServiceMachine,
                    'filename' : '%s/%s' % (TMPDIR, ZIPNAME)
                    }
                  </call>
                  <!--  Delete the DS install dir -->
                  <message>
                    'Delete %s/%s' % (TMPDIR, OPENDSNAME)
                  </message>
                  <call function="'deleteFolder'">
                    {
                    'location' : STAXServiceMachine,
                    'foldername' : '%s/%s' % (TMPDIR, OPENDSNAME)
                    }
                  </call>
                  <!-- Archive SNMP_OPENDMK_JARFILE file -->
                  <message>
                    'Copy OpenDMK jar file %s locally to %s.' \
@@ -566,6 +550,28 @@
                    'remotehost' : STAXServiceMachine
                    }
                  </call>
                  <!--  Delete the DS zip archive -->
                  <message>
                    'Delete %s/%s' % (local.temp, ZIPNAME)
                  </message>
                  <call function="'deleteFile'">
                    {
                    'location' : STAXServiceMachine,
                    'filename' : '%s/%s' % (local.temp, ZIPNAME)
                    }
                  </call>
                  <!--  Delete the DS install dir -->
                  <message>
                    'Delete %s/%s' % (local.temp, OPENDSNAME)
                  </message>
                  <call function="'deleteFolder'">
                    {
                    'location' : STAXServiceMachine,
                    'foldername' : '%s/%s' % (local.temp, OPENDSNAME)
                    }
                  </call>
                </sequence>
              </if>
            </sequence>
opends/tests/staf-tests/shared/functions/utils.xml
@@ -1041,7 +1041,7 @@
            xml.createAttr(doc,xml.issue,"id",issueID)
            xml.issues.appendChild(xml.issue)
        xml.writeXMLfile(doc,"%s/results2.xml" % logs.reports)
        xml.writeXMLfile(doc,"%s/results_tmp.xml" % logs.reports)
      </script>
      <call function="'queryLogs'">
@@ -1072,14 +1072,14 @@
        reportCfg.write('hostname = %s\n' % STAF_REMOTE_HOSTNAME)
        reportCfg.write('testcasesfail = %s\n' % nbFail)
        reportCfg.write('testcasesdone = %s\n' % nbDone)
        reportCfg.write('testcasestotal = 2833\n')
        reportCfg.write('testcasestotal = 2851\n')
        reportCfg.write('starttime = %s\n' % starttime)
        reportCfg.write('duration = %s\n' % duration)
        reportCfg.write('dsconfigduration = 0\n')
        reportCfg.write('percentage = %s\n' % percentage)
        reportCfg.write('allbugs = %s\n' % allbugs)
        reportCfg.write('os = %s\n' % TEST_OS_STRING)
        reportCfg.write('report = reports/results2.xml\n')
        reportCfg.write('report = reports/results_tmp.xml\n')
        reportCfg.write('istemporary = True\n')
        reportCfg.close()
      </script>
@@ -1110,7 +1110,7 @@
        xml.createAttr(doc,xml.testsuite,"shortname",ThisSuiteName)
        xml.testgroup.appendChild(xml.testsuite)
        
        xml.writeXMLfile(doc,"%s/results2.xml" % logs.reports)
        xml.writeXMLfile(doc,"%s/results_tmp.xml" % logs.reports)
      </script>
      
@@ -1194,7 +1194,7 @@
        xml=xmldoc_service()
        doc = xml.parseXMLfile("%s/results2.xml" % logs.reports)
        doc = xml.parseXMLfile("%s/results_tmp.xml" % logs.reports)
        
        qa = doc.getDocumentElement()
        ft = qa.getChildNodes().item(1)
@@ -1229,7 +1229,7 @@
        xml.createAttr(doc,xml.testgroup,"name",ThisGroupName)
        results.appendChild(xml.testgroup)
        
        xml.writeXMLfile(doc,"%s/results2.xml" % logs.reports)
        xml.writeXMLfile(doc,"%s/results_tmp.xml" % logs.reports)
        
      </script>
      <message>'##### %s group preamble #####' % ThisGroupName</message>
@@ -1257,18 +1257,36 @@
      <script>
        emmaJar='%s/%s/lib/emma.jar' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)
      </script>
      <if expr="os.path.exists(emmaJar)">
      <!-- Check if 'emma.jar' exists -->
      <call function="'GetEntry'">
        {
        'location'  : STAF_REMOTE_HOSTNAME ,
        'entry'     : emmaJar ,
        'attribute' : 'TYPE'
        }
      </call>
      <if expr="RC != 48">
        <!-- 'emma.jar' exists -->
        <sequence>
          <script>
            coveragePath=os.path.join(LOGS_ROOT,'coverage')
            coverageEm=os.path.join(DIRECTORY_INSTANCE_DIR,OPENDSNAME,'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')
            srcPathPrefix = os.path.join(TMPDIR,"..","..","..","..","..","..","src")
            remoteCoveragePath=os.path.join(remote.temp,'coverage')
            coverageEm=os.path.join(remoteCoveragePath,'coverage.em')
            ecPath=os.path.join(remoteCoveragePath,CurrentTestPath['group'])
          </script>
          <call function="'listFolderByExtension'" >
            {
            'location'   : STAF_REMOTE_HOSTNAME,
            'foldername' : ecPath,
            'extension'  : 'ec'
            }
          </call>
          <script>
            coverageFiles=','.join(STAXResult)
            coverageHtml=os.path.join(remoteCoveragePath,CurrentTestPath['group'],'coverage.html')
            srcPathPrefix = os.path.join(TESTS_ROOT,"..","..","src")
            srcPaths = [ os.path.join(srcPathPrefix,"server"),
                         os.path.join(srcPathPrefix,"ads"),
                         os.path.join(srcPathPrefix,"server","org"),
@@ -1281,10 +1299,11 @@
            srcArgs = " -sp ".join(srcPaths)
          </script>
          <call function="'runCommand'">
            { '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
            { 'location'  : STAF_REMOTE_HOSTNAME,
              'name'      : 'Generate coverage html 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'      : ecPath
            }
          </call>
        </sequence>
@@ -1352,6 +1371,12 @@
          'output'      : htmlFile }
      </call>
      <!-- Delete the XML file -->
      <call function="'deleteFile'">
        { 'location' : STAXServiceMachine,
          'filename' : xmlFile }
      </call>
    </sequence>
  </function>
opends/tests/staf-tests/shared/functions/webcontainer.xml
@@ -83,7 +83,7 @@
        <call function="'GetEntry'">
          {
          'location'  : STAXServiceMachine,
          'entry'     : '%s/%sCertificate' % (TMPDIR, WC_TYPE),
          'entry'     : '%s/HttpCertificate' % TMPDIR,
          'attribute' : 'TYPE'
          }
        </call>
@@ -98,9 +98,9 @@
                'command'   : '%s/bin/keytool' % (LOCAL_JAVA_HOME),
                'arguments' : '-genkey -alias %s -keyalg rsa \
                               -dname "cn=%s,O=Sun Microsystems,C=US" \
                               -keystore "%s/%sCertificate" \
                               -keystore "%s/HttpCertificate" \
                               -storepass "changeit" -keypass "changeit" \
                               -storetype JKS ' % (WC_TYPE, WC_TYPE, TMPDIR, WC_TYPE),
                               -storetype JKS ' % (WC_TYPE, WC_TYPE, TMPDIR),
                'path'      : '%s/bin' % (LOCAL_JAVA_HOME),
                'expectedRC': 0
              }
@@ -109,12 +109,12 @@
        </if>
        <!-- copying cert File over -->
        <message>
          'copying %s/%sCertificate to %s/%sCertificate' % (TMPDIR,WC_TYPE,wcPath,WC_TYPE)
          'copying %s/HttpCertificate to %s/HttpCertificate' % (TMPDIR,wcPath)
        </message>
        <call function="'copyFile'">
          { 'location'   : STAXServiceMachine,
            'srcfile'    : '%s/%sCertificate' % (TMPDIR, WC_TYPE),
            'destfile'   : '%s/%sCertificate' % (wcPath, WC_TYPE),
            'srcfile'    : '%s/HttpCertificate' % TMPDIR,
            'destfile'   : '%s/HttpCertificate' % wcPath,
            'remotehost' : mylocation
          }
        </call>
@@ -170,10 +170,10 @@
                &lt;Connector port="%s" protocole="HTTP/1.1" \
                SSLEnabled="true" maxThreads="150" scheme="https" secure="true" \
                clientAuth="false" sslProtocol="SSL" \
                keystoreFile="%s/%sCertificate" \
                keystoreFile="%s/HttpCertificate" \
                keyAlias="%s" \
                keystorePass="changeit" /&gt;' % \
                (WC_SSL_PORT, wcPath, WC_TYPE, WC_TYPE)
                (WC_SSL_PORT, wcPath, WC_TYPE)
              content=sslConnectorRegEx.sub(SSL_CONNECTOR, content)
              serverXmlOutput=open('%s/%s-apache-%s-%s_server.xml' % \
                              (local.temp,STAF_REMOTE_HOSTNAME,WC_TYPE,WC_VERSION),'w')
@@ -205,7 +205,7 @@
            <script>
              # create a glassfish batch command file
              asadminCmds = ["delete-jvm-options -Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks",
                            "create-jvm-options -Djavax.net.ssl.keyStore=%s/%sCertificate:-Djavax.net.ssl.keyStorePassword=changeit" % (wcPath,WC_TYPE),
                            "create-jvm-options -Djavax.net.ssl.keyStore=%s/HttpCertificate:-Djavax.net.ssl.keyStorePassword=changeit" % wcPath,
                            "delete-http-listener http-listener-1",
                            "delete-http-listener http-listener-2",
                            "create-http-listener  -e --enabled=true  --listenerport %s --listeneraddress %s --defaultvs server httpListener" % (WC_PORT, STAF_REMOTE_HOSTNAME),
@@ -386,7 +386,7 @@
            ]
            print 'sunwebserver install statefile %s' % '\n'.join(stateFileList)
            silentFilename = 'sunwebserver.statefile'
            silentFd = open(os.path.join(TMPDIR,silentFilename),'w')
            silentFd = open(os.path.join(local.temp,silentFilename),'w')
            silentFd.write('\n'.join(stateFileList))
            silentFd.flush()
            silentFd.close()
@@ -395,7 +395,7 @@
            </script>
            <call function="'copyFile'">
              { 'location'   : STAXServiceMachine,
                'srcfile' : '%s' % os.path.join(TMPDIR,silentFilename),
                'srcfile' : '%s' % os.path.join(local.temp,silentFilename),
                'destfile' : '%s' % silentFilePath,
                'remotehost' : STAF_REMOTE_HOSTNAME,
              }
@@ -437,7 +437,7 @@
            </if>
            <!-- create a wadm passwordfile -->
            <script>
              wadmPwdFilename = os.path.join(TMPDIR,'wadmPwd')
              wadmPwdFilename = os.path.join(local.temp,'wadmPwd')
              wadmPwdFile = open(wadmPwdFilename,'w')
              wadmPwdFile.write('wadm_password=password\n')
              wadmPwdFile.flush()
@@ -458,7 +458,7 @@
                                      '--user=admin', '--password-file=%s' % wadmDestPwdFilename,
                                      '--host=%s' % STAF_REMOTE_HOSTNAME,
                                      '--config=%s' % STAF_REMOTE_HOSTNAME,
                                      '--keystore=%s/%sCertificate' % (wcPath,WC_TYPE),
                                      '--keystore=%s/HttpCertificate' % wcPath,
                                      '--key-password=changeit', '--keystore-password=changeit'])
            </script>
            <call function="'runCommand'">
opends/tests/staf-tests/shared/staf/staf-controller.cfg
@@ -80,5 +80,5 @@
  OPTION JVMNAME=httpJVM-${local.hostname}  \
  OPTION J2=-Xms32m -Xmx128m \
    -Djavax.net.ssl.trustStorePassword=changeit \
    -Djavax.net.ssl.trustStore=${temp.dir}/${wc.type}Certificate \
    -Djavax.net.ssl.trustStore=${temp.dir}/HttpCertificate \
  OPTION JVM=${local.javahome}/bin/java
opends/tests/staf-tests/shared/tests/runTestJob.xml
@@ -182,8 +182,13 @@
        ServerSystemName='unknown'
        ServerRevision='unknown'
        ServerPackage='%s/%s' % (ZIPPATH,ZIPNAME)
        ServerSNMPJarFile='%s' % SNMP_OPENDMK_JARFILE
        # The jdmkrt.jar can be included in the OpenDS archive
        if not PRODUCTNAME.startswith('OpenDS'):
          ServerSNMPJarFile='addons/jdmkrt.jar'
        else:
          ServerSNMPJarFile='%s' % SNMP_OPENDMK_JARFILE
        if ServersInfoDict.has_key(ServerPath):
          ServerInfoDict=ServersInfoDict[ServerPath]
@@ -242,10 +247,16 @@
      <message>'Server= %s' % ServerInfoDict </message>
      <!-- Build the DSML Gateway Information Dictionary -->
      <!-- Build the DSML Gateway Dictionary -->
      <script>
        DSMLName='%s' % DSML_WARNAME
        DSMLPackage='%s' % DSML_WARPATH
        # The war file can be included in the OpenDS archive
        if not PRODUCTNAME.startswith('OpenDS'):
          DSMLName='DSML.war'
          DSMLPackage='addons/DSML.war'
        else:
          DSMLName='%s' % DSML_WARNAME
          DSMLPackage='%s' % DSML_WARPATH
        DSMLContainer=WC_TYPE
      </script>
@@ -267,7 +278,7 @@
            'Unable to retrieve LogsDir variable, RC=%s,Result=%s.' % (RC,STAFResult)
          </message>
          <script>
            logsDir='%s' % TMPDIR
            logsDir='%s' % local.temp
          </script>
        </sequence>
      </else>
@@ -296,10 +307,10 @@
            'No test groups have been run.'
          </message>
        </sequence>
      <else>
      <else>
        <sequence>
          <iterate var="thisChild" in="listOfChildren">
            <sequence>
            <sequence>
              <stafcmd name="'STAF Command: Log Query All'">
                <location>'%s' % STAF_LOCAL_HOSTNAME </location>
                <service>'log'</service>
@@ -307,7 +318,7 @@
                  'QUERY ALL MACHINE %s LOGNAME STAX_Job_%s' % (STAXServiceMachine,thisChild)
                </request>
              </stafcmd>
              <if expr="RC == 0">
                <sequence>
                  <script>
@@ -317,12 +328,12 @@
                    'Log Query on STAX_Job_%s Completed. RC=%s' % (thisChild,RC)
                  </message>
                  <iterate var="line" in="resultQuery">
                    <script>
                     txtfh.write('%s\n' % line)
                    </script>
                  </iterate>
                  </iterate>
                </sequence>
                <else>
                  <sequence>
@@ -333,7 +344,7 @@
                  </sequence>
                </else>
              </if>
            </sequence>
          </iterate>
        </sequence>
@@ -466,6 +477,8 @@
          finally:
            txtfh.close()
            # Delete results.txt file
            os.remove(textfile)
        except IOError:
          errorfh.write('Error: Unable to open %s. Reason IOError.' % textfile )
@@ -473,7 +486,27 @@
      </script>
      <message>'Starting to create results XML file.'</message>
      <!-- Check if 'remote.temp/coverage' exists -->
      <call function="'GetEntry'">
        {
        'location'  : STAF_LOCAL_HOSTNAME ,
        'entry'     : '%s/coverage' % logsDir ,
        'attribute' : 'TYPE'
        }
      </call>
      <if expr="RC != 48">
        <!-- 'remote.temp/coverage' exists -->
        <script>
          coverageUrl = '%s/%s/coverage/coverage.html' % (logsURI,logsDir)
        </script>
        <else>
          <script>
            coverageUrl = ''
          </script>
        </else>
      </if>
      <script>
        # Create the objects
        localstaf =test_env.staf(STAF_LOCAL_HOSTNAME)
@@ -633,7 +666,8 @@
        idElementList.append(['tests-dir',logsDir])
        idElementList.append(['tests-url',logsURI])
        idElementList.append(['mailto',SEND_MAIL_TO])
        idElementList.append(['coverage-url',coverageUrl])
        write_text_elements(id,idElementList)
        
        idElementList=[]
@@ -751,27 +785,6 @@
        'XML Report Written to %s.' % xmlfile
      </message>
      <!-- Generate the standard test report showing all testcases -->
      <script>
        _message='Generated standard test report.'
        xslfile= '%s/gen-alltests-report.xsl' % TESTS_XSL_DIR
        htmlfile= '%s/results.html' % logsReportDir
        standardReport=report_generation()
        stringParamsDict={}
        try:
          standardReport.transformReport(xslfile,xmlfile,htmlfile,stringParamsDict)
        except java.io.FileNotFoundException,details:
          _message='Unable to generate standard test report %s.' % details
        except IOError,details:
          _message='Unable to generate standard test report %s.' % details
        except:
          _message='Unable to generate standard test report !!!'
      </script>
      <message>_message</message>
      <!-- Generate the test report by test groups-->
      <script>
        _message='Generated groups test report.'
@@ -834,7 +847,7 @@
          if os.path.isdir(groupDir):
            import glob
            testSuiteFilesList=glob.glob('%s/*.xml' % groupDir)
            testSuiteFilesList=glob.glob('%s/*-log.html' % groupDir)
            xmlfile='%s/results.xml' % logsReportDir
            xslfile= '%s/gen-tests-report.xsl' % TESTS_XSL_DIR
@@ -842,7 +855,7 @@
            for testSuiteFile in testSuiteFilesList:
              if os.path.isfile(testSuiteFile):            
                testSuiteName=os.path.basename(testSuiteFile.replace('-log.xml',''))
                testSuiteName=os.path.basename(testSuiteFile.replace('-log.html',''))
                try:
                  testSuiteShortName=testSuiteName.split('.')[2]
                except:
@@ -889,24 +902,6 @@
      </script>
      <message>_message</message>
      <!-- Generate the summary text file -->
      <script>
        _message='Generated the summary text report'
        mysummaryxsl='%s/gen-text-summary.xsl' % TESTS_XSL_DIR
        mysummarytext='%s/summary.txt' % logsReportDir
        mysummaryxml=xmlfile
        summaryReport=report_generation()
        stringParamsDict={}
        try:
          summaryReport.transformReport(mysummaryxsl,mysummaryxml,mysummarytext,stringParamsDict)
        except IOError,details:
          _message='Unable to generate summary text file %s.' % details
      </script>
      <message>_message</message>
      <if expr="SEND_MAIL_AFTER_TEST_RUN == 'true'">
        <sequence>
          <message>
opends/tests/staf-tests/shared/tests/runTests.xml
@@ -44,27 +44,34 @@
        returnMap['replication.eclmode'] = REPLICATION_ECL_MODE
        my_path='%s/%s' % (DIRECTORY_INSTANCE_BIN,OPENDSNAME)
        my_report='%s/results_tmp.xml' % logs.reports
        my_report='%s/results2.xml' % logs.reports
        my_info={}
        my_info['jvm label']=TEST_JVM_STRING
        my_info['os label']=TEST_OS_STRING
        my_info['server package']='%s/%s' % (ZIPPATH,ZIPNAME)
        my_info['snmp jarfile']=SNMP_OPENDMK_JARFILE
        # The jdmkrt.jar can be included in the OpenDS archive
        if not PRODUCTNAME.startswith('OpenDS'):
          my_info['snmp jarfile']='addons%s' % SNMP_OPENDMK_JARFILE
        else:
          my_info['snmp jarfile']=SNMP_OPENDMK_JARFILE
        xml_create_report(PRODUCTNAME,TESTS_TYPE,my_path, \
          DSInfo.ServerDict,my_info,local.directory,my_report)
        # Copy the content of result_tmp.xml to result2.xml
        # add an xml-stylesheet
        # Copy the content of results2.xml file to results_tmp.xml
        # And add an xml-stylesheet
        testlogfh=open(my_report,'r')
        lines=testlogfh.readlines()
        file=open('%s/results2.xml' % logs.reports,'w')
        file=open('%s/results_tmp.xml' % logs.reports,'w')
        file.write('%s' % lines[0])
        file.write('&lt;?xml-stylesheet type="text/xsl" href="gen-groups-report.xsl"?&gt;\n')
        for l in lines[1:]:
          file.write('%s' % l)
        file.close()
        testlogfh.close()
        # Delete results2.xml file
        os.remove(my_report)
        # Create the initial report.cfg file
        # This file is used by the cgi script
@@ -80,14 +87,14 @@
        reportCfg.write('hostname = %s\n' % STAF_REMOTE_HOSTNAME)
        reportCfg.write('testcasesfail = 0\n')
        reportCfg.write('testcasesdone = 0\n')
        reportCfg.write('testcasestotal = 2833\n')
        reportCfg.write('testcasestotal = 2851\n')
        reportCfg.write('starttime = %s\n' % starttime)
        reportCfg.write('duration = 0\n')
        reportCfg.write('dsconfigduration = 0\n')
        reportCfg.write('percentage = 0\n')
        reportCfg.write('allbugs = []\n')
        reportCfg.write('os = %s\n' % TEST_OS_STRING)
        reportCfg.write('report = reports/results2.xml\n')
        reportCfg.write('report = reports/results_tmp.xml\n')
        reportCfg.write('istemporary = True\n')
        reportCfg.close()
@@ -153,15 +160,19 @@
           so far I could only get through this on either machines with a lot
           of memory or small sets of tests
      -->
      <script>
        emmaJar='%s/%s/lib/emma.jar' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)
      </script>
      <if expr="os.path.exists(emmaJar)">
      <!-- Check if 'remote.temp/coverage' exists -->
      <call function="'GetEntry'">
        {
        'location'  : STAF_REMOTE_HOSTNAME ,
        'entry'     : '%s/coverage' % remote.temp ,
        'attribute' : 'TYPE'
        }
      </call>
      <if expr="RC != 48">
        <!-- 'remote.temp/coverage' exists -->
        <sequence>
          <script>
            coverageFiles=''
            coveragePath=os.path.join(LOGS_ROOT,'coverage')
            srcPathPrefix = os.path.join(TMPDIR,"..","..","..","..","..","..","src")
            srcPathPrefix = os.path.join(TESTS_ROOT,"..","..","src")
            srcPaths = [ os.path.join(srcPathPrefix,"server"),
                         os.path.join(srcPathPrefix,"ads"),
                         os.path.join(srcPathPrefix,"server","org"),
@@ -172,17 +183,31 @@
                         os.path.join(srcPathPrefix,"messages","src","org")
                       ]
            srcArgs = " -sp ".join(srcPaths)
            for group in os.listdir(coveragePath):
              coverageGroupPath=os.path.join(coveragePath,group)
              coverageECs=[os.path.join(coverageGroupPath,ec) for ec in os.listdir(coverageGroupPath) if ec.startswith('coverage') and ec.endswith('.ec')]
              coverageFiles=','.join(coverageECs)
            resultsCoveragePath=os.path.join(LOGS_ROOT,'coverage')
            remoteCoveragePath=os.path.join(remote.temp,'coverage')
          </script>
          <call function="'listFolderByExtension'" >
            {
            'location'   : STAF_REMOTE_HOSTNAME,
            'foldername' : remoteCoveragePath,
            'extension'  : 'ec'
            }
          </call>
          <script>
            coverageFiles=','.join(STAXResult)
            emmaJar=os.path.join(TESTS_ROOT,"..","..","ext","emma","lib","emma.jar")
          </script>
          <call function="'runCommand'">
              { 'name'      : 'Generate global coverage xml report',
                'command'   : 'java',
                'arguments' : '-Xms64M -Xmx2048m -cp %s emma report -r xml,html -in %s/%s/coverage.em,%s -Dreport.xml.out.file=%s/coverage.xml -Dreport.html.out.file=%s/coverage.html -sp %s' % (emmaJar,DIRECTORY_INSTANCE_DIR,OPENDSNAME,coverageFiles,coveragePath,coveragePath,srcArgs),
                'path'      : TMPDIR
              }
            { 'location'  : STAF_REMOTE_HOSTNAME,
              'name'      : 'Generate global coverage xml report',
              'command'   : 'java',
              'arguments' : '-Xms64M -Xmx2048m -cp %s emma report -r txt,html -in %s/coverage.em,%s -Dreport.txt.out.file=%s/coverage.txt -Dreport.html.out.file=%s/coverage.html -sp %s' % (emmaJar,remoteCoveragePath,coverageFiles,resultsCoveragePath,resultsCoveragePath,srcArgs),
              'path'      : remoteCoveragePath
            }
          </call>
        </sequence>
      </if>
opends/tests/staf-tests/shared/xsl/functestspec-stylesheet.xml
File was deleted
opends/tests/staf-tests/shared/xsl/functestspec-stylesheet_security.xml
File was deleted
opends/tests/staf-tests/shared/xsl/gen-alltests-report.xsl
File was deleted
opends/tests/staf-tests/shared/xsl/gen-groups-report.xsl
@@ -60,6 +60,7 @@
  <xsl:variable name="mailto"         select="normalize-space($id/mailto)"/>
  <xsl:variable name="tests-dir"      select="normalize-space($id/tests-dir)"/>
  <xsl:variable name="url"            select="normalize-space($id/tests-url)"/>
  <xsl:variable name="coverage-url"   select="normalize-space($id/coverage-url)"/>
  <xsl:variable name="productname"    select="normalize-space($sut/name)"/>
  <xsl:variable name="hostname"       select="normalize-space($sut/hostname)"/>
  <xsl:variable name="version"        select="normalize-space($sut/version)"/>
@@ -598,6 +599,21 @@
    <xsl:element name="tr">
      <xsl:element name="td">
        <xsl:element name="b">
          <xsl:value-of select="'Coverage: '"/>
        </xsl:element>
      </xsl:element>
      <xsl:element name="td">
        <xsl:element name="a">
          <xsl:attribute name="href">
            <xsl:value-of select="$coverage-url"/>
          </xsl:attribute>
          <xsl:value-of select="$coverage-url"/>
        </xsl:element>
      </xsl:element>
    </xsl:element>
    <xsl:element name="tr">
      <xsl:element name="td">
        <xsl:element name="b">
          <xsl:value-of select="'Mail Sent to: '"/>
        </xsl:element>
      </xsl:element>
opends/tests/staf-tests/shared/xsl/gen-suites-report.xsl
@@ -63,6 +63,7 @@
  <xsl:variable name="mailto"         select="normalize-space($id/mailto)"/>
  <xsl:variable name="tests-dir"      select="normalize-space($id/tests-dir)"/>
  <xsl:variable name="url"            select="normalize-space($id/tests-url)"/>
  <xsl:variable name="coverage-url"   select="normalize-space($id/coverage-url)"/>
  <xsl:variable name="productname"    select="normalize-space($sut/name)"/>
  <xsl:variable name="hostname"       select="normalize-space($sut/hostname)"/>
  <xsl:variable name="version"        select="normalize-space($sut/version)"/>
@@ -592,6 +593,21 @@
    <xsl:element name="tr">
      <xsl:element name="td">
        <xsl:element name="b">
          <xsl:value-of select="'Coverage: '"/>
        </xsl:element>
      </xsl:element>
      <xsl:element name="td">
        <xsl:element name="a">
          <xsl:attribute name="href">
            <xsl:value-of select="$coverage-url"/>
          </xsl:attribute>
          <xsl:value-of select="$coverage-url"/>
        </xsl:element>
      </xsl:element>
    </xsl:element>
    <xsl:element name="tr">
      <xsl:element name="td">
        <xsl:element name="b">
          <xsl:value-of select="'Mail Sent to: '"/>
        </xsl:element>
      </xsl:element>
opends/tests/staf-tests/shared/xsl/gen-tests-report.xsl
@@ -64,6 +64,7 @@
  <xsl:variable name="mailto"         select="normalize-space($id/mailto)"/>
  <xsl:variable name="tests-dir"      select="normalize-space($id/tests-dir)"/>
  <xsl:variable name="url"            select="normalize-space($id/tests-url)"/>
  <xsl:variable name="coverage-url"   select="normalize-space($id/coverage-url)"/>
  <xsl:variable name="productname"    select="normalize-space($sut/name)"/>
  <xsl:variable name="hostname"       select="normalize-space($sut/hostname)"/>
  <xsl:variable name="version"        select="normalize-space($sut/version)"/>
@@ -543,6 +544,21 @@
    <xsl:element name="tr">
      <xsl:element name="td">
        <xsl:element name="b">
          <xsl:value-of select="'Coverage: '"/>
        </xsl:element>
      </xsl:element>
      <xsl:element name="td">
        <xsl:element name="a">
          <xsl:attribute name="href">
            <xsl:value-of select="$coverage-url"/>
          </xsl:attribute>
          <xsl:value-of select="$coverage-url"/>
        </xsl:element>
      </xsl:element>
    </xsl:element>
    <xsl:element name="tr">
      <xsl:element name="td">
        <xsl:element name="b">
          <xsl:value-of select="'Mail Sent to: '"/>
        </xsl:element>
      </xsl:element>
opends/tests/staf-tests/shared/xsl/gen-text-summary.xsl
File was deleted
opends/tests/staf-tests/shared/xsl/id.xsl
@@ -60,6 +60,7 @@
  <xsl:variable name="url"            select="normalize-space($id/tests-url)"/>
  <xsl:variable name="tests-dir"      select="normalize-space($id/tests-dir)"/>
  <xsl:variable name="mailto"         select="normalize-space($id/mailto)"/>
  <xsl:variable name="coverage-url"   select="normalize-space($id/coverage-url)"/>
  <xsl:variable name="productname"    select="normalize-space($sut[@product='opends']/name)"/>
  <xsl:variable name="version"        select="normalize-space($sut[@product='opends']/version)"/>
 
@@ -749,6 +750,21 @@
    <xsl:element name="tr">
      <xsl:element name="td">
        <xsl:element name="b">
          <xsl:value-of select="'Coverage: '"/>
        </xsl:element>
      </xsl:element>
      <xsl:element name="td">
        <xsl:element name="a">
          <xsl:attribute name="href">
            <xsl:value-of select="$coverage-url"/>
          </xsl:attribute>
          <xsl:value-of select="$coverage-url"/>
        </xsl:element>
      </xsl:element>
    </xsl:element>
    <xsl:element name="tr">
      <xsl:element name="td">
        <xsl:element name="b">
          <xsl:value-of select="'Mail Sent to: '"/>
        </xsl:element>
      </xsl:element>
@@ -779,4 +795,4 @@
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
opends/tests/staf-tests/shared/xsl/my-report.xsl
File was deleted