1 //  (C) Copyright Gennadiy Rozental 2011-2014.
2 //  Distributed under the Boost Software License, Version 1.0.
3 //  (See accompanying file LICENSE_1_0.txt or copy at
4 //  http://www.boost.org/LICENSE_1_0.txt)
5 
6 //  See http://www.boost.org/libs/test for the library home page.
7 //
8 //  File        : $RCSfile$
9 //
10 //  Version     : $Revision: 74248 $
11 //
12 //  Description : toolbox implementation types and forward declarations
13 // ***************************************************************************
14 
15 #ifndef BOOST_TEST_TOOLS_DETAIL_FWD_HPP_012705GER
16 #define BOOST_TEST_TOOLS_DETAIL_FWD_HPP_012705GER
17 
18 // Boost.Test
19 #include <boost/test/detail/config.hpp>
20 #include <boost/test/utils/basic_cstring/io.hpp>
21 
22 // STL
23 #include <cstddef>          // for std::size_t
24 
25 #include <boost/test/detail/suppress_warnings.hpp>
26 
27 //____________________________________________________________________________//
28 
29 namespace boost {
30 namespace unit_test {
31 
32 class lazy_ostream;
33 
34 } // namespace unit_test
35 
36 namespace test_tools {
37 
38 using unit_test::const_string;
39 class assertion_result;
40 
41 //____________________________________________________________________________//
42 
43 namespace tt_detail {
44 
dummy_cond()45 inline bool dummy_cond() { return false; }
46 
47 // ************************************************************************** //
48 // **************        types of supported assertions         ************** //
49 // ************************************************************************** //
50 
51 //____________________________________________________________________________//
52 
53 enum check_type {
54     CHECK_PRED,
55     CHECK_MSG,
56     CHECK_EQUAL,
57     CHECK_NE,
58     CHECK_LT,
59     CHECK_LE,
60     CHECK_GT,
61     CHECK_GE,
62     CHECK_CLOSE,
63     CHECK_CLOSE_FRACTION,
64     CHECK_SMALL,
65     CHECK_BITWISE_EQUAL,
66     CHECK_PRED_WITH_ARGS,
67     CHECK_EQUAL_COLL,
68     CHECK_BUILT_ASSERTION
69 };
70 
71 //____________________________________________________________________________//
72 
73 // ************************************************************************** //
74 // **************        levels of supported assertions        ************** //
75 // ************************************************************************** //
76 
77 enum tool_level {
78     WARN, CHECK, REQUIRE, PASS
79 };
80 
81 //____________________________________________________________________________//
82 
83 // ************************************************************************** //
84 // **************         Tools offline implementation         ************** //
85 // ************************************************************************** //
86 
87 BOOST_TEST_DECL bool
88 report_assertion( assertion_result const& pr, unit_test::lazy_ostream const& assertion_descr,
89                   const_string file_name, std::size_t line_num,
90                   tool_level tl, check_type ct,
91                   std::size_t num_args, ... );
92 
93 //____________________________________________________________________________//
94 
95 BOOST_TEST_DECL assertion_result
96 format_assertion_result( const_string expr_val, const_string details );
97 
98 //____________________________________________________________________________//
99 
100 BOOST_TEST_DECL assertion_result
101 format_fpc_report( const_string expr_val, const_string details );
102 
103 //____________________________________________________________________________//
104 
105 BOOST_TEST_DECL bool
106 is_defined_impl( const_string symbol_name, const_string symbol_value );
107 
108 //____________________________________________________________________________//
109 
110 BOOST_TEST_DECL assertion_result
111 equal_impl( char const* left, char const* right );
112 
113 //____________________________________________________________________________//
114 
115 } // namespace tt_detail
116 } // namespace test_tools
117 } // namespace boost
118 
119 #include <boost/test/detail/enable_warnings.hpp>
120 
121 #endif // BOOST_TEST_TOOLS_DETAIL_FWD_HPP_012705GER
122