From 76ef1e44790e5392fafadb4813fc0d07bc846364 Mon Sep 17 00:00:00 2001 From: Lukasz Janyst Date: Fri, 5 Apr 2013 18:37:41 +0200 Subject: [PATCH] [XrdClTests] Make the read and vector read tests also verify kXR_oksofars --- tests/XrdClTests/FileTest.cc | 53 ++++++++++++++++++++++++------------ 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/tests/XrdClTests/FileTest.cc b/tests/XrdClTests/FileTest.cc index 1461a2ed3e0..8dfef09def1 100644 --- a/tests/XrdClTests/FileTest.cc +++ b/tests/XrdClTests/FileTest.cc @@ -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; @@ -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; @@ -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; }