]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/test/test/test-organization-ts/test_unit-report-clashing-names.cpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / test / test / test-organization-ts / test_unit-report-clashing-names.cpp
CommitLineData
11fdf7f2
TL
1// (C) Copyright Raffi Enficiaud 2018.
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
9//! checking the clashing names, ticket trac #12597
10// *****************************************************************************
11
12#define BOOST_TEST_MODULE test_clashing_names
13#include <boost/test/unit_test.hpp>
92f5a8d4 14#include <boost/test/utils/string_cast.hpp>
11fdf7f2 15#include <boost/mpl/list.hpp>
92f5a8d4 16#include <boost/bind.hpp>
11fdf7f2
TL
17
18void suite1_test1()
19{
20 BOOST_CHECK(true);
21}
22
23BOOST_AUTO_TEST_CASE( test_clashing_suites )
24{
25 using namespace boost::unit_test;
26 test_suite* master_ts = BOOST_TEST_SUITE("local master");
27 test_suite* t_suite1 = BOOST_TEST_SUITE( "suite1" );
28 test_suite* t_suite2 = BOOST_TEST_SUITE( "suite1" );
29 master_ts->add(t_suite1);
92f5a8d4
TL
30 BOOST_CHECK_NO_THROW( master_ts->add(t_suite2) );
31
32 master_ts->p_default_status.value = test_unit::RS_ENABLED;
33 BOOST_CHECK_THROW(framework::finalize_setup_phase( master_ts->p_id ),
34 boost::unit_test::framework::setup_error );
11fdf7f2
TL
35}
36
37BOOST_AUTO_TEST_CASE( test_clashing_cases )
38{
39 using namespace boost::unit_test;
40 test_suite* master_ts = BOOST_TEST_SUITE("local master");
41 test_suite* t_suite1 = BOOST_TEST_SUITE( "suite1" );
42 test_suite* t_suite2 = BOOST_TEST_SUITE( "suite2" );
43 master_ts->add(t_suite1);
44 master_ts->add(t_suite2);
45
46 t_suite1->add( BOOST_TEST_CASE( suite1_test1 ) );
92f5a8d4
TL
47 BOOST_CHECK_NO_THROW( t_suite1->add( BOOST_TEST_CASE( suite1_test1 ) ) );
48 BOOST_CHECK_THROW(framework::finalize_setup_phase( master_ts->p_id ),
49 boost::unit_test::framework::setup_error );
11fdf7f2
TL
50
51 BOOST_CHECK_NO_THROW( t_suite2->add( BOOST_TEST_CASE( suite1_test1 ) ) );
52}
53
54BOOST_TEST_CASE_TEMPLATE_FUNCTION( template_test_case, T )
55{
56 BOOST_TEST( sizeof(T) == 4U );
57}
58
59BOOST_AUTO_TEST_CASE( test_clashing_cases_template_test_case )
60{
61 using namespace boost::unit_test;
62 test_suite* master_ts = BOOST_TEST_SUITE("local master");
63 test_suite* t_suite1 = BOOST_TEST_SUITE( "suite1" );
64 test_suite* t_suite2 = BOOST_TEST_SUITE( "suite2" );
65 master_ts->add(t_suite1);
66 master_ts->add(t_suite2);
67
68 typedef boost::mpl::list<int, long, unsigned char> test_types1;
69 typedef boost::mpl::list<int, long, unsigned char, int> test_types2;
70
71 BOOST_CHECK_NO_THROW( t_suite2->add( BOOST_TEST_CASE_TEMPLATE( template_test_case, test_types1 ) ) );
92f5a8d4
TL
72 BOOST_CHECK_NO_THROW(framework::finalize_setup_phase( master_ts->p_id ));
73
74 BOOST_CHECK_NO_THROW( t_suite1->add( BOOST_TEST_CASE_TEMPLATE( template_test_case, test_types2 ) ) );
75 BOOST_CHECK_THROW(framework::finalize_setup_phase( master_ts->p_id ),
76 boost::unit_test::framework::setup_error );
77}
78
79void test2(int value)
80{
81 BOOST_TEST(value >= 0);
82}
83
84
85BOOST_AUTO_TEST_CASE( test_clashing_cases_with_name )
86{
87 using namespace boost::unit_test;
88 test_suite* master_ts = BOOST_TEST_SUITE("local master");
89
90 test_suite* t_suite1 = BOOST_TEST_SUITE( "suite1" );
91 master_ts->add(t_suite1);
92 t_suite1->add( BOOST_TEST_CASE( suite1_test1 ) );
93 t_suite1->add( BOOST_TEST_CASE( boost::bind( test2, 0 ) ) );
94 BOOST_CHECK_NO_THROW( t_suite1->add( BOOST_TEST_CASE( boost::bind( test2, 0 ) ) ) );
95 BOOST_CHECK_THROW(framework::finalize_setup_phase( master_ts->p_id ),
96 boost::unit_test::framework::setup_error );
97
98 for(int i = 0; i < 10; i++) {
99 t_suite1->add( BOOST_TEST_CASE_NAME( boost::bind( test2, i ), "test-X-" + boost::unit_test::utils::string_cast(i) ) );
100 }
11fdf7f2 101}