From b3ba51e8d1f4ac88411f716f20d3671c195ea759 Mon Sep 17 00:00:00 2001
From: al_xipe <al_xipe@localhost>
Date: Sat, 25 Aug 2007 12:21:54 +0000
Subject: [PATCH] massive retrofit of the logging tests into the framework

---
 opends/tests/functional-tests/testcases/logging/logging_writer.xml |  531 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 262 insertions(+), 269 deletions(-)

diff --git a/opends/tests/functional-tests/testcases/logging/logging_writer.xml b/opends/tests/functional-tests/testcases/logging/logging_writer.xml
index 2494f12..89e2868 100755
--- a/opends/tests/functional-tests/testcases/logging/logging_writer.xml
+++ b/opends/tests/functional-tests/testcases/logging/logging_writer.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE stax SYSTEM "../../../stax.dtd">
+<!DOCTYPE stax SYSTEM "../../shared/stax.dtd">
 <!--
  ! CDDL HEADER START
  !
@@ -26,277 +26,270 @@
  !      Portions Copyright 2006-2007 Sun Microsystems, Inc.
  ! -->
 <stax>
-  
-<defaultcall function="logging_writer"/>
-<function name="logging_writer" scope="local">      
-
-<sequence>
-    
-
-<!-- #################################### -->
-<!--
-  #@TestMarker             access logger
-  #@TestName               access logger properties check
-  #@TestIssue                   
-  #@TestPurpose           check the asynchronous mode with auto-flush works
-  #@TestPreamble         none
-  #@TestStep                 Set the Access Logger's properties to be an asynchronous mode
-  #@TestStep                 Set the auto-flush to TRUE
-    #@TestStep                 Set the append property to false
-    #@TestStep                 Configure the Size Limit rotation policy with a Max size to 1mb
-    #@TestStep                 Execute ldapsearch request until the log are writen in the disk
-  #@TestPostamble         none
-  #@TestResult               The recors must be written to disk after each operation
-      -->
-<!-- #################################### -->
-                               
-    
-<testcase name="'logging : Synchronous mode- auto-flush=true :  Access logger '">
-
-  <sequence>
-    <call function="'testCase_Preamble'"/>
-  <message>
-        '----  Check the Synchronous mode for Access loggers -----'
-    </message>      
-   
-                   
-  <message>
-    '  asynchronous:false  -  auto-flush:true  -  append:false -  buffer-size:20kb '
-  </message>      
-
-     
-  <message>'------  set properties --' </message>
-    <call function="'dsconfig'">
-      { 'dsInstanceHost'       : DIRECTORY_INSTANCE_HOST,
-        'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-        'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
-        'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD ,
-        'subcommand'           : 'set-log-publisher-prop' ,    
-        'objectType'              : 'publisher-name' ,
-        'objectName'             :  'File-Based Access Logger',
-        'optionsString'           : '--set auto-flush:true --set append:false --set asynchronous:false --set buffer-size:20kb',
-        'expectedRC'             : 0 } 
-    </call>
-
-    <call function="'dsconfig'">
-      { 'dsInstanceHost'       : DIRECTORY_INSTANCE_HOST,
-        'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-        'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
-        'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD ,
-        'subcommand'           : 'set-log-rotation-policy-prop' ,    
-        'objectType'              : 'policy-name' ,
-        'objectName'             :  'Size Limit Rotation Policy',
-        'optionsString'           : '--set file-size-limit:1mb',
-        'expectedRC'             : 0 } 
-    </call>
-     
-   <!--  Starting loop -->       
-   <script>  
-          listName=[]
-          listSize=[]
-   </script>     
-   <script>
-     cpt=0
-     </script>  
-     
-   <!--  Execute ldapsearch until logs are written to disk -->
-   <!-- as auto-flush is true, the logs must be written after each operation  -->
-   <loop from="1" to="5" until="RC != 0">
-     <sequence>
-         <message>'###########################'</message>       
-     <message>'                  LOOP %s :' % cpt </message>
-     <message>'###########################'</message>
-        <message>'--- Execute a Search request ---'</message>  
-
-          <call function="'ldapSearchWithScript'">
-    { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-      'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,     
-          'dsBaseDN'         : DIRECTORY_INSTANCE_SFX,  
-      'dsInstanceDn'   :  DIRECTORY_INSTANCE_DN,
-          'dsInstancePswd'   :     DIRECTORY_INSTANCE_PSWD,
-      'dsFilter'    : 'objectclass=*'  ,
-          'dsScope'                 : 'base',
-          'expectedRC'           :  0 }           
-          </call>    
-
-
-        <call function="'dsconfigGet'">
-        { 'dsInstanceHost'       : DIRECTORY_INSTANCE_HOST,
-        'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-        'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
-        'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD ,
-        'objectName'             : 'log-publisher' ,
-        'propertyType'           : 'publisher' ,
-        'propertyName'           : 'File-Based Access Logger',
-        'attributeName'          : 'rotation-policy-dn'      
-      }
-         </call>        
-                       
-        <message>'--- Check log files ---'</message>  
-          <call function="'listFolder'">
-          { 'location' : '%s' % (DIRECTORY_INSTANCE_HOST),
-           'foldername' : '%s/%s/logs' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME),
-           'filename' : 'access'
-           }
-    </call>    
-       
-      <if expr="len(cmdResult) > 0">
-        <sequence>                  
-          <iterate var="result" in="cmdResult">
-       <sequence>
-         <script>
-           logname=result["name"]
-           logsize=result["size"]
-           found=0
-         </script>
-         <message>'log file status for file  %s is %s ' % (logname,logsize)</message>
-         <script>   
-           for currentLog in listName:
-               if currentLog == logname:
-                  found=1
-                  currentIndex=listName.index(currentLog)
-                  currentSize=listSize[currentIndex]
-                  if currentSize != logsize:
-                      RC=1
-                      listSize[currentIndex]=logsize
-                      break
-              
-          if found == 0:
-             listName.append(logname)
-             listSize.append(logsize)  
-         </script>
-       </sequence>    
-    </iterate>
-    </sequence>
-      </if>    
-        <message>'The new log file status is : %s : %s' % (listName,listSize)</message>       
-     <script>
-       cpt=cpt+1
-     </script>   
-     </sequence>   
-     </loop>  
-   <message>'The log file status of the file "%s" has changed ' % logname</message> 
-
-   <!-- Check log file -->
-   <!-- records must be writen after each operation -->   
-   <!-- we should exit the loop after the first ldapsearch -->  
-   <if expr="cpt != 2">
-     <sequence>
-     <message>'ERROR.  The writer are not flushed after every log records'</message>     
-         <call function="'testFailed'"/>     
-     </sequence>
-   <else>
-      <sequence>
-      <message>'SUCCESS. The writer are flushed after every log records' </message>
-          <call function="'testPassed'"/>     
-          </sequence>        
-   </else>   
-   </if>
-       
-  </sequence>
- </testcase>
-
-
-<!-- #################################### -->
-<!--
-  #@TestMarker            Debug logger
-  #@TestName              Debug logger properties check
-  #@TestIssue                   
-  #@TestPurpose          Basic tests on the Debug logger
-  #@TestPreamble        none
-  #@TestStep                Enabled the Debug  Logger
-  #@TestStep                Define a spefic log file for debug message 
-    #@TestStep                set the debug-log-level to All
-    #@TestStep                Restart the server
-    #@TestStep                Execute a ldapsearch request
-  #@TestPostamble         none
-  #@TestResult              Check the debug log file has been created and contains datas
-      -->
-<!-- #################################### -->
-            
-  
-<testcase name="'logging :   basic tests on Debug logger '">
-
-  <sequence>
-    <call function="'testCase_Preamble'"/>
-  <message>
-        '----  Basic tests on Debug loggers -----'
-    </message>      
-     
-  <message>'------  Enabled Debug logger --' </message>
-    <call function="'dsconfig'">
-      { 'dsInstanceHost'       : DIRECTORY_INSTANCE_HOST,
-        'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-        'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
-        'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD ,
-        'subcommand'           : 'set-log-publisher-prop' ,    
-        'objectType'              : 'publisher-name' ,
-        'objectName'             :  'File-Based Debug Logger',
-        'optionsString'           : '--set enabled:true --set default-debug-level:all --set log-file:logs/mydebug',
-        'expectedRC'             : 0 } 
-    </call>       
-               
-    <call function="'RestartDs'">
-    {   'dsHost'    : DIRECTORY_INSTANCE_HOST,
-             'dsPort'    : DIRECTORY_INSTANCE_PORT,
-             'dsBindDN'  : DIRECTORY_INSTANCE_DN,
-             'dsBindPwd' : DIRECTORY_INSTANCE_PSWD }
-     </call>
-
-     <message>'--- Check log files ---'</message>  
-     <call function="'listFolder'">
-          { 'location' : '%s' % (DIRECTORY_INSTANCE_HOST),
-           'foldername' : '%s/%s/logs' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME),
-           'filename' : 'mydebug'
-           }
-   </call>
-
-   <script>
-     error=0
-     </script> 
-   <if expr="len(cmdResult) == 0">                               
-     <sequence>
-     <message>'ERROR.  The Debug logger should be created'</message>     
+  <defaultcall function="logging_writer"/>
+  <function name="logging_writer" scope="local">
+    <sequence>
       <script>
-        error=1
-        </script>            
-     </sequence>
-   <else>
-      <sequence>
-             <iterate var="result" in="cmdResult">
+        CurrentTestPath['suite']=STAXCurrentFunction
+      </script>
+      <call function="'testSuite_Preamble'"/>
+      <!-- #################################### -->
+      <!--
+        #@TestMarker      access logger
+        #@TestName        access logger properties check
+        #@TestIssue       
+        #@TestPurpose     check the asynchronous mode with auto-flush works
+        #@TestPreamble    none
+        #@TestStep        Set the Access Logger's properties to be an asynchronous mode
+        #@TestStep        Set the auto-flush to TRUE
+        #@TestStep        Set the append property to false
+        #@TestStep        Configure the Size Limit rotation policy with a Max size to 1mb
+        #@TestStep        Execute ldapsearch request until the log are writen in the disk
+        #@TestPostamble   none
+        #@TestResult      The recors must be written to disk after each operation
+            -->
+      <!-- #################################### -->
+      <testcase name="getTestCaseName('Synchronous mode- auto-flush=true - Access logger')">
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+            '----  Check the Synchronous mode for Access loggers -----'
+          </message>
+          <message>
+            '  asynchronous:false  -  auto-flush:true  -  append:false -  buffer-size:20kb '
+          </message>
+          <message>'------  set properties --' </message>
+          <call function="'dsconfig'">
+            { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+              'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+              'dsInstanceDn'   : DIRECTORY_INSTANCE_DN ,
+              'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
+              'subcommand'     : 'set-log-publisher-prop',
+              'objectType'     : 'publisher-name',
+              'objectName'     :  'File-Based Access Logger',
+              'optionsString'  : '--set auto-flush:true --set append:false --set asynchronous:false --set buffer-size:20kb',
+              'expectedRC'     : 0
+            }
+          </call>
+          
+          <call function="'dsconfig'">
+            { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+              'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
+              'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
+              'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+              'subcommand'     : 'set-log-rotation-policy-prop',
+              'objectType'     : 'policy-name',
+              'objectName'     : 'Size Limit Rotation Policy',
+              'optionsString'  : '--set file-size-limit:1mb',
+              'expectedRC'     : 0
+            } 
+          </call>
+          
+          <!--  Starting loop -->
+          <script>
+            listName=[]
+            listSize=[]
+            cpt=0
+          </script>
+          
+          <!--  Execute ldapsearch until logs are written to disk -->
+          <!-- as auto-flush is true, the logs must be written after each operation  -->
+          <loop from="1" to="5" until="RC != 0">
             <sequence>
-           <script>      
-           logsize=result["size"]
-                 </script>    
+              <message>'###########################'</message>       
+              <message>'                  LOOP %s :' % cpt </message>
+              <message>'###########################'</message>
+              <message>'--- Execute a Search request ---'</message>  
               
-           <if expr="logsize == 0">
-                   <sequence>
-                      <message>'ERROR.  The Debug logger should contain data'</message>      
+              <call function="'ldapSearchWithScript'">
+                { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+                  'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
+                  'dsBaseDN'       : DIRECTORY_INSTANCE_SFX,
+                  'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
+                  'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+                  'dsFilter'       : 'objectclass=*',
+                  'dsScope'        : 'base',
+                  'expectedRC'     : 0
+                }
+              </call>
+              
+              <call function="'dsconfigGet'">
+                { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+                  'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
+                  'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
+                  'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+                  'objectName'     : 'log-publisher',
+                  'propertyType'   : 'publisher',
+                  'propertyName'   : 'File-Based Access Logger',
+                  'attributeName'  : 'rotation-policy-dn'
+                }
+              </call>
+              
+              <message>'--- Check log files ---'</message>  
+              <call function="'listFolder'">
+                { 'location'   : '%s' % (DIRECTORY_INSTANCE_HOST),
+                  'foldername' : '%s/%s/logs' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME),
+                  'filename'   : 'access'
+                 }
+              </call>
+              
+              <if expr="len(cmdResult) > 0">
+                <sequence>                  
+                  <iterate var="result" in="cmdResult">
+                    <sequence>
                       <script>
-              error=1
-              </script>             
-                   </sequence>          
-           </if>    
-             </sequence>    
-       </iterate>   
-         </sequence>
-   </else>   
-   </if>  
+                        logname=result["name"]
+                        logsize=result["size"]
+                        found=0
+                      </script>
+                      <message>
+                        'log file status for file  %s is %s ' % (logname,logsize)
+                      </message>
+                      <script>
+                        for currentLog in listName:
+                          if currentLog == logname:
+                            found=1
+                            currentIndex=listName.index(currentLog)
+                            currentSize=listSize[currentIndex]
+                            if currentSize != logsize:
+                              RC=1
+                              listSize[currentIndex]=logsize
+                              break
+                          
+                        if found == 0:
+                          listName.append(logname)
+                          listSize.append(logsize)
+                      </script>
+                    </sequence>
+                  </iterate>
+                </sequence>
+              </if>
+              <message>
+                'The new log file status is : %s : %s' % (listName,listSize)
+              </message>
+              <script>
+                cpt=cpt+1
+              </script>
+            </sequence>
+          </loop>
+          <message>
+            'The log file status of the file "%s" has changed ' % logname
+          </message>
+          
+          <!-- Check log file -->
+          <!-- records must be writen after each operation -->
+          <!-- we should exit the loop after the first ldapsearch -->
+          <if expr="cpt != 2">
+            <sequence>
+              <message>
+                'ERROR.  The writer are not flushed after every log records'
+              </message>
+              <call function="'testFailed'"/>
+            </sequence>
+            <else>
+              <sequence>
+                <message>
+                  'SUCCESS. The writer are flushed after every log records'
+                </message>
+                <call function="'testPassed'"/>
+              </sequence>
+            </else>
+          </if>
+        </sequence>
+      </testcase>
+      
+      <!-- #################################### -->
+      <!--
+          #@TestMarker       Debug logger
+          #@TestName         Debug logger properties check
+          #@TestIssue        
+          #@TestPurpose      Basic tests on the Debug logger
+          #@TestPreamble     none
+          #@TestStep         Enabled the Debug  Logger
+          #@TestStep         Define a spefic log file for debug message 
+          #@TestStep         set the debug-log-level to All
+          #@TestStep         Restart the server
+          #@TestStep         Execute a ldapsearch request
+          #@TestPostamble    none
+          #@TestResult       Check the debug log file has been created and contains datas
+            -->
+      <!-- #################################### -->
+      
+      <testcase name="getTestCaseName('basic tests on Debug logger')">
+        <sequence>
+          <call function="'testCase_Preamble'"/>
+          <message>
+            '----  Basic tests on Debug loggers -----'
+          </message>
+          
+          <message>'------  Enabled Debug logger --' </message>
+          <call function="'dsconfig'">
+            { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+              'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
+              'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
+              'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+              'subcommand'     : 'set-log-publisher-prop',
+              'objectType'     : 'publisher-name',
+              'objectName'     :  'File-Based Debug Logger',
+              'optionsString'  : '--set enabled:true --set default-debug-level:all --set log-file:logs/mydebug',
+              'expectedRC'     : 0
+            }
+          </call>
+          
+          <call function="'RestartDs'">
+            { 'dsHost'    : DIRECTORY_INSTANCE_HOST,
+              'dsPort'    : DIRECTORY_INSTANCE_PORT,
+              'dsBindDN'  : DIRECTORY_INSTANCE_DN,
+              'dsBindPwd' : DIRECTORY_INSTANCE_PSWD
+            }
+          </call>
+          <message>'--- Check log files ---'</message>  
+          <call function="'listFolder'">
+            { 'location'   : '%s' % DIRECTORY_INSTANCE_HOST,
+              'foldername' : '%s/%s/logs' % (DIRECTORY_INSTANCE_DIR,OPENDSNAME),
+              'filename'   : 'mydebug'
+            }
+          </call>
 
-   <if expr="error == 0">
-     <sequence>
-         <call function="'testPassed'"/>      
-         </sequence>
-     <else>
-         <sequence>     
-         <call function="'testFailed'"/>            
-         </sequence>            
-     </else>     
-   </if>       
-  </sequence>
- </testcase>  
-        
-</sequence>
-</function>
-
+          <script>
+           error=0
+          </script> 
+          <if expr="len(cmdResult) == 0">                               
+            <sequence>
+              <message>'ERROR.  The Debug logger should be created'</message>     
+              <script>
+                error=1
+              </script>
+            </sequence>
+            <else>
+              <sequence>
+                <iterate var="result" in="cmdResult">
+                  <sequence>
+                    <script>
+                      logsize=result["size"]
+                    </script>
+                    <if expr="logsize == 0">
+                      <sequence>
+                        <message>'ERROR.  The Debug logger should contain data'</message>      
+                        <script>
+                          error=1
+                        </script>
+                      </sequence>
+                    </if>
+                  </sequence>
+                </iterate>
+              </sequence>
+            </else>
+          </if>
+          
+          <if expr="error == 0">
+            <call function="'testPassed'"/>
+            <else>
+              <call function="'testFailed'"/>
+            </else>
+          </if>
+        </sequence>
+      </testcase>
+    </sequence>
+  </function>
 </stax>

--
Gitblit v1.10.0