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

maudj
09.20.2009 c8e5b6107aad472470cbf60206ede4d2a6695c88
updates and some new tests - maudj
2 files added
1 files modified
529 ■■■■■ changed files
opends/tests/staf-tests/functional-tests/testcases/backends/backends.xml 2 ●●● patch | view | raw | blame | history
opends/tests/staf-tests/functional-tests/testcases/backends/restore/restore.xml 136 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/functional-tests/testcases/backends/restore/restore_tests.xml 391 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/functional-tests/testcases/backends/backends.xml
@@ -57,6 +57,7 @@
            suiteList.append('export')
            suiteList.append('export-tasks')
            suiteList.append('backup')
            suiteList.append('restore')
          </script>
          <!-- Run the test suites -->
@@ -91,7 +92,6 @@
          <script>
            suiteList = []
            suiteList.append('backup-tasks')
            suiteList.append('restore')
            suiteList.append('restore-tasks')
          </script>
opends/tests/staf-tests/functional-tests/testcases/backends/restore/restore.xml
New file
@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd">
<!--
 ! CDDL HEADER START
 !
 ! The contents of this file are subject to the terms of the
 ! Common Development and Distribution License, Version 1.0 only
 ! (the "License").  You may not use this file except in compliance
 ! with the License.
 !
 ! You can obtain a copy of the license at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
 ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 ! See the License for the specific language governing permissions
 ! and limitations under the License.
 !
 ! When distributing Covered Code, exclude this CDDL HEADER in each
 ! file and exclude the License file at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 ! add the following below this CDDL HEADER, with the fields enclosed
 ! by brackets "[]" replaced with your own identifying information:
 !      Portions Copyright [yyyy] [name of copyright owner]
 !
 ! CDDL HEADER END
 !
 !      Copyright 2009 Sun Microsystems, Inc.
 ! -->
<stax>
  <defaultcall function="main_restore"/>
  <function name="main_restore" scope="local">
    <sequence>
      <block name="'main_restore'">
        <try>
          <sequence>
            <script>
              CurrentTestPath['group']='backends'
              CurrentTestPath['suite']='restore'
              __group=CurrentTestPath['group']
              __groupdir='%s/testcases/%s' % (TESTS_DIR,__group)
            </script>
            <!--- Test Suite information
              #@TestSuiteName       Backend Restore Tests
              #@TestSuitePurpose    Verify that the basic restore functionality is working in the Directory Server.
              #@TestSuiteID         restore Tests
              #@TestSuiteGroup      restore
              #@TestGroup           Backend
              #@TestScript          restore.xml
              #@TestHTMLLink        http://opends.dev.java.net/
            -->
            <call function="'testSuite_Preamble'" />
            <try>
              <sequence>
                <call function="'common_setup'">
                  {
                    'quickStart'  : False ,
                    'startServer' : True ,
                    'loadData'    : True ,
                    'ldifFile'    : '%s/backends/backend_start.ldif' % remote.data ,
                    'stopServer'  : False
                  }
                </call>
                <!-- List of restore of Test Functions -->
                <script>
                  restoreList=[]
                  restoreList.append('restore/restore_tests')
                </script>
                <!-- Import the files for this test suite -->
                <iterate var="__restore" in="restoreList">
                  <import machine="STAF_LOCAL_HOSTNAME"
                    file="'%s/%s.xml' % (__groupdir,__restore)"/>
                </iterate>
                <!-- List of Test Cases -->
                <script>
                  testsList=[]
                  testsList.append('backends_restore_001')
                  testsList.append('backends_restore_002')
                  testsList.append('backends_restore_003')
                </script>
                <!-- Execute the Tests -->
                <iterate var="__test" in="testsList">
                  <sequence>
                    <call function="'%s' % (__test)" />
                  </sequence>
                </iterate>
              </sequence>
            <catch exception="'STAFException.TestSuite.SetupException'">
              <sequence>
                <message log="1" level="'fatal'">
                  'Setup of test suite failed.'
                </message>
                <rethrow/>
              </sequence>
            </catch>
            <finally>
              <message>'Test Cases Completed.'</message>
            </finally>
            </try>
          </sequence>
          <finally>
            <sequence>
              <!-- Test Suite Cleanup -->
              <message>'Finally: Global Restore Cleanup.'</message>
              <try>
                <call function="'common_cleanup'" />
              <catch exception="'STAFException'">
                <sequence>
                  <message log="1" level="'fatal'">'Cleanup of test suite failed.'</message>
                </sequence>
              </catch>
              <finally>
                <call function="'testSuite_Postamble'"/>
              </finally>
              </try>
            </sequence>
          </finally>
        </try>
      </block>
    </sequence>
  </function>
</stax>
opends/tests/staf-tests/functional-tests/testcases/backends/restore/restore_tests.xml
New file
@@ -0,0 +1,391 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd">
<!--
 ! CDDL HEADER START
 !
 ! The contents of this file are subject to the terms of the
 ! Common Development and Distribution License, Version 1.0 only
 ! (the "License").  You may not use this file except in compliance
 ! with the License.
 !
 ! You can obtain a copy of the license at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
 ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
 ! See the License for the specific language governing permissions
 ! and limitations under the License.
 !
 ! When distributing Covered Code, exclude this CDDL HEADER in each
 ! file and exclude the License file at
 ! trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
 ! add the following below this CDDL HEADER, with the fields enclosed
 ! by brackets "[]" replaced with your own identifying information:
 !      Portions Copyright [yyyy] [name of copyright owner]
 !
 ! CDDL HEADER END
 !
 !      Copyright 2009 Sun Microsystems, Inc.
 ! -->
<stax>
  <!--- Test Case information
  #@TestMarker          Backend Restore Tests
  #@TestName            Export: Restore 001
  #@TestID              Restore 001
  #@TestPurpose         Restore data to OpenDS.
  #@TestPreamble
  #@TestSteps           Client calls restore with the parameters
                        default backendID, and backupDirectory
  #@TestPostamble
  #@TestResult Success if restore returns 0
  -->
  <function name="backends_restore_001" scope="local">
    <testcase name="getTestCaseName('Restore data')">
      <try>
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
            'Backend Restore 001: Create a backup of the data in OpenDS'
          </message>
          <call function="'backup'">
            { 'backupDir' : '%s/backends/backup1' % remote.data
            }
          </call>
          <message>
            'Backend Restore 001: Restore data to OpenDS'
          </message>
          <!-- Stop DS -->
          <call function="'StopDsWithScript'">
            { 'location'    : STAF_REMOTE_HOSTNAME,
              'dsHost'      : DIRECTORY_INSTANCE_HOST,
              'dsAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
              'dsBindDN'    : DIRECTORY_INSTANCE_DN,
              'dsBindPwd'   : DIRECTORY_INSTANCE_PSWD
            }
          </call>
          <call function="'restore'">
            { 'backupDir' : '%s/backends/backup1' % remote.data
            }
          </call>
          <!-- Start DS -->
          <message>
            'Backend Restore 001: Start DS to run on port %s' % DIRECTORY_INSTANCE_PORT
          </message>
          <call function="'StartDsWithScript'">
            { 'location'  : STAF_REMOTE_HOSTNAME }
          </call>
          <!--- Check that DS started -->
          <call function="'isAlive'">
            { 'noOfLoops'        : 10 ,
              'noOfMilliSeconds' : 2000
            }
          </call>
        </sequence>
        <catch exception="'STAXException.*'" typevar="eType" var="eInfo">
          <message log="1" level="'fatal'">
            '%s: Test failed. eInfo(%s)' % (eType,eInfo)
          </message>
        </catch>
        <finally>
          <call function="'testCase_Postamble'"/>
        </finally>
      </try>
    </testcase>
  </function>
  <!--- Test Case information
  #@TestMarker          Backend Restore Tests
  #@TestName            Export: Restore 002
  #@TestID              Restore 002
  #@TestPurpose         Restore compressed data to OpenDS.
  #@TestPreamble
  #@TestSteps           Client calls restore with the parameters
                        default backendID, backupDirectory, and uncompress
                        is automatically done
  #@TestPostamble
  #@TestResult Success if restore returns 0
  -->
  <function name="backends_restore_002" scope="local">
    <testcase name="getTestCaseName('Restore compressed data')">
      <try>
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
            'Backend Restore 002: Create a compressed backup of the data in OpenDS'
          </message>
          <call function="'backup'">
            { 'backupDir'       : '%s/restore.compressed' % remote.data ,
              'extraParams'        : '-c'
            }
          </call>
          <message>
            'Backend Restore 002: ldapdelete: delete an entry uid=dcope'
          </message>
          <call function="'ldapSearchWithScript'">
            {
            'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
            'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
            'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
            'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
            'dsCountEntries'   : 'True' ,
            'dsBaseDN'         : 'dc=com' ,
            'dsFilter'         : 'uid=dcope' ,
            'expectedRC'       : 0
            }
          </call>
          <script>
            returnString = STAXResult[0][1]
          </script>
          <call function="'checktestString'">
            {
            'returnString'     : returnString ,
            'expectedString'   : '# Total number of matching entries: 1'
            }
          </call>
          <call function="'ldapDeleteWithScript'">
            {
            'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
            'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
            'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
            'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
            'dsDn'             : ['uid=dcope,ou=People,o=backend tests,dc=com'] ,
            'expectedRC'       : 0
            }
          </call>
          <call function="'ldapSearchWithScript'">
            {
            'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
            'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
            'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
            'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
            'dsCountEntries'   : 'True' ,
            'dsBaseDN'         : 'dc=com' ,
            'dsFilter'         : 'uid=dcope' ,
            'expectedRC'       : 0
            }
          </call>
          <script>
            returnString = STAXResult[0][1]
          </script>
          <call function="'checktestString'">
            {
            'returnString'     : returnString ,
            'expectedString'   : '# Total number of matching entries: 0'
            }
          </call>
          <!-- Stop DS -->
          <call function="'StopDsWithScript'">
            { 'location'    : STAF_REMOTE_HOSTNAME,
              'dsHost'      : DIRECTORY_INSTANCE_HOST,
              'dsAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
              'dsBindDN'    : DIRECTORY_INSTANCE_DN,
              'dsBindPwd'   : DIRECTORY_INSTANCE_PSWD
            }
          </call>
          <call function="'restore'">
            { 'backupDir'       : '%s/restore.compressed' % remote.data
            }
          </call>
          <!-- Start DS -->
          <message>
            'Backend Restore 002: Start DS to run on port %s' % DIRECTORY_INSTANCE_PORT
          </message>
          <call function="'StartDsWithScript'">
            { 'location'  : STAF_REMOTE_HOSTNAME }
          </call>
          <!--- Check that DS started -->
          <call function="'isAlive'">
            { 'noOfLoops'        : 10 ,
              'noOfMilliSeconds' : 2000
            }
          </call>
          <message>
            'Backend Restore 002: ldapsearch: check uid=dcope that was deleted is now present'
          </message>
          <call function="'ldapSearchWithScript'">
            {
            'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
            'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
            'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
            'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
            'dsCountEntries'   : 'True' ,
            'dsBaseDN'         : 'dc=com' ,
            'dsFilter'         : 'uid=dcope' ,
            'expectedRC'       : 0
            }
          </call>
          <script>
            returnString = STAXResult[0][1]
          </script>
          <call function="'checktestString'">
            {
            'returnString'     : returnString ,
            'expectedString'   : '# Total number of matching entries: 1'
            }
          </call>
        </sequence>
        <catch exception="'STAXException.*'" typevar="eType" var="eInfo">
          <message log="1" level="'fatal'">
            '%s: Test failed. eInfo(%s)' % (eType,eInfo)
          </message>
        </catch>
        <finally>
          <call function="'testCase_Postamble'"/>
        </finally>
      </try>
    </testcase>
  </function>
  <!--- Test Case information
  #@TestMarker          Backend Restore Tests
  #@TestName            Export: Restore 003
  #@TestID              Restore 003
  #@TestPurpose         Backup and Restore encrypted and hashed data to OpenDS.
  #@TestPreamble
  #@TestSteps           Client calls backup with the parameters -y, -A and -s,
                        restore with -X. Server must be online.
  #@TestPostamble
  #@TestResult Success if backup and restore return 0
  -->
  <function name="backends_restore_003" scope="local">
    <testcase name="getTestCaseName('Backup and Restore encrypted, hashed and signhashed data')">
      <try>
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
            'Backend Restore 003: Create an encrypted and signhashed backup of the data in OpenDS'
          </message>
          <call function="'backup'">
            { 'backupDir'           : '%s/backends/backup3' % remote.data ,
              'dsInstanceHost'      : DIRECTORY_INSTANCE_HOST ,
              'dsInstanceAdminPort' : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'        : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'      : DIRECTORY_INSTANCE_PSWD ,
              'extraParams'         : '-y -s' ,
              'expectedRC'          : 1
            }
          </call>
          <script>
            returnString = STAXResult[0][1]
          </script>
          <call function="'checktestString'">
            {
            'returnString'     : returnString ,
            'expectedString'   : 'The use of the signHash argument requires that the hash argument is also'
            }
          </call>
          <message>
            'Backend Restore 003: Create an encrypted, hashed and signhashed backup of the data in OpenDS'
          </message>
          <call function="'backup'">
            { 'backupDir'           : '%s/backends/backup3' % remote.data ,
              'dsInstanceHost'      : DIRECTORY_INSTANCE_HOST ,
              'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT ,
              'dsInstanceDn'        : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'      : DIRECTORY_INSTANCE_PSWD ,
              'extraParams'         : '-y -A -s'
            }
          </call>
          <message>
            'Backend Restore 003: Check Restore with -l'
          </message>
          <call function="'restore'">
            { 'backupDir'           : '%s/backends/backup3' % remote.data ,
              'extraParams'         : '-l' ,
              'knownIssue'          : '4203'
            }
          </call>
          <script>
            returnString = STAXResult[0][1]
          </script>
          <call function="'checktestString'">
            {
            'returnString'     : returnString ,
            'expectedString'   : 'Has Signed Hash:    true'
            }
          </call>
          <message>
            'Backend Restore 003: Restore data to OpenDS'
          </message>
          <call function="'restore'">
            { 'backupDir'           : '%s/backends/backup3' % remote.data ,
              'dsInstanceHost'      : DIRECTORY_INSTANCE_HOST ,
              'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT ,
              'dsInstanceDn'        : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'      : DIRECTORY_INSTANCE_PSWD ,
              'extraParams'         : '-X'
            }
          </call>
          <!--- Check that DS started -->
          <call function="'isAlive'">
            { 'noOfLoops'        : 10 ,
              'noOfMilliSeconds' : 2000
            }
          </call>
        </sequence>
        <catch exception="'STAXException.*'" typevar="eType" var="eInfo">
          <message log="1" level="'fatal'">
            '%s: Test failed. eInfo(%s)' % (eType,eInfo)
          </message>
        </catch>
        <finally>
          <call function="'testCase_Postamble'"/>
        </finally>
      </try>
    </testcase>
  </function>
</stax>