#include "UnitTestPCH.h"
#include "IOStreamBuffer.h"
#include "TestIOStream.h"
+#include "UnitTestFileGenerator.h"
class IOStreamBufferTest : public ::testing::Test {
// empty
EXPECT_EQ( 100U, myBuffer2.cacheSize() );
}
+const char data[]{"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Qui\
+sque luctus sem diam, ut eleifend arcu auctor eu. Vestibulum id est vel nulla l\
+obortis malesuada ut sed turpis. Nulla a volutpat tortor. Nunc vestibulum portt\
+itor sapien ornare sagittis volutpat."};
+
+
TEST_F( IOStreamBufferTest, open_close_Test ) {
IOStreamBuffer<char> myBuffer;
EXPECT_FALSE( myBuffer.open( nullptr ) );
EXPECT_FALSE( myBuffer.close() );
-
- char buffer[ L_tmpnam ];
- tmpnam( buffer );
- std::FILE *fs( std::fopen( buffer, "w+" ) );
- size_t written( std::fwrite( buffer, 1, sizeof( char ) * L_tmpnam, fs ) );
+
+ const auto dataSize = sizeof(data);
+ const auto dataCount = dataSize / sizeof(*data);
+
+ char fname[]={ "octest.XXXXXX" };
+ auto* fs = MakeTmpFile(fname);
+ ASSERT_NE(nullptr, fs);
+
+ auto written = std::fwrite( data, sizeof(*data), dataCount, fs );
EXPECT_NE( 0U, written );
std::fflush( fs );
+ {
+ TestDefaultIOStream myStream( fs, fname );
- TestDefaultIOStream myStream( fs, buffer );
-
- EXPECT_TRUE( myBuffer.open( &myStream ) );
- EXPECT_FALSE( myBuffer.open( &myStream ) );
- EXPECT_TRUE( myBuffer.close() );
+ EXPECT_TRUE( myBuffer.open( &myStream ) );
+ EXPECT_FALSE( myBuffer.open( &myStream ) );
+ EXPECT_TRUE( myBuffer.close() );
+ }
+ remove(fname);
}
TEST_F( IOStreamBufferTest, readlineTest ) {
- char buffer[ L_tmpnam ];
- tmpnam( buffer );
- std::FILE *fs( std::fopen( buffer, "w+" ) );
- size_t written( std::fwrite( buffer, 1, sizeof( char ) * L_tmpnam, fs ) );
+
+ const auto dataSize = sizeof(data);
+ const auto dataCount = dataSize / sizeof(*data);
+
+ char fname[]={ "readlinetest.XXXXXX" };
+ auto* fs = MakeTmpFile(fname);
+ ASSERT_NE(nullptr, fs);
+
+ auto written = std::fwrite( data, sizeof(*data), dataCount, fs );
EXPECT_NE( 0U, written );
std::fflush( fs );
- IOStreamBuffer<char> myBuffer( 26 );
- EXPECT_EQ( 26U, myBuffer.cacheSize() );
+ const auto tCacheSize = 26u;
+
+ IOStreamBuffer<char> myBuffer( tCacheSize );
+ EXPECT_EQ(tCacheSize, myBuffer.cacheSize() );
- TestDefaultIOStream myStream( fs, buffer );
- size_t size( myStream.FileSize() );
- size_t numBlocks( size / myBuffer.cacheSize() );
+ TestDefaultIOStream myStream( fs, fname );
+ auto size = myStream.FileSize();
+ auto numBlocks = size / myBuffer.cacheSize();
if ( size % myBuffer.cacheSize() > 0 ) {
numBlocks++;
}