mirror of
https://github.com/boostorg/contract.git
synced 2026-02-27 17:02:15 +00:00
built all tests and examples on msvc with all contract_no combinations
This commit is contained in:
@@ -36,7 +36,8 @@ int main() {
|
||||
<< "c::f::pre" << std::endl
|
||||
<< "a::f::pre" << std::endl
|
||||
#endif
|
||||
#ifndef BOOST_CONTRACT_NO_POSTCONDITIONS
|
||||
#if !defined(BOOST_CONTRACT_NO_POSTCONDITIONS) || \
|
||||
!defined(BOOST_CONTRACT_NO_EXCEPTS)
|
||||
<< "d::f::old" << std::endl
|
||||
<< "e::f::old" << std::endl
|
||||
<< "c::f::old" << std::endl
|
||||
@@ -66,49 +67,40 @@ int main() {
|
||||
;
|
||||
BOOST_TEST(out.eq(ok.str()));
|
||||
|
||||
#ifdef BOOST_CONTRACT_NO_POSTCONDITIONS
|
||||
#define BOOST_CONTRACT_TEST_post 0
|
||||
#if !defined(BOOST_CONTRACT_NO_POSTCONDITIONS) || \
|
||||
!defined(BOOST_CONTRACT_NO_EXCEPTS)
|
||||
#define BOOST_CONTRACT_TEST_old 1u
|
||||
#else
|
||||
#define BOOST_CONTRACT_TEST_post 1
|
||||
#define BOOST_CONTRACT_TEST_old 0u
|
||||
#endif
|
||||
|
||||
BOOST_TEST_EQ(r.value, "A");
|
||||
BOOST_TEST_EQ(s.value, "acde");
|
||||
BOOST_TEST_EQ(s.copies(),
|
||||
BOOST_PP_IIF(BOOST_CONTRACT_TEST_post, 4u, 0u));
|
||||
BOOST_TEST_EQ(s.evals(),
|
||||
BOOST_PP_IIF(BOOST_CONTRACT_TEST_post, 4u, 0u));
|
||||
BOOST_TEST_EQ(s.copies(), BOOST_CONTRACT_TEST_old * 4);
|
||||
BOOST_TEST_EQ(s.evals(), BOOST_CONTRACT_TEST_old * 4);
|
||||
BOOST_TEST_EQ(s.ctors(), s.dtors() + 1); // 1 for local var.
|
||||
|
||||
BOOST_TEST_EQ(aa.x.value, "aA");
|
||||
BOOST_TEST_EQ(aa.x.copies(),
|
||||
BOOST_PP_IIF(BOOST_CONTRACT_TEST_post, 1u, 0u));
|
||||
BOOST_TEST_EQ(aa.x.evals(),
|
||||
BOOST_PP_IIF(BOOST_CONTRACT_TEST_post, 1u, 0u));
|
||||
BOOST_TEST_EQ(aa.x.copies(), BOOST_CONTRACT_TEST_old);
|
||||
BOOST_TEST_EQ(aa.x.evals(), BOOST_CONTRACT_TEST_old);
|
||||
BOOST_TEST_EQ(aa.x.ctors(), aa.x.dtors() + 1); // 1 for member var.
|
||||
|
||||
BOOST_TEST_EQ(aa.y.value, "cA");
|
||||
BOOST_TEST_EQ(aa.y.copies(),
|
||||
BOOST_PP_IIF(BOOST_CONTRACT_TEST_post, 1u, 0u));
|
||||
BOOST_TEST_EQ(aa.y.evals(),
|
||||
BOOST_PP_IIF(BOOST_CONTRACT_TEST_post, 1u, 0u));
|
||||
BOOST_TEST_EQ(aa.y.copies(), BOOST_CONTRACT_TEST_old);
|
||||
BOOST_TEST_EQ(aa.y.evals(), BOOST_CONTRACT_TEST_old);
|
||||
BOOST_TEST_EQ(aa.y.ctors(), aa.y.dtors() + 1); // 1 for member var.
|
||||
|
||||
BOOST_TEST_EQ(aa.t<'d'>::z.value, "dA");
|
||||
BOOST_TEST_EQ(aa.t<'d'>::z.copies(),
|
||||
BOOST_PP_IIF(BOOST_CONTRACT_TEST_post, 1u, 0u));
|
||||
BOOST_TEST_EQ(aa.t<'d'>::z.evals(),
|
||||
BOOST_PP_IIF(BOOST_CONTRACT_TEST_post, 1u, 0u));
|
||||
BOOST_TEST_EQ(aa.t<'d'>::z.copies(), BOOST_CONTRACT_TEST_old);
|
||||
BOOST_TEST_EQ(aa.t<'d'>::z.evals(), BOOST_CONTRACT_TEST_old);
|
||||
BOOST_TEST_EQ(aa.t<'d'>::z.ctors(), aa.t<'d'>::z.dtors() + 1); // 1 member.
|
||||
|
||||
BOOST_TEST_EQ(aa.t<'e'>::z.value, "eA");
|
||||
BOOST_TEST_EQ(aa.t<'e'>::z.copies(),
|
||||
BOOST_PP_IIF(BOOST_CONTRACT_TEST_post, 1u, 0u));
|
||||
BOOST_TEST_EQ(aa.t<'e'>::z.evals(),
|
||||
BOOST_PP_IIF(BOOST_CONTRACT_TEST_post, 1u, 0u));
|
||||
BOOST_TEST_EQ(aa.t<'e'>::z.copies(), BOOST_CONTRACT_TEST_old);
|
||||
BOOST_TEST_EQ(aa.t<'e'>::z.evals(), BOOST_CONTRACT_TEST_old);
|
||||
BOOST_TEST_EQ(aa.t<'e'>::z.ctors(), aa.t<'e'>::z.dtors() + 1); // 1 member.
|
||||
|
||||
#undef BOOST_CONTRACT_TEST_post
|
||||
#undef BOOST_CONTRACT_TEST_old
|
||||
return boost::report_errors();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user