built all tests and examples on msvc with all contract_no combinations

This commit is contained in:
Lorenzo Caminiti
2016-12-12 21:07:46 -08:00
parent fdfe16132d
commit 3000dde9c2
122 changed files with 776 additions and 591 deletions

View File

@@ -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();
}