summaryrefslogtreecommitdiff
path: root/tests/colour_log_formatter.h
blob: 3de589992419cc4fb5190759ea40c79ad530d706 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*
 *  Boost Software License - Version 1.0 - August 17th, 2003
 *
 *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 *  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 *  FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
 *  SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
 *  FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
 *  ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
 *  DEALINGS IN THE SOFTWARE.
 */
#pragma once

#include <boost/test/unit_test_log_formatter.hpp>

namespace Wae {
namespace Test {

class colour_log_formatter : public boost::unit_test::unit_test_log_formatter {
public:
	// Formatter interface
	colour_log_formatter() : m_isTestCaseFailed(false) {}
	void log_start(
		std::ostream &,
		boost::unit_test::counter_t test_cases_amount);
	void log_finish(std::ostream &);
	void log_build_info(std::ostream &);

	void test_unit_start(
		std::ostream &,
		boost::unit_test::test_unit const &tu);
	void test_unit_finish(
		std::ostream &,
		boost::unit_test::test_unit const &tu,
		unsigned long elapsed);
	void test_unit_skipped(
		std::ostream &,
		boost::unit_test::test_unit const &tu);

	void log_exception(
		std::ostream &,
		boost::unit_test::log_checkpoint_data const &,
		boost::execution_exception const &ex);
	void log_exception_start(
		std::ostream &,
		boost::unit_test::log_checkpoint_data const &,
		boost::execution_exception const &ex);
	void log_exception_finish(std::ostream &os);

	void log_entry_start(
		std::ostream &,
		boost::unit_test::log_entry_data const &,
		log_entry_types let);
	void log_entry_value(
		std::ostream &,
		boost::unit_test::const_string value);
	void log_entry_value(
		std::ostream &,
		boost::unit_test::lazy_ostream const &value);
	void log_entry_finish(std::ostream &);

	void entry_context_start(std::ostream& os, boost::unit_test::log_level l);
	void log_entry_context(std::ostream& os,
						   boost::unit_test::const_string value);
	void entry_context_finish(std::ostream& os);
#if BOOST_VERSION >= 106500
	void 	log_entry_context(
		std::ostream& os,
		boost::unit_test::log_level l,
		boost::unit_test::const_string value);
	void 	entry_context_finish(
		std::ostream& os,
		boost::unit_test::log_level l);
#endif

private:
	bool m_isTestCaseFailed;
};

}
}