Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Documentation: https://stfc.github.io/xrootd-testing-framework/

UML Class Structure Diagram For Tests

...

Test Command Generation and Returned Data:

...

Initial Table of Test Cases:

Test Case Type

Description

Test Step

Expected Result

Status

 

 

 

 

 

 

 

 

 

Functionality:

Read-Write

File transferred via Xrdcp to Ceph server should be correct /contain the correct data

Obtain and compare the checksum of the initial file and the file on the server after transfer

 

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

Functionality: Metadata

Verify output data format is compatible with Ceph server

Check format of previous stats

Current stat and previous stat formats should be the same

Pass or Fail

Functionality: Metadata

Ensure xrdadler32 produced checksums are in the correct format (big-endian)

Produce checksum with xrdadler32 and compare with big-endian format checksum

Produced checksum should be in big-endian format

Pass or Fail

Functionality: Read-Write

Verify deletion removes data from server (After closure with --posc)

Perform deletion with XRootD in CL

Returned Ceph_posix_unlink status should show successful deletion, without -EBUSY status

Pass or Fail

Functionality: TPC

Verify file can be transferred via third party copy (TPC) from server to server (--tpc)

Obtain checksum of files on sender server and compare to checksum on receiving server

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

Verify copy speed can be limited to a specified rate (--xrate)

Set a rate limit during copy/transfer, get file size and time taken for transfer to complete to obtain rate

Speed should be within range of the specified rate limit

Pass or Fail

Functionality: Read-Write, TPCFunctionality: Read-Write, TPC

 

 

 

 

 

 

 

Functionality:

Read-Write,

Third-Party Copy

Determine if server load is redirected to another server

Check status of file and size on server 1, and/or load average on server for duration of reading /writing

Load on servers should show a split, i.e. non-zero on server 2

Pass or Fail

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

Functionality: Read-Write, TPC

Verify files with an ATLAS token can be transferred to ATLAS

Generate ATLAS token, use in XRootD config and read/write file to ATLAS

Transfer should succeed

Pass or Fail

Functionality: Read-Write, TPC

Verify files without ATLAS tokens cannot be transferred to ATLAS

Generate non-ATLAS /dummy token, use in XRootD config to read/write

Clear token environmental variable and transfer file to ATLAS

Transfer should not succeed (=PassPass or Fail

Return code for transfer should fail (!= 0)

Pass or Fail

Functionality: Read-Write, TPC

Determine that XRootD sends data over DAVS protocol

Use gfal-copy to send data over DAVS protocol

Transfer should succeed (Returncode = 0)

Pass or Fail

Functionality: Read-Write, TPC

Verify dcache/xrootd format data can be transferred to external sites to LHC1

Use xrdcp to transfer dcache/xrootd data to external LHC1 sites

Transfer should succeed (Returncode = 0)

Pass or Fail

Functionality: Read-Write, TPC

Verify dcache/xrootd format data can be transferred to external sites to LHCOPN

Use xrdcp to transfer dcache/xrootd data to external LHCOPN sites

Transfer should succeed (Returncode = 0)

Pass or Fail

Functionality: Read-Write, TPC

Verify files of 0 bytes are not transferred

Transfer file of 0 bytes to server

Transfer should fail (Returncode =! 0 =Pass)

Pass or Fail

Performance: Read-Write, TPC

Obtain speed of reading data

Transfer file to server and obtain speed

 

Speed given in MB/s

Performance: Read-Write, TPC

Obtain speed of writing data

Transfer file to server and obtain speed

 

Speed given in MB/s

Performance: Read-Write, TPC

Check files of 64 MB can be transferred

Transfer file of 64 MB to server

Transfer to server should succeed

Pass or Fail

Performance: Read-Write, TPC

Verify transfer of files up to 4 GB

Transfer file of 4 GB to server

Transfer to server should succeed

Verify data in file on destination matches data in file on source

Use cat or tail to return part of file contents from destination, and compare with equivalent part from source file

Returned contents should match

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

Test rate of transfer for bulk files of size 64 MB, 100 MB, 1 GB and 4 GB

Transfer multiple copies of the file using gfal-copy bulk. Measure time taken for transfer. Repeat transfer 5 times and use average time to calculate rate

Transfer should succeed and rate should be within +/- 10% of expected rate limit

Pass or Fail

Test rate of bulk deletion for files of size 64 MB, 100 MB, 1 GB and 4 GB

Transfer a directory of same sized files to server. Use gfal-rm bulk to delete the multiple files from destination directory. Measure time taken for deletion and calculate rate

Deletion should succeed and rate should be within +/- 10% of expected rate limit

Pass or Fail

Performance:

Read-Write, Third-Party Copy

Verify transfer and average rate for large files (8 GB)

Transfer file of 8 GB to server. Measure time taken for transfer to complete. Repeat transfer 5 times and compute average of time taken to obtain rate

Transfer to server should succeed and rate should be within +/- 10% of expected rate limit

Pass or Fail

Test average rate of deletion for large files (8 GB)

Transfer 8 GB file to server. Remove file from server and measure time taken for deletion to complete. Repeat 5 times and compute average time to obtain rate

Deletion should succeed and rate should be within +/- 10% of expected rate limit

Pass or Fail

Matrix of test cases (Site + Protocol combinations):

Sites

Protocols

root

davs

https

RAL:

LHCOPN:

LHC1: