74 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
| /*
 | |
|  *  Created by Phil on 27/11/2013.
 | |
|  *  Copyright 2013 Two Blue Cubes Ltd. All rights reserved.
 | |
|  *
 | |
|  *  Distributed under the Boost Software License, Version 1.0. (See accompanying
 | |
|  *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 | |
|  */
 | |
| 
 | |
| #include "../internal/catch_interfaces_reporter.h"
 | |
| #include "../internal/catch_errno_guard.h"
 | |
| #include "catch_reporter_bases.hpp"
 | |
| 
 | |
| #include <cstring>
 | |
| #include <cfloat>
 | |
| #include <cstdio>
 | |
| #include <cassert>
 | |
| #include <memory>
 | |
| 
 | |
| namespace Catch {
 | |
|     void prepareExpandedExpression(AssertionResult& result) {
 | |
|         result.getExpandedExpression();
 | |
|     }
 | |
| 
 | |
|     // Because formatting using c++ streams is stateful, drop down to C is required
 | |
|     // Alternatively we could use stringstream, but its performance is... not good.
 | |
|     std::string getFormattedDuration( double duration ) {
 | |
|         // Max exponent + 1 is required to represent the whole part
 | |
|         // + 1 for decimal point
 | |
|         // + 3 for the 3 decimal places
 | |
|         // + 1 for null terminator
 | |
|         const std::size_t maxDoubleSize = DBL_MAX_10_EXP + 1 + 1 + 3 + 1;
 | |
|         char buffer[maxDoubleSize];
 | |
| 
 | |
|         // Save previous errno, to prevent sprintf from overwriting it
 | |
|         ErrnoGuard guard;
 | |
| #ifdef _MSC_VER
 | |
|         sprintf_s(buffer, "%.3f", duration);
 | |
| #else
 | |
|         std::sprintf(buffer, "%.3f", duration);
 | |
| #endif
 | |
|         return std::string(buffer);
 | |
|     }
 | |
| 
 | |
|     std::string serializeFilters( std::vector<std::string> const& container ) {
 | |
|         ReusableStringStream oss;
 | |
|         bool first = true;
 | |
|         for (auto&& filter : container)
 | |
|         {
 | |
|             if (!first)
 | |
|                 oss << ' ';
 | |
|             else
 | |
|                 first = false;
 | |
| 
 | |
|             oss << filter;
 | |
|         }
 | |
|         return oss.str();
 | |
|     }
 | |
| 
 | |
|     TestEventListenerBase::TestEventListenerBase(ReporterConfig const & _config)
 | |
|         :StreamingReporterBase(_config) {}
 | |
| 
 | |
|     std::set<Verbosity> TestEventListenerBase::getSupportedVerbosities() {
 | |
|         return { Verbosity::Quiet, Verbosity::Normal, Verbosity::High };
 | |
|     }
 | |
| 
 | |
|     void TestEventListenerBase::assertionStarting(AssertionInfo const &) {}
 | |
| 
 | |
|     bool TestEventListenerBase::assertionEnded(AssertionStats const &) {
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
| 
 | |
| } // end namespace Catch
 |