blob: 0d994fd2f21fac05ed819bb6dbabeb4f5231993e [file] [log] [blame]
##############################################################################
This folder contains auto build script for Axis C++ and basic regression test
cases for the C/C++ Service/Client Web Services Stack. For each wsdl service is
created and built and installed into the server. Remeber to put your correct
port type implementation class in the appropriate place described in the
documentation.
##############################################################################
DIRECTORY STRUCTURE
-------------------
testcases/platform/
Contains the scripts for test framework.
testcases/wsdls/
Contains the WSDL for the test cases.
testcases/server/
Contains the C and C++ service classes.
NOTES:
Implementation class name of the wsdl PortType is taken
from the port name of the wsdl file suffixing with .cpp/.c
testcases/client/
Contains the C and C++ invocation clients.
NOTES: Each client must have the same basename as the WSDL file
plus Client.
Example: SimpleTypeArray.wsdl -> SimpleTypeArrayClient.c[pp]
testcases/output/
Contains the output of the client invocation expected result.
##############################################################################
ENVIRONMENT VARIABLES
---------------------
The easiest way of configuring the test framework is to set some environment
variables.
------------------------------------------------------------------------------
Variable | Description
------------------------------------------------------------------------------
AXISCPP_HOME | Axis C++ build directory
-----------------------------------------------------------------------------
AXISCPP_DEPLOY | Axis C++ deployed here. Server and Client libraries
| are taken from here
------------------------------------------------------------------------------
AXISTEST_HOME | This specifies the location of the testcase framework with
| the directory structure specified above. Path is
| upto(including) testcases folder
------------------------------------------------------------------------------
JAVA_HOME | Path to the java installation
------------------------------------------------------------------------------
ANT_HOME | Path to the ant installation
------------------------------------------------------------------------------
AXIS_JARS_HOME | Path to the axis jars
##############################################################################
SCRIPTS
-------
autoBuildCVS.sh
Checkout Axis C++ from cvs and build it and run all the test cases.
runAllTests.[sh|bat] [lang]
Run all the test cases present in the service/client folders for the specified
language, default c++. The test will only be successfull if there is a matching
service/client source files and wsdl.
Note that in this case only the services and clients are built. Axis C++ is not
built in this case. It is assumed that $AXISCPP_HOME/tests/auto_build/cvsautobuild
is downloaded and built and installed by a previous run of autoBuildCVS.sh script.
runTest.[sh|bat] wsdls\<wsdl> [lang]
Run the client test for the specified WSDL file and the specified language,
default c++. If there is not a matching service/client source file for the WSDL file
then build may fail.
Note that in this case only the service and client are built. Axis C++ is not
built in this case. It is assumed that $AXISCPP_HOME/tests/auto_build/cvsautobuild
is downloaded and built and installed by a previous run of autoBuildCVS.sh script.
##############################################################################
Example of using the test framework
-----------------------------------
Linux
-----
When you want to add a new test please be aware of the following simple steps.
1. Put the wsdl you hope to test in
   testcases/wsdls
2. Create the c/cpp file which has the name of the port name of the wsdl
and implement your service. Put this file in testcases/server/c[pp]
3. Write the c/cpp file containing your main method of access and put
   it in testcases/client/c[pp]
    NOTES: Each client cpp file must have the same basename as the
    WSDL  file plus Client.
    Example: SimpleTypeArray.wsdl -> SimpleTypeArrayClient.c[pp]
4. Give your APACHE2_HOST, APACHE_HOST, APACHE2_PORT and APACHE_PORT in
testcases/platform/linux/apache_ports.config file.
If you run autoBuildCVS.sh script then all test services are assumed
to be run on the server/port specified on apache_ports.config file.
If you just run tests by giving runAllTests.sh or runTest.sh
you can give the server name and port of a remote machine
which run your service in generated test.config.
5. cd to auto_build and edit the build.sh file
according to your configure requirments.
Run autoBuildCVS.sh
This will first checkout from cvs and then build the source.
Then generate samples from each wsdl.
   You will have two folders created in testcases/build folder for service
and client. Each have the wsdl filename suffixed with .cpp_server and
.cpp_client respectively.
   First time you should get run FAIL message. That's because you still
   does not have a .out file indicating your expected result. We will
   create this in the next step
6. in testcases/build/<automaticall creaed your client folder> you will
   see a file named <Your client file name>.cpp.out
   Copy this file into testcases/output
7. Next time you should get your test passed
  with SUCCESS.
   This time the build/<Your client file name>.cpp.out matchs correctly
   with the pre created output in testcases/output