$Id: TEST.xml,v 1.4 2007/02/16 14:28:24 ptedesco Exp $
Table of Contents
Abstract
This document describes the procedures that should be followed to execute the unit tests for the gLite Data Transfer Url Copy module
The gLite Data Transfer Url Copy module provides a set of cases for testing the transfers between SRM 1.1 and 2.2 server stub implementations. The transfer itself is executed as copy between two local files
In order to execute these tests, the following preconditions should be met:
You need to have a valid proxy. This proxy is used by the SRM server stubs as well as the client.
You need to have a the gLite Data SRM Util CPP module compiled on your workspace. This is required since the unit tests make use of the configuration files for the SRM stub implementations staged by this module.
In order to perform the tests, you should invoke:
ant test-all
Due to the fact that the build server cannot met the preconditions, the target "unittest" has not been used.
All of the tests use CppUnit, so the result will be displayed using the format common to all the xUnit frameworks.
Before executing each unit test, the corresponding ant target will install all the required files into the WORKSPACE/stage/test/glite-data-transfer-url-copy folder. Those files are:
Test application use ServiceConfiguration and the requested files are installed under the etc folder.
In order to execute the test, the test application would then set the environment variable GLITE_LOCATION to WORKSPACE/stage/test/glite-data-transfer-url-copy, so the program can correctly locate the configuration, as well as the log destination folder.
Once the setup is completed, the test application is executed with the command:
glite_data_agents_common_test_NAME -l WORKSPACE/stage/test/glite-data-transfer-url-copy -s where -l specify the location that will be used as GLITE_LOCATION and -s will enbable the CompilerOutputFormatter
Depending of the type of the unit test, additional parameters may be required. In order to get these details, you can run the test application with the -h option
The scripts folder contains additional tests.
transfer-url-copy-test.sh is a bash script that can used for testing transfers.
When invoked, the script reads a list of endpoints and then performs the following operations:
Transfer a local file to each endpoint.
For each endpoint for which the local transfer succeeded, transfer the file to each other endpoint.
For each endpoint for which the local transfer succeeded, transfer the file to the local host
The script invokes glite-url-copy redirecting its output to a log file named source-to-destination where source and destination are endpoint names defined in the endpoints definition list (e.g. local_to_dpm_1); if an operation fails, the log file is left in the logs directory, otherwise it is deleted.
Log files, unless otherwise specified with the -l option, are saved in /var/tmp/transfer-url-copy-test-${USER}/${testDate}/${testTime}, where:
${USER} is the user name.
${testDate} is the date when the test was launched, in the format YYYYMMDD (date +%Y%m%d)
${testTime} is the time when the test was launched, in the format hhmmss (date +%H%M%S)
Endpoints definitions are read from a file. Each endpoint is specified calling the endpoint function with the following parameters:
Endpoint name (a symbolic name).
Endpoint SRM version. The following values can be used:
1.1 |
2.2 |
Host name.
Port.
Service Path.
SAPath.
The following example shows the endpoints definition list used by default:
#!/bin/bash endpoint "dpm_cern_v1" "1.1" "lxdpm102.cern.ch" "8443" "/srm/managerv1" "/dpm/cern.ch/home/dteam" endpoint "dpm_cern_v2" "2.2" "lxdpm102.cern.ch" "8446" "/srm/managerv2" "/dpm/cern.ch/home/dteam" endpoint "castor1" "1.1" "srm.cern.ch" "8443" "/srm/managerv1" "/castor/cern.ch/grid/dteam" endpoint "castor2" "2.2" "srm-v2.cern.ch" "8443" "/srm/managerv2" "/castor/cern.ch/grid/dteam" endpoint "dcache1" "1.1" "fledgling06.fnal.gov" "8443" "/srm/managerv1" "/fnal.gov/litvinse/NULL/testers" endpoint "dcache2" "2.2" "fledgling06.fnal.gov" "8443" "/srm/managerv2" "/fnal.gov/litvinse/NULL/testers" endpoint "storm2" "2.2" "ibm139.cnaf.infn.it" "8444" "/srm/managerv2" "/gin"
If the script is launched with
bash$ transfer-url-copy-test.sh -e endpoints_file
then endpoints definitions are read from endpoints_file. If the script is launched with
bash$ transfer-url-copy-test.sh -s
the file stub-endpoints-list.sh is used; if none of the above options is used, endpoint definitions are read from the file default-endpoints-list.sh
To see a complete list of the available options, launch the script with the -h option.