From f95969acdf3a2d570f21caccdb96ccbdf123e756 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= <klinkjak@fjfi.cvut.cz>
Date: Sat, 19 Mar 2016 20:03:03 +0100
Subject: [PATCH] Added parameter --output-mode to tnl-cuda-benchmarks

---
 tests/benchmarks/tnl-cuda-benchmarks.h | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/tests/benchmarks/tnl-cuda-benchmarks.h b/tests/benchmarks/tnl-cuda-benchmarks.h
index ef936b1057..8ac0760723 100644
--- a/tests/benchmarks/tnl-cuda-benchmarks.h
+++ b/tests/benchmarks/tnl-cuda-benchmarks.h
@@ -82,6 +82,9 @@ setupConfig( tnlConfigDescription & config )
 {
     config.addDelimiter( "Benchmark settings:" );
     config.addEntry< tnlString >( "log-file", "Log file name.", "tnl-cuda-benchmarks.log");
+    config.addEntry< tnlString >( "output-mode", "Mode for opening the log file.", "overwrite" );
+    config.addEntryEnum( "append" );
+    config.addEntryEnum( "overwrite" );
     config.addEntry< tnlString >( "precision", "Precision of the arithmetics.", "double" );
     config.addEntryEnum( "float" );
     config.addEntryEnum( "double" );
@@ -108,7 +111,8 @@ main( int argc, char* argv[] )
         return 1;
     }
 
-    ofstream logFile( parameters.getParameter< tnlString >( "log-file" ).getString() );
+    const tnlString & logFileName = parameters.getParameter< tnlString >( "log-file" );
+    const tnlString & outputMode = parameters.getParameter< tnlString >( "output-mode" );
     const tnlString & precision = parameters.getParameter< tnlString >( "precision" );
     const unsigned minSize = parameters.getParameter< unsigned >( "min-size" );
     const unsigned maxSize = parameters.getParameter< unsigned >( "max-size" );
@@ -122,6 +126,12 @@ main( int argc, char* argv[] )
         return EXIT_FAILURE;
     }
 
+    // open log file
+    auto mode = ios::out;
+    if( outputMode == "append" )
+        mode |= ios::app;
+    ofstream logFile( logFileName.getString(), mode );
+
     // init benchmark and common metadata
     Benchmark benchmark( loops, verbose );
     // TODO: add hostname, CPU info, GPU info, date, ...
-- 
GitLab