Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / test / test / test-organization-ts / test_unit-sanitize-names.cpp
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 #12596
10 // *****************************************************************************
11
12 #define BOOST_TEST_MODULE test_name_sanitize
13 #include <boost/test/unit_test.hpp>
14 #include <boost/mpl/list.hpp>
15
16 void suite1_test1()
17 {
18   BOOST_CHECK(true);
19 }
20
21 BOOST_AUTO_TEST_CASE( test_suites_sanitize )
22 {
23     using namespace boost::unit_test;
24     test_suite* master_ts = BOOST_TEST_SUITE("local master");
25     test_suite* t_suite1 = BOOST_TEST_SUITE( "!suite1" );
26     master_ts->add(t_suite1);
27     BOOST_TEST( t_suite1->p_name.value == "_suite1" );
28     BOOST_TEST( master_ts->get("!suite1") == INV_TEST_UNIT_ID );
29     BOOST_TEST( master_ts->get("_suite1") != INV_TEST_UNIT_ID );
30
31     test_suite* t_suite2 = BOOST_TEST_SUITE( " /suite2/@label" );
32     master_ts->add(t_suite2);
33     BOOST_TEST( t_suite2->p_name.value == "_suite2__label" );
34     BOOST_TEST( master_ts->get(" /suite2/@label") == INV_TEST_UNIT_ID );
35     BOOST_TEST( master_ts->get("_suite2__label") != INV_TEST_UNIT_ID );
36
37     // spaces trimming
38     test_suite* t_suite3 = BOOST_TEST_SUITE( " /suite3/@label  " );
39     master_ts->add(t_suite3);
40     BOOST_TEST( t_suite3->p_name.value == "_suite3__label" );
41     BOOST_TEST( master_ts->get(" /suite3/@label  ") == INV_TEST_UNIT_ID );
42     BOOST_TEST( master_ts->get("/suite3/@label") == INV_TEST_UNIT_ID );
43     BOOST_TEST( master_ts->get(" _suite3__label  ") == INV_TEST_UNIT_ID );
44     BOOST_TEST( master_ts->get("_suite3__label") != INV_TEST_UNIT_ID );
45 }
46
47 BOOST_AUTO_TEST_CASE( test_case_sanitize )
48 {
49     using namespace boost::unit_test;
50     test_suite* master_ts = BOOST_TEST_SUITE("local master");
51     test_case* tc1 = make_test_case(suite1_test1, "my@whateve!r test case", __FILE__, __LINE__);
52     master_ts->add( tc1 );
53     BOOST_TEST( master_ts->get("my@whateve!r test case") == INV_TEST_UNIT_ID );
54     BOOST_TEST( master_ts->get("my_whateve_r test case") == tc1->p_id );
55
56     test_case* tc2 = make_test_case(suite1_test1, "  my@whateve!r test case 2  ", __FILE__, __LINE__);
57     master_ts->add( tc2 );
58     BOOST_TEST( master_ts->get("my@whateve!r test case 2") == INV_TEST_UNIT_ID );
59     BOOST_TEST( master_ts->get("  my_whateve_r test case 2  ") == INV_TEST_UNIT_ID );
60     BOOST_TEST( master_ts->get("my_whateve_r test case 2") == tc2->p_id );
61
62     test_case* tc3 = make_test_case(suite1_test1, "  some_type < bla, blabla>  ", __FILE__, __LINE__);
63     master_ts->add( tc3 );
64     BOOST_TEST( master_ts->get("some_type < bla, blabla>") == INV_TEST_UNIT_ID );
65     BOOST_TEST( master_ts->get("  some_type < bla, blabla>  ") == INV_TEST_UNIT_ID );
66     BOOST_TEST( master_ts->get("some_type < bla_ blabla>") == tc3->p_id );
67 }