From 63695a9e6eaa615d740abecf50d53b0f6ad20903 Mon Sep 17 00:00:00 2001
From: Felix Albrecht <felix.albrecht@uni-muenster.de>
Date: Fri, 2 Nov 2012 15:40:37 +0100
Subject: [PATCH] [test.common.logger] added test to show the current logger
 deficits

---
 dune/stuff/test/common_logger.cc | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/dune/stuff/test/common_logger.cc b/dune/stuff/test/common_logger.cc
index b083e0409..4abe7ed4a 100644
--- a/dune/stuff/test/common_logger.cc
+++ b/dune/stuff/test/common_logger.cc
@@ -1,5 +1,6 @@
 #include "test_common.hh"
 
+// dune-stuff
 #include <dune/stuff/common/logging.hh>
 #include <dune/stuff/common/logstreams.hh>
 
@@ -12,6 +13,17 @@ void balh(std::ostream& out)
   c++;
 }
 
+template <class OutStreamType>
+void do_something_that_takes_long(OutStreamType& out)
+{
+  out << "  there should appear five dots, but not too fast:" << std::flush;
+  for (unsigned int i = 0; i < 5; ++i) {
+    busywait(1000);
+    out << "." << std::flush;
+  }
+  out << std::endl;
+} // void do_something_that_takes_long()
+
 int main(int, char* [])
 {
   DSC::Logger().create(DSC::LOG_CONSOLE | DSC::LOG_ERROR);
@@ -30,8 +42,18 @@ int main(int, char* [])
   DSC_LOG_ERROR << "in output\n";
   balh(DSC_LOG_ERROR);
 
-  // this should do nothitng whatsoever
+  // this should do nothing whatsoever
   balh(DSC::dev_null);
   DSC::Logger().flush();
+
+  // this is the desired result:
+  DSC::LogStream& err = DSC::Logger().error();
+  std::cout << "begin std::cout test" << std::endl;
+  do_something_that_takes_long(std::cout);
+  std::cout << "end   std::cout test" << std::endl;
+  std::cout << "begin Logger().error() test" << std::endl;
+  do_something_that_takes_long(err);
+  std::cout << "end   Logger().error() test" << std::endl;
+
   return 0;
 }
-- 
GitLab