Skip to content

Commit

Permalink
[XrdClTests] Make the read and vector read tests also verify kXR_okso…
Browse files Browse the repository at this point in the history
…fars
  • Loading branch information
ljanyst committed Apr 17, 2013
1 parent b091bf7 commit 76ef1e4
Showing 1 changed file with 36 additions and 17 deletions.
53 changes: 36 additions & 17 deletions tests/XrdClTests/FileTest.cc
Expand Up @@ -142,8 +142,8 @@ void FileTest::ReadTest()
// Fetch some data and checksum
//----------------------------------------------------------------------------
const uint32_t MB = 1024*1024;
char *buffer1 = new char[4*MB];
char *buffer2 = new char[4*MB];
char *buffer1 = new char[40*MB];
char *buffer2 = new char[40*MB];
uint32_t bytesRead1 = 0;
uint32_t bytesRead2 = 0;
File f;
Expand Down Expand Up @@ -176,13 +176,17 @@ void FileTest::ReadTest()
//----------------------------------------------------------------------------
// Read test
//----------------------------------------------------------------------------
CPPUNIT_ASSERT_XRDST( f.Read( 10*MB, 4*MB, buffer1, bytesRead1 ) );
CPPUNIT_ASSERT_XRDST( f.Read( 20*MB, 4*MB, buffer2, bytesRead2 ) );
CPPUNIT_ASSERT( bytesRead1 == 4*MB );
CPPUNIT_ASSERT( bytesRead2 == 4*MB );
uint32_t crc = Utils::ComputeCRC32( buffer1, 4*MB );
crc = Utils::UpdateCRC32( crc, buffer2, 4*MB );
CPPUNIT_ASSERT( crc == 1304813676 );
CPPUNIT_ASSERT_XRDST( f.Read( 10*MB, 40*MB, buffer1, bytesRead1 ) );
CPPUNIT_ASSERT_XRDST( f.Read( 1008576000, 40*MB, buffer2, bytesRead2 ) );
CPPUNIT_ASSERT( bytesRead1 == 40*MB );
CPPUNIT_ASSERT( bytesRead2 == 40000000 );

uint32_t crc = Utils::ComputeCRC32( buffer1, 40*MB );
CPPUNIT_ASSERT( crc == 3303853367UL );

crc = Utils::ComputeCRC32( buffer2, 40000000 );
CPPUNIT_ASSERT( crc == 898701504UL );

delete [] buffer1;
delete [] buffer2;

Expand Down Expand Up @@ -308,27 +312,42 @@ void FileTest::VectorReadTest()
// Fetch some data and checksum
//----------------------------------------------------------------------------
const uint32_t MB = 1024*1024;
char *buffer = new char[40*MB];
char *buffer1 = new char[40*MB];
char *buffer2 = new char[40*256000];
File f;

//----------------------------------------------------------------------------
// Build the chunk list
//----------------------------------------------------------------------------
ChunkList chunkList;
ChunkList chunkList1;
ChunkList chunkList2;
for( int i = 0; i < 40; ++i )
chunkList.push_back( ChunkInfo( (i+1)*10*MB, 1*MB ) );
{
chunkList1.push_back( ChunkInfo( (i+1)*10*MB, 1*MB ) );
chunkList2.push_back( ChunkInfo( (i+1)*10*MB, 256000 ) );
}

//----------------------------------------------------------------------------
// Open the file
//----------------------------------------------------------------------------
CPPUNIT_ASSERT( f.Open( fileUrl, OpenFlags::Read ).IsOK() );
CPPUNIT_ASSERT_XRDST( f.Open( fileUrl, OpenFlags::Read ) );
VectorReadInfo *info = 0;
CPPUNIT_ASSERT( f.VectorRead( chunkList, buffer, info ).IsOK() );
CPPUNIT_ASSERT_XRDST( f.VectorRead( chunkList1, buffer1, info ) );
CPPUNIT_ASSERT( info->GetSize() == 40*MB );
delete info;
uint32_t crc = Utils::ComputeCRC32( buffer, 40*MB );
uint32_t crc = 0;
crc = Utils::ComputeCRC32( buffer1, 40*MB );
CPPUNIT_ASSERT( crc == 3695956670UL );
CPPUNIT_ASSERT( f.Close().IsOK() );

delete [] buffer;
info = 0;
CPPUNIT_ASSERT_XRDST( f.VectorRead( chunkList2, buffer2, info ) );
CPPUNIT_ASSERT( info->GetSize() == 40*256000 );
delete info;
crc = Utils::ComputeCRC32( buffer2, 40*256000 );
CPPUNIT_ASSERT( crc == 3492603530UL );

CPPUNIT_ASSERT_XRDST( f.Close() );

delete [] buffer1;
delete [] buffer2;
}

0 comments on commit 76ef1e4

Please sign in to comment.