From 97e11b024ed2068ddce6986ac719d2d4d25aa27c Mon Sep 17 00:00:00 2001 From: Niels Dekker Date: Thu, 27 Nov 2008 11:14:52 +0000 Subject: [PATCH] [utility/swap] Distinguished between testing array-of-array-of-class and array-of-array-of-int, as the latter appears to succeed on CodeGear 6.10 while the former does not. [SVN r49954] --- swap/test/Jamfile.v2 | 3 +- ..._array.cpp => array_of_array_of_class.cpp} | 2 + swap/test/array_of_array_of_int.cpp | 42 +++++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) rename swap/test/{array_of_array.cpp => array_of_array_of_class.cpp} (95%) create mode 100644 swap/test/array_of_array_of_int.cpp diff --git a/swap/test/Jamfile.v2 b/swap/test/Jamfile.v2 index de1cd69..f5b0d46 100644 --- a/swap/test/Jamfile.v2 +++ b/swap/test/Jamfile.v2 @@ -29,7 +29,8 @@ test-suite utility/swap [ run std_vector_of_global.cpp ../../../test/build//boost_test_exec_monitor/static ] [ run std_vector_of_other.cpp ../../../test/build//boost_test_exec_monitor/static ] [ run no_ambiguity_in_boost.cpp ../../../test/build//boost_test_exec_monitor/static ] - [ run array_of_array.cpp ../../../test/build//boost_test_exec_monitor/static ] + [ run array_of_array_of_class.cpp ../../../test/build//boost_test_exec_monitor/static ] + [ run array_of_array_of_int.cpp ../../../test/build//boost_test_exec_monitor/static ] [ run array_of_class.cpp ../../../test/build//boost_test_exec_monitor/static ] [ run array_of_int.cpp ../../../test/build//boost_test_exec_monitor/static ] [ run array_of_template.cpp ../../../test/build//boost_test_exec_monitor/static ] diff --git a/swap/test/array_of_array.cpp b/swap/test/array_of_array_of_class.cpp similarity index 95% rename from swap/test/array_of_array.cpp rename to swap/test/array_of_array_of_class.cpp index 06eee48..4f02578 100644 --- a/swap/test/array_of_array.cpp +++ b/swap/test/array_of_array_of_class.cpp @@ -4,6 +4,8 @@ // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) +// Tests swapping an array of arrays of swap_test_class objects by means of boost::swap. + #include #define BOOST_INCLUDE_MAIN #include diff --git a/swap/test/array_of_array_of_int.cpp b/swap/test/array_of_array_of_int.cpp new file mode 100644 index 0000000..c1778ec --- /dev/null +++ b/swap/test/array_of_array_of_int.cpp @@ -0,0 +1,42 @@ +// Copyright (c) 2008 Joseph Gauterin, Niels Dekker +// +// 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) + +// Tests swapping an array of arrays of integers by means of boost::swap. + +#include +#define BOOST_INCLUDE_MAIN +#include + +#include //for std::copy and std::equal +#include //for std::size_t + +int test_main(int, char*[]) +{ + const std::size_t first_dimension = 3; + const std::size_t second_dimension = 4; + const std::size_t number_of_elements = first_dimension * second_dimension; + + int array1[first_dimension][second_dimension]; + int array2[first_dimension][second_dimension]; + + int* const ptr1 = array1[0]; + int* const ptr2 = array2[0]; + + for (std::size_t i = 0; i < number_of_elements; ++i) + { + ptr1[i] = static_cast(i); + ptr2[i] = static_cast(i + number_of_elements); + } + + boost::swap(array1, array2); + + for (std::size_t i = 0; i < number_of_elements; ++i) + { + BOOST_CHECK_EQUAL(ptr1[i], static_cast(i + number_of_elements) ); + BOOST_CHECK_EQUAL(ptr2[i], static_cast(i) ); + } + return 0; +}