From e2790c9e7b0c117cabcc6ae4763610dead03bc51 Mon Sep 17 00:00:00 2001 From: ToruNiina Date: Fri, 27 Mar 2020 18:06:02 +0900 Subject: [PATCH] test: remove test_resize and add test_try_reserve --- tests/test_utility.cpp | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/tests/test_utility.cpp b/tests/test_utility.cpp index c4cb003..6919399 100644 --- a/tests/test_utility.cpp +++ b/tests/test_utility.cpp @@ -9,27 +9,24 @@ #include #include -BOOST_AUTO_TEST_CASE(test_resize) +BOOST_AUTO_TEST_CASE(test_try_reserve) { { - typedef std::vector resizable_type; - typedef std::array non_resizable_type; - BOOST_TEST(toml::detail::has_resize_method::value); - BOOST_TEST(!toml::detail::has_resize_method::value); + // since BOOST_TEST is a macro, it cannot handle commas correctly. + // When toml::detail::has_reserve_method>::value + // is passed to a macro, C preprocessor considers + // toml::detail::has_reserve_method>::value as the second argument. We need an alias to avoid + // this problem. + using reservable_type = std::vector ; + using nonreservable_type = std::array; + BOOST_TEST( toml::detail::has_reserve_method::value); + BOOST_TEST(!toml::detail::has_reserve_method::value); } { std::vector v; - toml::resize(v, 10); - BOOST_TEST(v.size() == 10u); - } - { - std::array a; - toml::resize(a, 10); - BOOST_TEST(a.size() == 15u); - } - { - std::array a; - BOOST_CHECK_THROW(toml::resize(a, 20), std::invalid_argument); + toml::try_reserve(v, 100); + BOOST_TEST(v.capacity() == 100u); } }