From 718c7f7323af1a73db2aae58555f6d4f80bafa99 Mon Sep 17 00:00:00 2001
From: Christophe Sovant <christophe.sovant@forgerock.com>
Date: Wed, 05 Nov 2008 14:49:50 +0000
Subject: [PATCH] Issue 3025: results should be the same on all OS/platforms

---
 opends/tests/staf-tests/shared/functions/environment.xml                 |    2 
 opends/tests/staf-tests/shared/tests/config.py.stubs                     |    2 
 opends/tests/staf-tests/shared/functions/webcontainer.xml                |   93 +++++++++++++++---------------
 opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_cleanup.xml |    7 --
 opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_setup.xml   |   32 +++++++---
 opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_test.xml    |   14 ++--
 6 files changed, 80 insertions(+), 70 deletions(-)

diff --git a/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_cleanup.xml b/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_cleanup.xml
index 194a0dd..35ee4c7 100755
--- a/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_cleanup.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_cleanup.xml
@@ -128,12 +128,7 @@
               { 'location'   : STAF_REMOTE_HOSTNAME ,
               'wcPath' : '%s/%s-%s' % (WC_DIRECTORY,WC_TYPE,WC_VERSION) }
             </call>
-            <call function="'checktestRC'">
-              {
-              'returncode' : RC ,
-              'result'     : STAXResult
-              }
-            </call>
+
             <call function="'testCase_Postamble'"/>
           </sequence>
         </testcase>
diff --git a/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_setup.xml b/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_setup.xml
index 24d5df7..e14419a 100755
--- a/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_setup.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_setup.xml
@@ -286,12 +286,7 @@
                 'setup: start webcontainer as described in config.py'
               </message>
               <call function="'startWebcontainerWithScript'"/>
-              <call function="'checktestRC'">
-                {
-                'returncode' : RC ,
-                'result'     : STAXResult
-                }
-              </call>
+
               <stafcmd name="'waiting for webcontainer startup'">
                 <location>'%s' % location</location>
                 <service>'delay'</service>
@@ -321,17 +316,30 @@
                 'setup: configure DSML gateway DS port param.'
               </message>
 
+              <script>
+                myTmpDir='%s/%s' % (local.temp, STAF_REMOTE_HOSTNAME)
+              </script>
+              <message>
+                'Create folder %s on host %s' % (myTmpDir,STAXServiceMachine)
+              </message>
+              <call function="'createFolder'">
+                { 'location'   : STAXServiceMachine,
+                  'foldername' : '%s' % myTmpDir
+                }
+              </call>
+
               <call function="'runSTAFCommand'">
                 { 'name'      :  'Extract DSML gateway web.xml',
                   'location'  :  STAXServiceMachine,
                   'service'   :  'ZIP',
                   'request'   :  'UNZIP',
-                  'arguments' :  'ZIPFILE %s TODIRECTORY %s FILE WEB-INF/web.xml' % (DSML_WARPATH, TMPDIR)
+                  'arguments' :  'ZIPFILE %s TODIRECTORY %s FILE WEB-INF/web.xml' \
+                                  % (DSML_WARPATH, myTmpDir)
                 }
               </call>
 
               <script>
-                webXmlInput=open('%s/WEB-INF/web.xml' % TMPDIR,'r')
+                webXmlInput=open('%s/WEB-INF/web.xml' % myTmpDir,'r')
                 import re
                 portRegEx = re.compile('389')
                 hostRegEx = re.compile('localhost')
@@ -339,14 +347,18 @@
                 c1=portRegEx.sub(DIRECTORY_INSTANCE_PORT, c0)
                 content=hostRegEx.sub(DIRECTORY_INSTANCE_HOST, c1)
                 webXmlInput.close()
-                webXmlOutput=open('%s/WEB-INF/web.xml.out' % TMPDIR,'w')
+                webXmlOutput=open('%s/WEB-INF/web.xml.out' % myTmpDir,'w')
                 webXmlOutput.write(content)
                 webXmlOutput.close()
               </script>
+
+              <message>
+                'Update DSML gateway web.xml file on host %s' % STAF_REMOTE_HOSTNAME
+              </message>
               <call function="'copyFile'">
                 { 'location' : STAXServiceMachine,
                   'remotehost' : '%s' % STAF_REMOTE_HOSTNAME,
-                  'srcfile' : '%s/WEB-INF/web.xml.out' % TMPDIR,
+                  'srcfile' : '%s/WEB-INF/web.xml.out' % myTmpDir,
                   'destfile' : '%s/%s-%s/webapps/dsml/WEB-INF/web.xml' % (WC_DIRECTORY,WC_TYPE,WC_VERSION)
                  }
               </call>
diff --git a/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_test.xml b/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_test.xml
index cbf45ac..2d3be39 100755
--- a/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_test.xml
+++ b/opends/tests/staf-tests/functional-tests/testcases/dsml/dsml_test.xml
@@ -43,7 +43,7 @@
         </script>
         <call function="'testSuite_Preamble'"/>
         <sequence>
-          <message>'TESTS_DATA_DIR=%s '%(TESTS_DATA_DIR)
+          <message>'TESTS_DATA_DIR=%s ' % (local.data)
           </message>
           <!--- Test Case information
               #@TestMarker          test
@@ -68,14 +68,14 @@
                   'location'  :  STAXServiceMachine,
                   'service'   :  'FS',
                   'request'   :  'LIST DIRECTORY',
-                  'arguments' :  '%s/dsml/suites SORTBYNAME TYPE d' % TESTS_DATA_DIR
+                  'arguments' :  '%s/dsml/suites SORTBYNAME TYPE d' % local.data
                 }
               </call>
 
               <if expr="RC != 0">
                 <sequence>
                   <message>
-                    'Folder %d/dsml/suites does not exist.' % (TESTS_DATA_DIR)
+                    'Folder %d/dsml/suites does not exist.' % (local.data)
                   </message>
                   <return>0</return>
                 </sequence>
@@ -111,7 +111,7 @@
                       'service'   :  'FS',
                       'request'   :  'LIST DIRECTORY',
                       'arguments' :  '%s/dsml/suites/%s/data \
-                                      SORTBYNAME EXT dat TYPE f' % (TESTS_DATA_DIR,family)
+                                      SORTBYNAME EXT dat TYPE f' % (local.data,family)
                     }
                   </call>
 
@@ -125,7 +125,7 @@
                       'service'   :  'FS',
                       'request'   :  'LIST DIRECTORY',
                       'arguments' :  '%s/dsml/suites/%s/data \
-                                      SORTBYNAME EXT res TYPE f' % (TESTS_DATA_DIR,family)
+                                      SORTBYNAME EXT res TYPE f' % (local.data,family)
                     }
                   </call>
 
@@ -141,10 +141,10 @@
                           runFileName = runFileRE.sub('run',test)
                           runFilePath = '/tmp/%s_%s' % (family, runFileName)
                           requestFilePath = '%s/dsml/suites/%s/data/%s' % \
-                            (TESTS_DATA_DIR,family,test)
+                            (local.data,family,test)
                           expectedFileName = runFileRE.sub('res',test)
                           expectedFilePath = '%s/dsml/suites/%s/data/%s' % \
-                            (TESTS_DATA_DIR,family,expectedFileName)
+                            (local.data,family,expectedFileName)
                           if (sslRE.search(test) != None):
                             url = urls['SSL']
                           else:
diff --git a/opends/tests/staf-tests/shared/functions/environment.xml b/opends/tests/staf-tests/shared/functions/environment.xml
index 7d284ff..a3d712a 100755
--- a/opends/tests/staf-tests/shared/functions/environment.xml
+++ b/opends/tests/staf-tests/shared/functions/environment.xml
@@ -136,11 +136,13 @@
         OPENDS_BINPATH ='%s/%s/bin' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME)
         if is_windows_platform(STAF_REMOTE_HOSTNAME):
           fileExt='.bat'
+          scriptExt='.bat'
           fileFolder='bat'
           pathSeparator=';'
           newLine='\r\n'
         else:
           fileExt=''
+          scriptExt='.sh'
           fileFolder='bin'
           pathSeparator=':'
           newLine='\n'
diff --git a/opends/tests/staf-tests/shared/functions/webcontainer.xml b/opends/tests/staf-tests/shared/functions/webcontainer.xml
index 757308f..eed4bd4 100755
--- a/opends/tests/staf-tests/shared/functions/webcontainer.xml
+++ b/opends/tests/staf-tests/shared/functions/webcontainer.xml
@@ -109,20 +109,31 @@
         
         <script>stafRoot=STAFResult</script>
         
-        <call function="'runCommand'">
-          { 'name'      : 'Generate a Certificate',
-            'location'  : STAXServiceMachine,
-            'command'   : '%s/bin/keytool' % (JAVA_HOME),
-            'arguments' : '-genkey -alias tomcat -keyalg rsa \
-                           -dname "cn=tomcat,O=Sun Microsystems,C=US" \
-                           -keystore "%s/services/DSML/tomcatCertificate" \
-                           -storepass "changeit" -keypass "changeit" \
-                           -storetype JKS ' % (stafRoot),
-            'path'      : '%s/bin' % (JAVA_HOME),
-            'expectedRC': 0
+        <!-- Check if 'tomcatCertificate' file exists -->
+        <call function="'GetEntry'">
+          {
+          'location'  : STAXServiceMachine,
+          'entry'     : '%s/services/DSML/tomcatCertificate' % stafRoot,
+          'attribute' : 'TYPE'
           }
         </call>
-      
+        <!-- 'tomcatCertificate' file does not exist so generate it -->
+        <if expr="RC == 48">
+          <call function="'runCommand'">
+            { 'name'      : 'Generate a Certificate',
+              'location'  : STAXServiceMachine,
+              'command'   : '%s/bin/keytool' % (LOCAL_JAVA_HOME),
+              'arguments' : '-genkey -alias tomcat -keyalg rsa \
+                             -dname "cn=tomcat,O=Sun Microsystems,C=US" \
+                             -keystore "%s/services/DSML/tomcatCertificate" \
+                             -storepass "changeit" -keypass "changeit" \
+                             -storetype JKS ' % (stafRoot),
+              'path'      : '%s/bin' % (LOCAL_JAVA_HOME),
+              'expectedRC': 0
+            }
+          </call>
+        </if>
+
         <call function="'copyFile'">
           { 'location'   : STAXServiceMachine,
             'srcfile'    : '%s/services/DSML/tomcatCertificate' % (stafRoot),
@@ -157,12 +168,12 @@
             (WC_SSL_PORT, wcPath, WC_TYPE, WC_VERSION)
           content=sslConnectorRegEx.sub(SSL_CONNECTOR, content)
           serverXmlOutput=open('%s/%s-%s-%s_server.xml' % \
-                          (TMPDIR,STAF_REMOTE_HOSTNAME,WC_TYPE,WC_VERSION),'w')
+                          (local.temp,STAF_REMOTE_HOSTNAME,WC_TYPE,WC_VERSION),'w')
           serverXmlOutput.write(content)
           serverXmlOutput.close()
         </script>
         <call function="'copyFile'">
-          {'srcfile' : '%s/%s-%s-%s_server.xml' % (TMPDIR, STAF_REMOTE_HOSTNAME, WC_TYPE, WC_VERSION),
+          {'srcfile' : '%s/%s-%s-%s_server.xml' % (local.temp, STAF_REMOTE_HOSTNAME, WC_TYPE, WC_VERSION),
            'destfile' : '%s/%s-%s/conf/server.xml' % (wcPath, WC_TYPE, WC_VERSION),
            'remotehost' : '%s' % STAF_REMOTE_HOSTNAME
           }
@@ -269,7 +280,7 @@
       <script>
         if wcPath:
           wcBinPath='%s/bin' % wcPath
-          STAFCmd='%s/shutdown.sh' % wcBinPath
+          STAFCmd='%s/shutdown%s' % (wcBinPath, scriptExt)
           STAFCmdEnv=['CATALINA_HOME=%s' % wcPath,'PATH=/bin:/usr/bin',\
                       'JAVA_HOME=%s' % JAVA_HOME]
       </script>
@@ -279,22 +290,13 @@
       </message>
       
       <call function="'runCommand'">
-        { 'location'  : location,
-        'command'   : STAFCmd,
-        'env' : STAFCmdEnv,
-        'name' : STAFCmd,
-        'path' : wcBinPath
+        { 'location' : location,
+        'command'    : STAFCmd,
+        'envCmd'     : STAFCmdEnv,
+        'name'       : STAFCmd,
+        'path'       : wcBinPath
         }
       </call>
-      <script>
-        stopRC=RC
-        stopResult=STAXResult
-      </script>
-      <call function="'checkRC'">
-        { 'returncode' : stopRC,
-        'result'     : stopResult }
-      </call>
-      <return>stopResult</return>
       
     </sequence>
     
@@ -325,7 +327,7 @@
       <script>
         if wcPath:
           wcBinPath='%s/bin' % wcPath
-          STAFCmd='%s/startup.sh' % wcBinPath
+          STAFCmd='%s/startup%s' % (wcBinPath, scriptExt)
           STAFCmdEnv=['CATALINA_HOME=%s' % wcPath,'PATH=/bin:/usr/bin', \
                       'JAVA_HOME=%s' % JAVA_HOME]
       </script>
@@ -333,25 +335,24 @@
       <message>
         '%s' % STAFCmd
       </message>
-      
+
+      <!-- On Windows systems, startup command always returns 1 -->
+      <script>
+        if is_windows_platform(location):
+          expectedRC=1
+        else:
+          expectedRC=0
+      </script>
+
       <call function="'runCommand'">
-        { 'location'  : location,
-        'command'   : STAFCmd,
-        'env' : STAFCmdEnv,
-        'name' : STAFCmd,
-        'path' : wcBinPath
+        { 'location' : location,
+        'command'    : STAFCmd,
+        'envCmd'     : STAFCmdEnv,
+        'name'       : STAFCmd,
+        'path'       : wcBinPath,
+        'expectedRC' : expectedRC
         }
       </call>
-      <script>
-        startRC=RC
-        startResult=STAXResult
-      </script>
-      <call function="'checkRC'">
-        { 'returncode' : startRC ,
-        'result'     : startResult }
-      </call>
-      
-      <return>startResult</return>
       
     </sequence>
     
diff --git a/opends/tests/staf-tests/shared/tests/config.py.stubs b/opends/tests/staf-tests/shared/tests/config.py.stubs
index e3a264f..0f67792 100644
--- a/opends/tests/staf-tests/shared/tests/config.py.stubs
+++ b/opends/tests/staf-tests/shared/tests/config.py.stubs
@@ -62,7 +62,7 @@
 WC_PORT                     = '9000'
 WC_SSL_PORT                 = '9001'
 WC_HOST                     = 'localhost'
-DSML_WARNAME                = 'OpenDS-1.0.0-DSML.war'
+DSML_WARNAME                = 'OpenDS-1.1.0-DSML.war'
 DSML_WARPATH                = '%s/build/package/%s' % (OPENDSDIR, DSML_WARNAME)
 SNMP_OPENDS_JARFILE         = '%s/lib/extensions/snmp-mib2605.jar' % OPENDSNAME
 SNMP_OPENDMK_LIBDIR         = '/path/to/opendmk/lib'

--
Gitblit v1.10.0