1 // (C) Copyright Raffi Enficiaud 2017.
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)
6 // See http://www.boost.org/libs/test for the library home page.
8 #define BOOST_TEST_MODULE message in dataset
10 #include <boost/test/unit_test.hpp>
12 #include <boost/test/unit_test_suite.hpp>
13 #include <boost/test/unit_test_log.hpp>
14 #include <boost/test/results_collector.hpp>
15 #include <boost/test/data/monomorphic.hpp>
16 #include <boost/test/data/test_case.hpp>
18 #include <boost/test/framework.hpp>
19 #include <boost/test/unit_test_parameters.hpp>
20 #include <boost/test/utils/nullstream.hpp>
22 #include "logger-for-tests.hpp"
29 using boost::test_tools::output_test_stream
;
30 using namespace boost::unit_test
;
35 std::string filenames
[] = { "util/test_image1.jpg", "util/test_image2.jpg" };
36 BOOST_DATA_TEST_CASE(test_update
,
37 boost::unit_test::data::make(filenames
))
39 std::string field_name
= "Volume";
42 BOOST_TEST_MESSAGE("Testing update :");
43 BOOST_TEST_MESSAGE("Update " << field_name
<< " with " << value
);
46 void check_pattern_loggers(
47 output_test_stream
& output
,
48 output_format log_format
,
50 bool bt_module_failed
= false,
51 log_level ll
= log_successful_tests
)
54 log_setup_teardown
holder(output
, log_format
, ll
);
56 // output before fixture registration
57 output
<< "* " << log_format
<< "-format *******************************************************************";
60 framework::finalize_setup_phase( id
);
62 bool setup_error_caught
= false;
64 framework::run( id
, false ); // do not continue the test tree to have the test_log_start/end
66 catch (framework::setup_error
&) {
67 BOOST_TEST_MESSAGE("Framework setup_error caught");
68 setup_error_caught
= true;
74 BOOST_TEST( bt_module_failed
== (( results_collector
.results( id
).result_code() != 0 ) ));
75 BOOST_TEST( output
.match_pattern(true) ); // flushes the stream at the end of the comparison.
78 void check_pattern_loggers(
79 output_test_stream
& output
,
81 bool bt_module_failed
= false)
83 ts
->p_default_status
.value
= test_unit::RS_ENABLED
;
85 check_pattern_loggers( output
, OF_CLF
, ts
->p_id
, bt_module_failed
);
86 check_pattern_loggers( output
, OF_XML
, ts
->p_id
, bt_module_failed
);
87 check_pattern_loggers( output
, OF_JUNIT
, ts
->p_id
, bt_module_failed
, log_successful_tests
);
88 check_pattern_loggers( output
, OF_JUNIT
, ts
->p_id
, bt_module_failed
, log_cpp_exception_errors
); // should branch to the log log_all_errors
94 boost::unit_test::unit_test_log
.set_format( runtime_config::get
<output_format
>( runtime_config::btrt_log_format
) );
95 boost::unit_test::unit_test_log
.set_stream( std::cout
);
100 //____________________________________________________________________________//
103 BOOST_AUTO_TEST_CASE( messages_in_datasets
)
106 boost::ignore_unused( G
);
108 #define PATTERN_FILE_NAME "messages-in-datasets-test.pattern"
110 std::string
pattern_file_name(
111 framework::master_test_suite().argc
== 1
112 ? (runtime_config::save_pattern() ? PATTERN_FILE_NAME
: "./baseline-outputs/" PATTERN_FILE_NAME
)
113 : framework::master_test_suite().argv
[1] );
115 output_test_stream_for_loggers
test_output( pattern_file_name
,
116 !runtime_config::save_pattern(),
120 auto dataset
= boost::unit_test::data::make(filenames
);
122 test_unit_generator
const& generator
= boost::unit_test::data::ds_detail::test_case_gen
<test_updatecase
, decltype(dataset
)>(
126 std::forward
<decltype(dataset
)>(dataset
) );
127 test_suite
* ts
= BOOST_TEST_SUITE( "fake_datatest_case" );
128 while(test_unit
*tu
= generator
.next()) {
132 check_pattern_loggers(test_output
, ts
);