From fb3a5a7ff610bb4aa6649bb4531d99405bf0ebcf Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Tue, 27 Apr 2010 20:56:50 +0000
Subject: [PATCH] Fixing several issues with the Control Panel, the QuickSetup, Core server and Replication. Also improves unit, functional tests. More specifically this commit resolves the following open issues: 4385 - NPE when using ExtensibleMatch filter without a matching rule 4521 - dynamic lookup in attribut selection when selecting the sort order attribut while defining VLV index 4531 - Control Panel creates virtual static groups using groupOfURLs as objectclass 4533 - NullPointerException when configuring replication between 2 OpenDS 4539 - DSML Gateway - jaxb.properties Exception

---
 opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml |  101 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 91 insertions(+), 10 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 933bd79..17bb0e7 100755
--- a/opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml
+++ b/opendj-sdk/opends/tests/staf-tests/shared/functions/utils.xml
@@ -23,7 +23,7 @@
  !
  ! CDDL HEADER END
  !
- !      Copyright 2007-2009 Sun Microsystems, Inc.
+ !      Copyright 2007-2010 Sun Microsystems, Inc.
  ! -->
 <stax>
   <function name="checkRC">
@@ -717,7 +717,7 @@
       </function-arg-def>
       <function-arg-def name="dsPath"
                         type="optional"
-                        default="'%s/%s' % (DIRECTORY_INSTANCE_BIN,OPENDSNAME)">
+                        default="'%s/%s' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)">
         <function-arg-description>
           Pathname to installation root
         </function-arg-description>
@@ -871,7 +871,7 @@
         <script>
           import time
           testcaseStart=int(time.time())
-          testcaseStartTime=strftime("%Y%m%d@%H:%M:%S",localtime())
+          testcaseStartTime=strftime("%Y%m%d-%H:%M:%S",localtime())
           issuesList=[]
           for logType in ['errors','access']:
             if os.path.exists('%s/%s/logs/%s' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME,logType)):
@@ -930,20 +930,37 @@
         else:
           information=''
         
+        nvDone = 0
+        nbFail = 0
+        nbKnown = 0
         if numFail == 0:
           if numPass == 0:
             _status='INCONCLUSIVE'
             _result='unknown'
+            nbFail = int(fail.getTextContent()) + 1
+            fail.setTextContent('%s' % nbFail)
+            nbDone = int(done.getTextContent()) + 1
+            done.setTextContent('%s' % nbDone)
           else:
             _status='PASS'
             _result='pass'
+            nbDone = int(done.getTextContent()) + 1
+            done.setTextContent('%s' % nbDone)
         else:
           if len(issuesList)==0:
             _status='FAIL'
             _result='fail'
+            nbFail = int(fail.getTextContent()) + 1
+            fail.setTextContent('%s' % nbFail)
+            nbDone = int(done.getTextContent()) + 1
+            done.setTextContent('%s' % nbDone)
           else:
             _status='KNOWN ISSUES %s' % str(issuesList)
             _result='fail'
+            nbKnown = int(known.getTextContent()) + 1
+            known.setTextContent('%s' % nbKnown)
+            nbDone = int(done.getTextContent()) + 1
+            done.setTextContent('%s' % nbDone)
       </script>
 
       <message level="'status'">
@@ -953,7 +970,7 @@
       <call function="'testCase_EndBanner'" />
 
       <script>
-        testcaseEndTime = strftime("%Y%m%d@%H:%M:%S",localtime())
+        testcaseEndTime = strftime("%Y%m%d-%H:%M:%S",localtime())
 
         testcaseStop=int(time.time())        
         testcaseDuration=testcaseStop-testcaseStart
@@ -990,6 +1007,38 @@
           'endat'     : testcaseEndTime }
       </call>
 
+      <script>
+        # Update the report.cfg file
+        nbDone = int(done.getTextContent())
+        nbFail = int(fail.getTextContent())
+        nbKnown = int(known.getTextContent())
+        percentage = (nbDone - nbFail - nbKnown) * 100 / nbDone
+
+        starttime = time.strftime("%Y/%m/%d %H:%M:%S", time.gmtime(TESTS_TIMESTAMP))
+        duration = time.strftime("%H:%M:%S", time.gmtime(time.time() - TESTS_TIMESTAMP))
+        
+        reportCfg = open('%s/logs/report.cfg' % LOGS_ROOT, 'w')
+        reportCfg.write('[Main]\n')
+        reportCfg.write('product = OpenDS_SE2.4 (Directory)\n')
+        if TESTS_TYPE == 'functional-tests':
+          reportCfg.write('category = Functional\n')
+        else:
+          reportCfg.write('category = Stress\n')
+        reportCfg.write('dsconfignumber = -1\n')
+        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('starttime = %s\n' % starttime)
+        reportCfg.write('duration = %s\n' % duration)
+        reportCfg.write('dsconfigduration = 0\n')
+        reportCfg.write('percentage = %s\n' % percentage)
+        reportCfg.write('allbugs = []\n')
+        reportCfg.write('os = %s\n' % TEST_OS_STRING)
+        reportCfg.write('report = reports/results2.xml\n')
+        reportCfg.write('istemporary = True\n')
+        reportCfg.close()
+      </script>
     </sequence>
   </function>
 
@@ -1023,7 +1072,7 @@
       
       <!-- Start time of test suite -->      
       <script>
-        TestSuiteStartTime=strftime("%Y%m%d@%H:%M:%S",localtime())
+        TestSuiteStartTime=strftime("%Y%m%d-%H:%M:%S",localtime())
       </script>
           
       <message>
@@ -1059,7 +1108,7 @@
 
       <!-- Start time of test suite -->      
       <script>
-        TestSuiteEndTime=strftime("%Y%m%d@%H:%M:%S",localtime())
+        TestSuiteEndTime=strftime("%Y%m%d-%H:%M:%S",localtime())
       </script>
       
       <!-- Format the test group and suite names to create folder -->
@@ -1106,7 +1155,27 @@
         qa = doc.getDocumentElement()
         ft = qa.getChildNodes().item(1)
         results = ft.getChildNodes().item(3)
-        
+
+        if results.getChildNodes().item(1):
+          # tempres element already exits
+          xml.tempres = results.getChildNodes().item(1)
+          fail = xml.tempres.getChildNodes().item(1)
+          known = xml.tempres.getChildNodes().item(3)
+          done = xml.tempres.getChildNodes().item(5)
+        else:
+          # Create tempres element
+          xml.tempres = doc.createElement("tempres")
+          results.appendChild(xml.tempres)
+          fail = doc.createElement('fail')
+          xml.tempres.appendChild(fail)
+          fail.appendChild(doc.createTextNode('0'))
+          known = doc.createElement('known')
+          xml.tempres.appendChild(known)
+          known.appendChild(doc.createTextNode('0'))
+          done = doc.createElement('done')
+          xml.tempres.appendChild(done)
+          done.appendChild(doc.createTextNode('0'))
+
         #Create testgroup element
         xml.testgroup = doc.createElement("testgroup")
         xml.createAttr(doc,xml.testgroup,"name",ThisGroupName)
@@ -1802,9 +1871,9 @@
           arguments = arguments + ' &amp; set PROCESSRC=%ERRORLEVEL% &amp; exit %PROCESSRC%'
 
         if TESTS_TYPE == 'functional-tests':
-          timerDuration = '5m'
+          timerDuration = '10m'
         else:
-          timerDuration = '24h'
+          timerDuration = '10h'
       </script>
       <message>
         '%s: Running command:\n %s %s\nlocation: %s\nenv: %s\nworkdir: %s' % (_id,command,arguments,location,env,path)
@@ -1905,8 +1974,20 @@
             'ERROR: COMMAND HANGING, not completed after %s' % timerDuration
           </message>
 
-          <tcstatus result="'fail'"/>
+          <if expr="knownIssue == None">
+            <tcstatus result="'fail'"/>
+            <else>
+              <sequence>
+                <call function="'setKnownIssue'">
+                  { 'issueId' : knownIssue }
+                </call>
+              </sequence>
+            </else>
+          </if>
         </sequence>
+        <else>
+          <script>RC = cmdRC</script>
+        </else>
       </if>
 
       <return>

--
Gitblit v1.10.0