// Copyright 2018-2024 Emil Dotchevski and Reverge Studios, Inc. // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #ifdef BOOST_LEAF_TEST_SINGLE_HEADER # include "leaf.hpp" #else # include #endif #if BOOST_LEAF_CFG_STD_STRING namespace leaf = boost::leaf; #include "lightweight_test.hpp" namespace leaf_test { class class_ { }; struct struct_ { }; enum enum_ { }; template class class_template1 { }; template struct struct_template1 { }; template class class_template2 { }; template struct struct_template2 { }; } class class_ { }; struct struct_ { }; enum enum_ { }; template class class_template1 { }; template struct struct_template1 { }; template class class_template2 { }; template struct struct_template2 { }; namespace { template void test_name(std::string const & correct) { leaf::parsed_name pn = leaf::parse_name(); BOOST_TEST(pn.parse_success()); BOOST_TEST_EQ(std::string(pn.name, pn.len), correct); } } int main() { test_name("leaf_test::class_"); test_name("leaf_test::struct_"); test_name("leaf_test::enum_"); test_name>("leaf_test::class_template1<42>"); test_name>("leaf_test::struct_template1<42>"); test_name>("leaf_test::class_template2"); test_name>("leaf_test::struct_template2"); test_name("class_"); test_name("struct_"); test_name("enum_"); test_name>("class_template1<42>"); test_name>("struct_template1<42>"); test_name>("class_template2"); test_name>("struct_template2"); return boost::report_errors(); } #else #include int main() { std::cout << "Unit test not applicable." << std::endl; return 0; } #endif