diff options
Diffstat (limited to 'sal')
-rw-r--r-- | sal/cppunittester/cppunittester.cxx | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/sal/cppunittester/cppunittester.cxx b/sal/cppunittester/cppunittester.cxx index 9c58b271b19d..51bc5c68a06e 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 { |