ports.xml revision d25372dc8e65a9ed019a88fdf659ca61313f1b31
<?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 2008 Sun Microsystems, Inc.
! -->
<stax>
<defaultcall function="ports"/>
<function name="ports">
<sequence>
<!--- Test Suite information
#@TestSuiteName Setup-Uninstall ports Tests
#@TestSuitePurpose Test all port relative setup and uninstall
options (port conflict, access right on port,
...)
#@TestSuiteGroup ports
#@TestSuiteID ports Tests
#@TestGroup Setup-Uninstall
#@TestScript ports.xml
#@TestHTMLLink http://opends.dev.java.net/
-->
<script>
if not CurrentTestPath.has_key('group'):
CurrentTestPath['group'] = 'setup'
CurrentTestPath['suite'] = 'ports'
</script>
<call function="'testSuite_Preamble'"/>
<script>
STAF_PORT = 6500
</script>
<call function="'getFreePort'">
{
'host' : STAF_REMOTE_HOSTNAME,
'port' : 3000,
}
</call>
<script>FREE_PORT_1 = STAXResult</script>
<call function="'getFreePort'">
{
'host' : STAF_REMOTE_HOSTNAME,
'port' : 4000,
}
</call>
<script>FREE_PORT_2 = STAXResult</script>
<message>
'Got 2 free ports: %s and %s' % (FREE_PORT_1, FREE_PORT_2)
</message>
<!--- Test Case information
#@TestMarker Setup-Uninstall ports Tests
#@TestName Setup-Uninstall: Ports:
ldap-port-conflict
#@TestID ldap-port-conflict
#@TestPurpose Setup OpenDS, specifying a used LDAP port
#@TestPreamble
#@TestStep Setup OpenDS, specifying a used LDAP port
Check for error
#@TestPostamble
#@TestResult PASS if all steps ran without errors
-->
<testcase name="getTestCaseName('ldap-port-conflict')">
<sequence>
<call function="'testCase_Preamble'"/>
<message>'Ports: LDAP port conflict'</message>
<script>
c = '%s/%s/setup%s' % (ODS_UNZIPPED, OPENDSNAME, fileExt)
p = []
p.append('--cli --no-prompt --rootUserPassword kangourou')
p.append('--ldapPort %s' % STAF_PORT)
p = ' '.join(p)
</script>
<message>'%s %s' % (c, p)</message>
<call function="'runCommand'">
{ 'location' : STAF_REMOTE_HOSTNAME,
'name' : 'Launch setup command with LDAP port conflict',
'command' : c,
'arguments' : p,
'path' : ODS_UNZIPPED,
'expectedRC': 2,
'outputFile': '%s/ports-setup-ldap-conflict.txt' % OUT_GROUP,
}
</call>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
<!--- Test Case information
#@TestMarker Setup-Uninstall ports Tests
#@TestName Setup-Uninstall: Ports:
ldaps-port-conflict
#@TestID ldaps-port-conflict
#@TestPurpose Setup OpenDS, specifying a used LDAPS port
#@TestPreamble
#@TestStep Setup OpenDS, specifying a used LDAPS port
Check for error
#@TestPostamble
#@TestResult PASS if all steps ran without errors
-->
<testcase name="getTestCaseName('ldaps-port-conflict')">
<sequence>
<call function="'testCase_Preamble'"/>
<message>'Ports: LDAPS port conflict'</message>
<script>
c = '%s/%s/setup%s' % (ODS_UNZIPPED, OPENDSNAME, fileExt)
p = []
p.append('--cli --no-prompt --rootUserPassword kangourou')
p.append('--ldapPort %s' % FREE_PORT_1)
p.append('--ldapsPort %s' % STAF_PORT)
p.append('--generateSelfSignedCertificate')
p = ' '.join(p)
</script>
<message>'%s %s' % (c, p)</message>
<call function="'runCommand'">
{ 'location' : STAF_REMOTE_HOSTNAME,
'name' : 'Launch setup command with LDAPS port conflict',
'command' : c,
'arguments' : p,
'path' : ODS_UNZIPPED,
'expectedRC': 2,
'outputFile': '%s/ports-setup-ldaps-conflict.txt' % OUT_GROUP,
}
</call>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
<!--- Test Case information
#@TestMarker Setup-Uninstall ports Tests
#@TestName Setup-Uninstall: Ports:
jmx-port-conflict
#@TestID jmx-port-conflict
#@TestPurpose Setup OpenDS, specifying a used JMX port
#@TestPreamble
#@TestStep Setup OpenDS, specifying a used JMX port
Check for error
#@TestPostamble
#@TestResult PASS if all steps ran without errors
-->
<testcase name="getTestCaseName('jmx-port-conflict')">
<sequence>
<call function="'testCase_Preamble'"/>
<message>'Ports: JMX port conflict'</message>
<script>
c = '%s/%s/setup%s' % (ODS_UNZIPPED, OPENDSNAME, fileExt)
p = []
p.append('--cli --no-prompt --rootUserPassword kangourou')
p.append('--ldapPort %s' % FREE_PORT_1)
p.append('--jmxPort %s' % STAF_PORT)
p = ' '.join(p)
</script>
<message>'%s %s' % (c, p)</message>
<call function="'runCommand'">
{ 'location' : STAF_REMOTE_HOSTNAME,
'name' : 'Launch setup command with JMX port conflict',
'command' : c,
'arguments' : p,
'path' : ODS_UNZIPPED,
'expectedRC': 2,
'outputFile': '%s/ports-setup-jmx-conflict.txt' % OUT_GROUP,
}
</call>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
<!--- Test Case information
#@TestMarker Setup-Uninstall ports Tests
#@TestName Setup-Uninstall: Ports:
ldap-port-conflict-nocheck
#@TestID ldap-port-conflict-nocheck
#@TestPurpose Setup OpenDS, disabling the LDAP port check
#@TestPreamble
#@TestStep Unzip OpenDS ZIP distribution
Setup OpenDS with 'skipPortCheck' and 'doNotStart'
options
Uninstall OpenDS
#@TestPostamble
#@TestResult PASS if all steps ran without errors
-->
<testcase name="getTestCaseName('ldap-port-conflict-nocheck')">
<sequence>
<script>
PORTS_I1_BASE = '%s/ports_i1' % (OUT_GROUP)
PORTS_I1_ROOT = '%s/%s' % (PORTS_I1_BASE, OPENDSNAME)
</script>
<call function="'testCase_Preamble'"/>
<message>'Ports: '</message>
<!-- 1. Setup options: baseDN baseDN sampleData -->
<message>'Prepare Open DS ZIP (in %s)' % PORTS_I1_ROOT</message>
<call function="'runSTAFCommand'">
{ 'name' : 'Create directory to contain I1',
'location' : STAF_REMOTE_HOSTNAME,
'service' : 'FS',
'request' : 'CREATE',
'arguments' : 'DIRECTORY %s FAILIFEXISTS' % PORTS_I1_BASE
}
</call>
<call function="'checktestRC'">
{ 'returncode' : RC,
'expected' : 0,
'result' : 'FAIL to create directory',
}
</call>
<call function="'runSTAFCommand'">
{ 'name' : 'Extract OpenDS ZIP file',
'location' : STAF_REMOTE_HOSTNAME,
'service' : 'ZIP',
'request' : 'UNZIP',
'arguments' : 'ZIPFILE %s/%s TODIRECTORY %s RESTOREPERMISSION' \
% (DIRECTORY_INSTANCE_DIR, ZIPNAME, PORTS_I1_BASE)
}
</call>
<call function="'checktestRC'">
{ 'returncode' : RC,
'expected' : 0,
'result' : 'FAIL to unzip OpenDS ZIP file',
}
</call>
<script>
c = '%s/setup%s' % (PORTS_I1_ROOT, fileExt)
p = []
p.append('--cli --no-prompt --ldapPort %s' % (STAF_PORT))
p.append('--rootUserPassword "kangourou"')
p.append('--skipPortCheck --doNotStart --noPropertiesFile')
p = ' '.join(p)
</script>
<message>'%s %s' % (c, p)</message>
<call function="'runCommand'">
{ 'location' : STAF_REMOTE_HOSTNAME,
'name' : 'Setup command for I1 (port conflict but nocheck)',
'command' : c,
'arguments' : p,
'path' : PORTS_I1_ROOT,
'expectedRC': 0,
'outputFile': '%s/ports-setup-confl-nocheck-i1.txt' % OUT_GROUP,
}
</call>
<script>
c = '%s/%s/start-ds%s' % (PORTS_I1_ROOT, fileFolder, fileExt)
p = []
p = ' '.join(p)
</script>
<message>'%s %s' % (c, p)</message>
<call function="'runCommand'">
{ 'location' : STAF_REMOTE_HOSTNAME,
'name' : 'start DS (will raise port conflict)',
'command' : c,
'arguments' : p,
'path' : PORTS_I1_ROOT,
'expectedRC': 1,
'outputFile': '%s/ports-start-conflict-i1.txt' % OUT_GROUP,
}
</call>
<script>
c = '%s/uninstall%s' % (PORTS_I1_ROOT, fileExt)
p = []
p.append('--cli --no-prompt')
p.append('--quiet --forceOnError --remove-all')
p.append('--referencedHostName %s' % STAF_REMOTE_HOSTNAME)
p = ' '.join(p)
</script>
<message>'%s %s' % (c, p)</message>
<call function="'runCommand'">
{ 'location' : STAF_REMOTE_HOSTNAME,
'name' : 'Uninstall I1',
'command' : c,
'arguments' : p,
'path' : PORTS_I1_ROOT,
'expectedRC': 0,
'outputFile': '%s/ports-uninstall-conflict-i1.txt' % OUT_GROUP,
}
</call>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
<!--- Test Case information
#@TestMarker Setup-Uninstall ports Tests
#@TestName Setup-Uninstall: Ports:
ldap-port-unauthorized
#@TestID ldap-port-unauthorized
#@TestPurpose Setup OpenDS, specifying a forbidden LDAP port
#@TestPreamble
#@TestStep Setup OpenDS with forbidden port number
Check for error
#@TestPostamble
#@TestResult PASS if all steps ran without errors
-->
<testcase name="getTestCaseName('ldap-port-unauthorized')">
<sequence>
<call function="'testCase_Preamble'"/>
<message>'Ports: Unauthorized LDAP port'</message>
<script>
c = '%s/%s/setup%s' % (ODS_UNZIPPED, OPENDSNAME, fileExt)
p = []
p.append('--cli --no-prompt --rootUserPassword kangourou')
p.append('--ldapPort 1')
p = ' '.join(p)
</script>
<message>'%s %s' % (c, p)</message>
<call function="'runCommand'">
{ 'location' : STAF_REMOTE_HOSTNAME,
'name' : 'Launch setup command with unauthorized LDAP port',
'command' : c,
'arguments' : p,
'path' : ODS_UNZIPPED,
'expectedRC': 2,
'outputFile': '%s/ports-unauthorized-ldap.txt' % OUT_GROUP,
}
</call>
<!--- Temporary fix to avoid remaning processes
when this testcase fails -->
<script>
cmd = '%s/%s/%s/stop-ds%s' \
% (ODS_UNZIPPED, OPENDSNAME, fileFolder, fileExt)
</script>
<if expr="os.path.exists(cmd)" >
<sequence>
<message>'Stop instance'</message>
<call function="'StopDsWithScript'">
{ 'location' : STAF_REMOTE_HOSTNAME,
'dsPath' : '%s/%s' % (ODS_UNZIPPED, OPENDSNAME),
'dsAdminPort' : 1,
'dsBindDN' : 'cn=Directory Manager' ,
'dsBindPwd' : 'kangourou' ,
'expectedRC' : 'noCheck'
}
</call>
</sequence>
</if>
<call function="'testCase_Postamble'"/>
</sequence>
</testcase>
<call function="'testSuite_Postamble'"/>
</sequence>
</function>
</stax>