<?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, include this CDDL HEADER in each
|
! file and include 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
|
!
|
! Portions Copyright 2007-2008 Sun Microsystems, Inc.
|
! -->
|
<stax>
|
<defaultcall function="sample" />
|
<function name="sample">
|
<sequence>
|
<script>
|
CurrentTestPath['group']= 'sample'
|
envAlreadyLoaded='true'
|
</script>
|
|
<!---
|
#@TestSuiteName Sample
|
#@TestSuitePurpose Illustrate how to easily contribute functional tests
|
#@TestSuiteGroup Sample
|
#@TestScript aci_add_entry.xml
|
-->
|
|
<!-- Try/catch/finally structure are a handy way to alter the execution
|
flow of a suite in front of unexpected conditions
|
-->
|
<try>
|
<!-- this is an example of how to loop through a list of functions to
|
run instead of duplicating calls
|
-->
|
<sequence>
|
<iterate in="['testGroup_Preamble','testSuite_Preamble','sample_setup']" var="setupStep">
|
<!-- the sequence tag is superfluous here since there is only a
|
single instruction to execute within the iterate block
|
-->
|
<call function="setupStep" />
|
</iterate>
|
<iterate in="['sample_test','knownIssue_test','passing_test','inconclusive_test','failing_test']" var="testStep">
|
<!-- the sequence tag is superfluous here since there is only a
|
single instruction to execute within the iterate block
|
-->
|
<call function="testStep" />
|
</iterate>
|
</sequence>
|
<catch exception="'STAFException.Topology.CreationException'">
|
<!-- it is a good idea to make sure that the messages getting
|
sent to the gui also make their way in the logs for easier
|
after-the-fact log mining. Use log="1" wherever it makes sense
|
Setting the log level to an appropriate value will also make
|
troubleshooting and debugging easier.
|
Level values can be (among others):
|
. fatal
|
. error
|
. warning
|
. info
|
. trace
|
. debug
|
-->
|
<message log="1" level="'fatal'">'Could not create the topology. Bailing out.'</message>
|
</catch>
|
<catch exception="'STAXException.Topology.StartException'">
|
<message log="1" level="'fatal'">'Could not start at least one server in the topology. Bailing out.'</message>
|
</catch>
|
<finally>
|
<iterate in="['sample_cleanup','testSuite_Postamble','testGroup_Postamble']" var="testStep">
|
<call function="testStep" />
|
</iterate>
|
</finally>
|
</try>
|
</sequence>
|
</function>
|
|
<!-- the test -->
|
<function name="sample_test">
|
<!---
|
Place test-specific test information here.
|
The tag, TestMarker, must be the same as the tag, TestSuiteName.
|
#@TestMarker Sample
|
#@TestName sample_test
|
#@TestIssue xyz
|
#@TestPurpose Illustrate how to issue a query on OpenDS
|
#@TestPreamble none
|
#@TestStep Fetch all the entries in the server
|
#@TestPostamble none
|
#@TestResult Success if OpenDS returns 0
|
-->
|
<block name="STAXCurrentFunction">
|
<sequence>
|
<script>
|
CurrentTestPath['suite']= 'search'
|
</script>
|
<testcase name="getTestCaseName(STAXCurrentFunction)">
|
<sequence>
|
<call function="'testCase_Preamble'" />
|
<call function="'SearchObject'">
|
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
|
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
|
'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
|
'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
|
'dsBaseDN' : DIRECTORY_INSTANCE_SFX ,
|
'dsFilter' : 'objectclass=*' }
|
</call>
|
<call function="'testCase_Postamble'" />
|
</sequence>
|
</testcase>
|
</sequence>
|
</block>
|
</function>
|
|
<!-- the test -->
|
<function name="knownIssue_test">
|
<!---
|
Place test-specific test information here.
|
The tag, TestMarker, must be the same as the tag, TestSuiteName.
|
#@TestMarker Sample
|
#@TestName sample_test
|
#@TestIssue xyz
|
#@TestPurpose Illustrate how to issue a query on OpenDS
|
#@TestPreamble none
|
#@TestStep Fetch all the entries in the server
|
#@TestPostamble none
|
#@TestResult Success if OpenDS returns 0
|
-->
|
<block name="STAXCurrentFunction">
|
<sequence>
|
<script>
|
CurrentTestPath['suite']= 'search'
|
</script>
|
<testcase name="getTestCaseName(STAXCurrentFunction)">
|
<sequence>
|
<call function="'testCase_Preamble'" />
|
<!-- search for an entry that does not exist -->
|
<call function="'SearchObject'">
|
{ 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
|
'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
|
'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
|
'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
|
'dsBaseDN' : DIRECTORY_INSTANCE_SFX ,
|
'dsFilter' : 'wrongfilter' }
|
</call>
|
<script>
|
knownIssue(828)
|
</script>
|
<call function="'testCase_Postamble'" />
|
</sequence>
|
</testcase>
|
</sequence>
|
</block>
|
</function>
|
|
<!-- the dummy failing test -->
|
<function name="failing_test">
|
<!---
|
Place test-specific test information here.
|
The tag, TestMarker, must be the same as the tag, TestSuiteName.
|
#@TestMarker Sample
|
#@TestName failing_test
|
#@TestIssue xyz
|
#@TestPurpose Illustrate how to issue a query on OpenDS
|
#@TestPreamble none
|
#@TestStep Fetch all the entries in the server
|
#@TestPostamble none
|
#@TestResult Success if OpenDS returns 0
|
-->
|
<block name="STAXCurrentFunction">
|
<sequence>
|
<script>
|
CurrentTestPath['suite']= 'dummy'
|
</script>
|
<testcase name="getTestCaseName(STAXCurrentFunction)">
|
<sequence>
|
<call function="'testCase_Preamble'" />
|
<tcstatus result="'fail'" />
|
<call function="'testCase_Postamble'" />
|
</sequence>
|
</testcase>
|
</sequence>
|
</block>
|
</function>
|
|
<!-- the dummy inconclusive test -->
|
<function name="inconclusive_test">
|
<!---
|
Place test-specific test information here.
|
The tag, TestMarker, must be the same as the tag, TestSuiteName.
|
#@TestMarker Sample
|
#@TestName passing_test
|
#@TestIssue xyz
|
#@TestPurpose Illustrate how to issue a query on OpenDS
|
#@TestPreamble none
|
#@TestStep Fetch all the entries in the server
|
#@TestPostamble none
|
#@TestResult Success if OpenDS returns 0
|
-->
|
<block name="STAXCurrentFunction">
|
<sequence>
|
<script>
|
CurrentTestPath['suite']= 'dummy'
|
</script>
|
<testcase name="getTestCaseName(STAXCurrentFunction)">
|
<sequence>
|
<call function="'testCase_Preamble'" />
|
<call function="'testCase_Postamble'" />
|
</sequence>
|
</testcase>
|
</sequence>
|
</block>
|
</function>
|
<!-- the dummy passing test -->
|
<function name="passing_test">
|
<!---
|
Place test-specific test information here.
|
The tag, TestMarker, must be the same as the tag, TestSuiteName.
|
#@TestMarker Sample
|
#@TestName passing_test
|
#@TestIssue xyz
|
#@TestPurpose Illustrate how to issue a query on OpenDS
|
#@TestPreamble none
|
#@TestStep Fetch all the entries in the server
|
#@TestPostamble none
|
#@TestResult Success if OpenDS returns 0
|
-->
|
<block name="STAXCurrentFunction">
|
<sequence>
|
<script>
|
CurrentTestPath['suite']= 'dummy'
|
</script>
|
<testcase name="getTestCaseName(STAXCurrentFunction)">
|
<sequence>
|
<call function="'testCase_Preamble'" />
|
<tcstatus result="'pass'" />
|
<call function="'testCase_Postamble'" />
|
</sequence>
|
</testcase>
|
</sequence>
|
</block>
|
</function>
|
|
<!-- Setup the instance for sample test -->
|
<function name="sample_setup">
|
<sequence>
|
<call function="'runFunction'">
|
{ 'functionName' : 'createTopology' ,
|
'functionMessage' : 'Create DS topology as described in config.py',
|
'functionException' : 'Topology.CreationException' ,
|
'functionArguments' : { 'initialiseInstance' : True }
|
}
|
</call>
|
<call function="'runFunction'">
|
{ 'functionName' : 'StartDsWithScript' ,
|
'functionMessage' : 'Start DS to run on port %s' % (DIRECTORY_INSTANCE_PORT) ,
|
'functionArguments' : { 'location' : STAF_REMOTE_HOSTNAME }
|
}
|
</call>
|
<call function="'runFunction'">
|
{ 'functionName' : 'isAlive' ,
|
'functionMessage' : 'Checking if the server is available' ,
|
'functionException' : 'Topology.StartException' ,
|
'functionArguments' : { 'noOfLoops' : 5 ,
|
'noOfMilliSeconds' : 2000 }
|
}
|
</call>
|
</sequence>
|
</function>
|
|
<!-- cleanup after the test -->
|
<function name="sample_cleanup">
|
<sequence>
|
<call function="'runFunction'">
|
{ 'functionName' : 'StopDsWithScript' ,
|
'functionMessage' : 'Stop DS running on port %s' % (DIRECTORY_INSTANCE_PORT),
|
'functionArguments' : { 'location' : STAF_REMOTE_HOSTNAME ,
|
'dsHost' : DIRECTORY_INSTANCE_HOST ,
|
'dsPort' : DIRECTORY_INSTANCE_PORT ,
|
'dsBindDN' : DIRECTORY_INSTANCE_DN ,
|
'dsBindPwd' : DIRECTORY_INSTANCE_PSWD }
|
}
|
</call>
|
<call function="'runFunction'">
|
{ 'functionName' : 'removeTopology',
|
'functionMessage' : 'Remove DS topology created for the Test Suite'
|
}
|
</call>
|
</sequence>
|
</function>
|
|
</stax>
|