UML Class Structure Diagram For Tests
Initial Table of Test Cases
Test Case Type | Description | Test Step | Expected Result | Status |
Functionality:
Read-Write
| Verify local file can be transferred to server | Transfer file, obtain and compare checksum of local file to server-side file | Both checksum values should be the same | Pass or Fail |
Verify copy speed can be limited to a specified rate (--xrate) | Set a rate limit during copy/transfer. Measure file size and time taken for transfer to complete to calculate rate | Calculated rate should be within 10% of the set rate limit | Pass or Fail | |
Verify incomplete transfer removes file from server (–posc) | Transfer 100 KB file to server using –posc, and set rate limit to 50 KB/s with –xrate. Have transfer timeout at 1 second. Obtain checksum for filename on server. | Return code for transfer should fail (!= 0), and checksum value should be None | Pass or Fail | |
Verify files of 0 bytes are not transferred | Transfer file of 0 bytes to server, and stat for checksum | Transfer appears to succeed with return code = 0, but checksum of 0 bytes file on server should be None | Pass or Fail | |
Functionality:
Third-Party Copy | Verify file on server A can be transferred to B, and back via third-party copy (TPC) (--tpc) | Transfer initial local file to server A. Transfer file from server A to B and obtain checksum value for file on server B. Transfer file from server B to A and obtain checksum from server A. Compare both server checksums | Both checksum values should be the same | Pass or Fail |
Functionality:
Read-Write, Third-Party Copy | Determine if server load is redirected to another server | Transfer a file of size that exceeds maximum load of one server to echo-internal-manager01.gridpp.rl.ac.uk. Obtain stdout and check that the file was transferred to multiple endpoints. | Stdout should show confirmation of load redirection | Pass or Fail |
Verify end server is reached after global server redirection | Obtain end URL from log and end server’s URL | End URL should match end server URL | Pass or Fail | |
Verify files without ATLAS tokens cannot be transferred to ATLAS | Clear token environmental variable and transfer file to ATLAS | Return code for transfer should fail (!= 0) | Pass or Fail | |
Verify deleted file is deleted from server | Transfer file to server. Delete file from server and obtain checksum from server | Checksum should be None | Pass | |
Functionality:
Metadata
| Verify output data format is compatible with server and protocol | Transfer local file to server. Stat the file on the server and obtain metadata categories. Compare to standard list of categories for the protocol
| Obtained and standard categories should be the same | Pass or Fail |
Ensure xrdadler32 produced checksums are in the correct format (big-endian) | Transfer local file to server. Obtain Adler32 checksum of local file using xrdadler32, and produce a big endian and little endian version. Obtain checksum from server-side file | Checksum from server should match the big endian checksum computed from local file | Pass or Fail | |
Performance: Read-Write, Third-Party Copy | Verify transfer of files up to 4 GB | Transfer file of 4 GB to server | Transfer to server should succeed | Pass or Fail |
Check files of 64 MB can be transferred | Transfer file of 64 MB to server | Transfer to server should succeed | Pass or Fail |