[Libreoffice-commits] core.git: sal/cppunittester

Stephan Bergmann sbergman at redhat.com
Wed Jun 4 02:06:21 PDT 2014


 sal/cppunittester/cppunittester.cxx |   34 +++++++++++++++++++---------------
 1 file changed, 19 insertions(+), 15 deletions(-)

New commits:
commit b2725b7d1bd53211a7c432f79a8ab5ab4b6d448f
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Wed Jun 4 11:05:58 2014 +0200

    Keep TestFixture alive until outputter is done with it
    
    Change-Id: Ifd921efa971f7a9a5c47f42c5d56a3deb1c3a0b3

diff --git a/sal/cppunittester/cppunittester.cxx b/sal/cppunittester/cppunittester.cxx
index 9c58b27..51bc5c6 100644
--- a/sal/cppunittester/cppunittester.cxx
+++ b/sal/cppunittester/cppunittester.cxx
@@ -218,38 +218,42 @@ public:
         }
 #endif
 
-        CppUnit::TestResultCollector collector;
-        result.addListener(&collector);
+        for (size_t i = 0; i < protectors.size(); ++i)
+            result.pushProtector(protectors[i]);
+
+        bool success;
+        {
+            CppUnit::TestResultCollector collector;
+            result.addListener(&collector);
 
-        LogFailuresAsTheyHappen logger;
-        result.addListener(&logger);
+            LogFailuresAsTheyHappen logger;
+            result.addListener(&logger);
 
 #ifdef TIMETESTS
-        TimingListener timer;
-        result.addListener(&timer);
+            TimingListener timer;
+            result.addListener(&timer);
 #endif
 
 #ifdef UNX
-        EyecatcherListener eye;
-        result.addListener(&eye);
+            EyecatcherListener eye;
+            result.addListener(&eye);
 #endif
-        for (size_t i = 0; i < protectors.size(); ++i)
-            result.pushProtector(protectors[i]);
 
-        {
             CppUnit::TestRunner runner;
             runner.addTest(
                 CppUnit::TestFactoryRegistry::getRegistry().makeTest());
             runner.run(result);
+
+            CppUnit::CompilerOutputter outputter(&collector, CppUnit::stdCErr());
+            outputter.setNoWrap();
+            outputter.write();
+            success = collector.wasSuccessful();
         }
 
         for (size_t i = 0; i < protectors.size(); ++i)
             result.popProtector();
 
-        CppUnit::CompilerOutputter outputter(&collector, CppUnit::stdCErr());
-        outputter.setNoWrap();
-        outputter.write();
-        return collector.wasSuccessful();
+        return success;
     }
     virtual bool operator()() const SAL_OVERRIDE
     {


More information about the Libreoffice-commits mailing list