diff options
Diffstat (limited to 'TAO/tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp')
-rw-r--r-- | TAO/tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp | 347 |
1 files changed, 159 insertions, 188 deletions
diff --git a/TAO/tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp b/TAO/tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp index 4ed1a2d2041..1a34645b8a6 100644 --- a/TAO/tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp +++ b/TAO/tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp @@ -15,11 +15,9 @@ #include "value_sequence_tester.hpp" -#include <boost/test/unit_test.hpp> -#include <boost/shared_ptr.hpp> -#include <boost/weak_ptr.hpp> +#include "test_macros.h" + -using namespace boost::unit_test_framework; using namespace TAO_VERSIONED_NAMESPACE_NAME::TAO; CORBA::ULong const MAXIMUM = 32; @@ -33,7 +31,7 @@ struct Tester { typedef tested_sequence::value_type value_type; - void test_set_length_less_than_maximum() + int test_set_length_less_than_maximum() { expected_calls a(tested_allocation_traits::allocbuf_calls); expected_calls f(tested_allocation_traits::freebuf_calls); @@ -41,19 +39,22 @@ struct Tester tested_sequence x; x.length(8); - BOOST_CHECK_EQUAL(CORBA::ULong(MAXIMUM), x.maximum()); - BOOST_CHECK_EQUAL(CORBA::ULong(8), x.length()); - BOOST_CHECK_EQUAL(true, x.release()); + CHECK_EQUAL(CORBA::ULong(MAXIMUM), x.maximum()); + CHECK_EQUAL(CORBA::ULong(8), x.length()); + CHECK_EQUAL(true, x.release()); } - BOOST_CHECK_MESSAGE(a.expect(0), a); - BOOST_CHECK_MESSAGE(f.expect(1), f); + // Naturally buffer in x is allocated after length() was called. + FAIL_RETURN_IF_NOT(a.expect(1), a); + FAIL_RETURN_IF_NOT(f.expect(1), f); + return 0; } - void test_set_length_more_than_maximum() + int test_set_length_more_than_maximum() { tested_sequence x; - BOOST_CHECK_THROW(x.length(64), std::runtime_error); + CHECK_THROW(x.length(64), std::runtime_error); + return 0; } value_type * alloc_and_init_buffer() @@ -64,36 +65,36 @@ struct Tester return buf; } - void test_regression_2201 () + int test_regression_2201 () { value_type * buffer = alloc_and_init_buffer(); expected_calls a(tested_allocation_traits::allocbuf_calls); expected_calls f(tested_allocation_traits::freebuf_calls); { - tested_sequence a(32, buffer); - BOOST_CHECK_EQUAL(CORBA::ULong(32), a.maximum()); - BOOST_CHECK_EQUAL(CORBA::ULong(32), a.length()); - BOOST_CHECK_EQUAL(buffer, a.get_buffer()); - BOOST_CHECK_EQUAL(int( 1), a[0]); - BOOST_CHECK_EQUAL(int( 4), a[1]); - BOOST_CHECK_EQUAL(int( 9), a[2]); - BOOST_CHECK_EQUAL(int(16), a[3]); - BOOST_CHECK_EQUAL(false, a.release()); - a.length (3); - BOOST_CHECK_EQUAL(CORBA::ULong(32), a.maximum()); - BOOST_CHECK_EQUAL(CORBA::ULong(3), a.length()); - a.length (4); - BOOST_CHECK_EQUAL(CORBA::ULong(32), a.maximum()); - BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); - BOOST_CHECK_EQUAL(int( 0), a[3]); + tested_sequence x(32, buffer, true); + CHECK_EQUAL(CORBA::ULong(32), x.maximum()); + CHECK_EQUAL(CORBA::ULong(32), x.length()); + CHECK_EQUAL(buffer, x.get_buffer()); + CHECK_EQUAL(int( 1), x[0]); + CHECK_EQUAL(int( 4), x[1]); + CHECK_EQUAL(int( 9), x[2]); + CHECK_EQUAL(int(16), x[3]); + CHECK_EQUAL(true, x.release()); + x.length (3); + CHECK_EQUAL(CORBA::ULong(32), x.maximum()); + CHECK_EQUAL(CORBA::ULong(3), x.length()); + x.length (4); + CHECK_EQUAL(CORBA::ULong(32), x.maximum()); + CHECK_EQUAL(CORBA::ULong(4), x.length()); + CHECK_EQUAL(int( 0), x[3]); } - BOOST_CHECK_MESSAGE(a.expect(0), a); - BOOST_CHECK_MESSAGE(f.expect(0), f); - tested_sequence::freebuf(buffer); + FAIL_RETURN_IF_NOT(a.expect(0), a); + FAIL_RETURN_IF_NOT(f.expect(1), f); + return 0; } - void test_buffer_constructor_default() + int test_buffer_constructor_default() { value_type * buffer = alloc_and_init_buffer(); @@ -101,62 +102,65 @@ struct Tester expected_calls f(tested_allocation_traits::freebuf_calls); { tested_sequence a(4, buffer); - BOOST_CHECK_EQUAL(CORBA::ULong(32), a.maximum()); - BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); - BOOST_CHECK_EQUAL(buffer, a.get_buffer()); - BOOST_CHECK_EQUAL(int( 1), a[0]); - BOOST_CHECK_EQUAL(int( 4), a[1]); - BOOST_CHECK_EQUAL(int( 9), a[2]); - BOOST_CHECK_EQUAL(int(16), a[3]); - BOOST_CHECK_EQUAL(false, a.release()); + CHECK_EQUAL(CORBA::ULong(32), a.maximum()); + CHECK_EQUAL(CORBA::ULong(4), a.length()); + CHECK_EQUAL(buffer, a.get_buffer()); + CHECK_EQUAL(int( 1), a[0]); + CHECK_EQUAL(int( 4), a[1]); + CHECK_EQUAL(int( 9), a[2]); + CHECK_EQUAL(int(16), a[3]); + CHECK_EQUAL(false, a.release()); } - BOOST_CHECK_MESSAGE(a.expect(0), a); - BOOST_CHECK_MESSAGE(f.expect(0), f); + FAIL_RETURN_IF_NOT(a.expect(0), a); + FAIL_RETURN_IF_NOT(f.expect(0), f); tested_sequence::freebuf(buffer); + return 0; } - void test_buffer_constructor_false() + int test_buffer_constructor_false() { value_type * buffer = alloc_and_init_buffer(); expected_calls a(tested_allocation_traits::allocbuf_calls); expected_calls f(tested_allocation_traits::freebuf_calls); { tested_sequence a(4, buffer, false); - BOOST_CHECK_EQUAL(CORBA::ULong(32), a.maximum()); - BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); - BOOST_CHECK_EQUAL(buffer, a.get_buffer()); - BOOST_CHECK_EQUAL(int( 1), a[0]); - BOOST_CHECK_EQUAL(int( 4), a[1]); - BOOST_CHECK_EQUAL(int( 9), a[2]); - BOOST_CHECK_EQUAL(int(16), a[3]); - BOOST_CHECK_EQUAL(false, a.release()); + CHECK_EQUAL(CORBA::ULong(32), a.maximum()); + CHECK_EQUAL(CORBA::ULong(4), a.length()); + CHECK_EQUAL(buffer, a.get_buffer()); + CHECK_EQUAL(int( 1), a[0]); + CHECK_EQUAL(int( 4), a[1]); + CHECK_EQUAL(int( 9), a[2]); + CHECK_EQUAL(int(16), a[3]); + CHECK_EQUAL(false, a.release()); } - BOOST_CHECK_MESSAGE(a.expect(0), a); - BOOST_CHECK_MESSAGE(f.expect(0), f); + FAIL_RETURN_IF_NOT(a.expect(0), a); + FAIL_RETURN_IF_NOT(f.expect(0), f); tested_sequence::freebuf(buffer); + return 0; } - void test_buffer_constructor_true() + int test_buffer_constructor_true() { value_type * buffer = alloc_and_init_buffer(); expected_calls a(tested_allocation_traits::allocbuf_calls); expected_calls f(tested_allocation_traits::freebuf_calls); { tested_sequence a(4, buffer, true); - BOOST_CHECK_EQUAL(CORBA::ULong(32), a.maximum()); - BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); - BOOST_CHECK_EQUAL(buffer, a.get_buffer()); - BOOST_CHECK_EQUAL(int( 1), a[0]); - BOOST_CHECK_EQUAL(int( 4), a[1]); - BOOST_CHECK_EQUAL(int( 9), a[2]); - BOOST_CHECK_EQUAL(int(16), a[3]); - BOOST_CHECK_EQUAL(true, a.release()); + CHECK_EQUAL(CORBA::ULong(32), a.maximum()); + CHECK_EQUAL(CORBA::ULong(4), a.length()); + CHECK_EQUAL(buffer, a.get_buffer()); + CHECK_EQUAL(int( 1), a[0]); + CHECK_EQUAL(int( 4), a[1]); + CHECK_EQUAL(int( 9), a[2]); + CHECK_EQUAL(int(16), a[3]); + CHECK_EQUAL(true, a.release()); } - BOOST_CHECK_MESSAGE(a.expect(0), a); - BOOST_CHECK_MESSAGE(f.expect(1), f); + FAIL_RETURN_IF_NOT(a.expect(0), a); + FAIL_RETURN_IF_NOT(f.expect(1), f); + return 0; } - void test_replace_default() + int test_replace_default() { value_type * buffer = alloc_and_init_buffer(); @@ -165,24 +169,26 @@ struct Tester { tested_sequence a; a.replace(4, buffer); - BOOST_CHECK_MESSAGE(c.expect(0), c); - BOOST_CHECK_MESSAGE(f.expect(1), f); - - BOOST_CHECK_EQUAL(CORBA::ULong(32), a.maximum()); - BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); - BOOST_CHECK_EQUAL(buffer, a.get_buffer()); - BOOST_CHECK_EQUAL(int( 1), a[0]); - BOOST_CHECK_EQUAL(int( 4), a[1]); - BOOST_CHECK_EQUAL(int( 9), a[2]); - BOOST_CHECK_EQUAL(int(16), a[3]); - BOOST_CHECK_EQUAL(false, a.release()); + FAIL_RETURN_IF_NOT(c.expect(0), c); + // Default constructed sequence doesn't allocate a buffer. + FAIL_RETURN_IF_NOT(f.expect(0), f); + + CHECK_EQUAL(CORBA::ULong(32), a.maximum()); + CHECK_EQUAL(CORBA::ULong(4), a.length()); + CHECK_EQUAL(buffer, a.get_buffer()); + CHECK_EQUAL(int( 1), a[0]); + CHECK_EQUAL(int( 4), a[1]); + CHECK_EQUAL(int( 9), a[2]); + CHECK_EQUAL(int(16), a[3]); + CHECK_EQUAL(false, a.release()); } - BOOST_CHECK_MESSAGE(c.expect(0), c); - BOOST_CHECK_MESSAGE(f.expect(0), f); + FAIL_RETURN_IF_NOT(c.expect(0), c); + FAIL_RETURN_IF_NOT(f.expect(0), f); tested_sequence::freebuf(buffer); + return 0; } - void test_replace_false() + int test_replace_false() { value_type * buffer = alloc_and_init_buffer(); expected_calls c(tested_allocation_traits::allocbuf_calls); @@ -191,24 +197,26 @@ struct Tester { tested_sequence a; a.replace(4, buffer, false); - BOOST_CHECK_MESSAGE(c.expect(0), c); - BOOST_CHECK_MESSAGE(f.expect(1), f); - - BOOST_CHECK_EQUAL(CORBA::ULong(32), a.maximum()); - BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); - BOOST_CHECK_EQUAL(buffer, a.get_buffer()); - BOOST_CHECK_EQUAL(int( 1), a[0]); - BOOST_CHECK_EQUAL(int( 4), a[1]); - BOOST_CHECK_EQUAL(int( 9), a[2]); - BOOST_CHECK_EQUAL(int(16), a[3]); - BOOST_CHECK_EQUAL(false, a.release()); + FAIL_RETURN_IF_NOT(c.expect(0), c); + // Default constructed sequence doesn't allocate a buffer. + FAIL_RETURN_IF_NOT(f.expect(0), f); + + CHECK_EQUAL(CORBA::ULong(32), a.maximum()); + CHECK_EQUAL(CORBA::ULong(4), a.length()); + CHECK_EQUAL(buffer, a.get_buffer()); + CHECK_EQUAL(int( 1), a[0]); + CHECK_EQUAL(int( 4), a[1]); + CHECK_EQUAL(int( 9), a[2]); + CHECK_EQUAL(int(16), a[3]); + CHECK_EQUAL(false, a.release()); } - BOOST_CHECK_MESSAGE(c.expect(0), c); - BOOST_CHECK_MESSAGE(f.expect(0), f); + FAIL_RETURN_IF_NOT(c.expect(0), c); + FAIL_RETURN_IF_NOT(f.expect(0), f); tested_sequence::freebuf(buffer); + return 0; } - void test_replace_true() + int test_replace_true() { value_type * buffer = alloc_and_init_buffer(); expected_calls c(tested_allocation_traits::allocbuf_calls); @@ -217,144 +225,107 @@ struct Tester { tested_sequence a; a.replace(4, buffer, true); - BOOST_CHECK_MESSAGE(c.expect(0), c); - BOOST_CHECK_MESSAGE(f.expect(1), f); - - BOOST_CHECK_EQUAL(CORBA::ULong(32), a.maximum()); - BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length()); - BOOST_CHECK_EQUAL(buffer, a.get_buffer()); - BOOST_CHECK_EQUAL(int( 1), a[0]); - BOOST_CHECK_EQUAL(int( 4), a[1]); - BOOST_CHECK_EQUAL(int( 9), a[2]); - BOOST_CHECK_EQUAL(int(16), a[3]); - BOOST_CHECK_EQUAL(true, a.release()); + FAIL_RETURN_IF_NOT(c.expect(0), c); + // Default constructed sequence doesn't allocate a buffer. + FAIL_RETURN_IF_NOT(f.expect(0), f); + + CHECK_EQUAL(CORBA::ULong(32), a.maximum()); + CHECK_EQUAL(CORBA::ULong(4), a.length()); + CHECK_EQUAL(buffer, a.get_buffer()); + CHECK_EQUAL(int( 1), a[0]); + CHECK_EQUAL(int( 4), a[1]); + CHECK_EQUAL(int( 9), a[2]); + CHECK_EQUAL(int(16), a[3]); + CHECK_EQUAL(true, a.release()); } - BOOST_CHECK_MESSAGE(c.expect(0), c); - BOOST_CHECK_MESSAGE(f.expect(1), f); + FAIL_RETURN_IF_NOT(c.expect(0), c); + FAIL_RETURN_IF_NOT(f.expect(1), f); + return 0; } - void test_get_buffer_default() + int test_get_buffer_default() { value_type * buffer = alloc_and_init_buffer(); tested_sequence a(4, buffer, true); - BOOST_CHECK_EQUAL(a.get_buffer(), buffer); + CHECK_EQUAL(a.get_buffer(), buffer); + return 0; } - void test_get_buffer_false() + int test_get_buffer_false() { value_type * buffer = alloc_and_init_buffer(); tested_sequence a(4, buffer, true); - BOOST_CHECK_EQUAL(a.get_buffer(), buffer); + CHECK_EQUAL(a.get_buffer(), buffer); + return 0; } - void test_get_buffer_true_with_release_false() + int test_get_buffer_true_with_release_false() { value_type * buffer = alloc_and_init_buffer(); tested_sequence a(4, buffer, false); - BOOST_CHECK(0 == a.get_buffer(true)); + CHECK(0 == a.get_buffer(true)); tested_sequence::freebuf(buffer); + return 0; } - void test_get_buffer_true_with_release_true() + int test_get_buffer_true_with_release_true() { value_type * buffer = alloc_and_init_buffer(); expected_calls c(tested_allocation_traits::default_buffer_allocation_calls); expected_calls f(tested_allocation_traits::freebuf_calls); { tested_sequence a(4, buffer, true); - BOOST_CHECK_EQUAL(buffer, a.get_buffer(true)); + CHECK_EQUAL(buffer, a.get_buffer(true)); tested_sequence const & b = a; - BOOST_CHECK_EQUAL(MAXIMUM, b.maximum()); - BOOST_CHECK_EQUAL(0UL, b.length()); - BOOST_CHECK(0 != b.get_buffer()); - BOOST_CHECK_EQUAL(true, b.release()); + CHECK_EQUAL(MAXIMUM, b.maximum()); + CHECK_EQUAL(0UL, b.length()); + CHECK(0 != b.get_buffer()); + CHECK_EQUAL(true, b.release()); - BOOST_CHECK_MESSAGE(c.expect(1), c); + FAIL_RETURN_IF_NOT(c.expect(1), c); - BOOST_CHECK(buffer != b.get_buffer()); + CHECK(buffer != b.get_buffer()); } - BOOST_CHECK_MESSAGE(c.expect(0), c); - BOOST_CHECK_MESSAGE(f.expect(1), c); + FAIL_RETURN_IF_NOT(c.expect(0), c); + FAIL_RETURN_IF_NOT(f.expect(1), c); tested_sequence::freebuf(buffer); + return 0; } - void add_all(test_suite * ts) + int test_all() { - boost::shared_ptr<Tester> shared_this(self_); - - ts->add(BOOST_CLASS_TEST_CASE( - &Tester::test_set_length_less_than_maximum, - shared_this)); - ts->add(BOOST_CLASS_TEST_CASE( - &Tester::test_set_length_more_than_maximum, - shared_this)); - - ts->add(BOOST_CLASS_TEST_CASE( - &Tester::test_regression_2201, - shared_this)); - - ts->add(BOOST_CLASS_TEST_CASE( - &Tester::test_buffer_constructor_default, - shared_this)); - ts->add(BOOST_CLASS_TEST_CASE( - &Tester::test_buffer_constructor_false, - shared_this)); - ts->add(BOOST_CLASS_TEST_CASE( - &Tester::test_buffer_constructor_true, - shared_this)); - ts->add(BOOST_CLASS_TEST_CASE( - &Tester::test_replace_default, - shared_this)); - ts->add(BOOST_CLASS_TEST_CASE( - &Tester::test_replace_false, - shared_this)); - ts->add(BOOST_CLASS_TEST_CASE( - &Tester::test_replace_true, - shared_this)); - ts->add(BOOST_CLASS_TEST_CASE( - &Tester::test_get_buffer_false, - shared_this)); - ts->add(BOOST_CLASS_TEST_CASE( - &Tester::test_get_buffer_true_with_release_false, - shared_this)); - ts->add(BOOST_CLASS_TEST_CASE( - &Tester::test_get_buffer_true_with_release_true, - shared_this)); - + int status = 0; + status += this->test_set_length_less_than_maximum(); + status += this->test_set_length_more_than_maximum(); + status += this->test_regression_2201(); + status += this->test_buffer_constructor_default(); + status += this->test_buffer_constructor_false(); + status += this->test_buffer_constructor_true(); + status += this->test_replace_default(); + status += this->test_replace_false(); + status += this->test_replace_true(); + status += this->test_get_buffer_false(); + status += this->test_get_buffer_true_with_release_false(); + status += this->test_get_buffer_true_with_release_true(); + return status; } - - static boost::shared_ptr<Tester> allocate() - { - boost::shared_ptr<Tester> ptr(new Tester); - ptr->self_ = ptr; - - return ptr; - } - -private: Tester() {} - - boost::weak_ptr<Tester> self_; }; -ACE_Proper_Export_Flag test_suite * -init_unit_test_suite(int, char*[]) +int ACE_TMAIN(int,ACE_TCHAR*[]) { - test_suite * ts = - BOOST_TEST_SUITE("unbounded value sequence unit test"); - + int status = 0; { - boost::shared_ptr<Tester> tester(Tester::allocate()); - tester->add_all(ts); + Tester tester; + status += tester.test_all (); } { typedef value_sequence_tester<tested_sequence,tested_allocation_traits> common; - boost::shared_ptr<common> tester(common::allocate(true)); - tester->add_all(ts); + common tester; + status += tester.test_all (); } - return ts; + return status; } - |