Improved the naming of temporary file generator function. Replaced use of tmpnam...
authorJared Mulconry <jaredmulconry@gmail.com>
Tue, 26 Sep 2017 12:41:20 +0000 (22:41 +1000)
committerJared Mulconry <jaredmulconry@gmail.com>
Tue, 26 Sep 2017 12:41:20 +0000 (22:41 +1000)
test/unit/UnitTestFileGenerator.h
test/unit/utDefaultIOStream.cpp
test/unit/utIOStreamBuffer.cpp

index 04f5fd4..2e4aede 100644 (file)
@@ -46,7 +46,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #if defined(__GNUC__) || defined(__clang__)
 #define TMP_PATH "/tmp/"
-inline FILE* MakeTmpFilePath(char* tmplate)
+inline FILE* MakeTmpFile(char* tmplate)
 {
     auto fd = mkstemp(tmplate);
     EXPECT_NE(-1, fd);
@@ -61,7 +61,7 @@ inline FILE* MakeTmpFilePath(char* tmplate)
 #elif defined(_MSC_VER)
 #include <io.h>
 #define TMP_PATH "./"
-inline FILE* MakeTmpFilePath(char* tmplate)
+inline FILE* MakeTmpFile(char* tmplate)
 {
     auto pathtemplate = _mktemp(tmplate);
     EXPECT_NE(pathtemplate, nullptr);
index 1d78fb6..c0d82b6 100644 (file)
@@ -60,7 +60,7 @@ TEST_F( utDefaultIOStream, FileSizeTest ) {
     const auto dataCount = dataSize / sizeof(*data);
 
     char fpath[] = { TMP_PATH"rndfp.XXXXXX" };
-    auto* fs = MakeTmpFilePath(fpath);
+    auto* fs = MakeTmpFile(fpath);
     ASSERT_NE(nullptr, fs);
     {
         auto written = std::fwrite(data, sizeof(*data), dataCount, fs );
index 0bf69bf..a1b67da 100644 (file)
@@ -43,6 +43,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "UnitTestPCH.h"
 #include "IOStreamBuffer.h"
 #include "TestIOStream.h"
+#include "UnitTestFileGenerator.h"
 
 class IOStreamBufferTest : public ::testing::Test {
     // empty
@@ -68,40 +69,59 @@ TEST_F( IOStreamBufferTest, accessCacheSizeTest ) {
     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++;
     }