summaryrefslogtreecommitdiff
path: root/libs/serialization/test/test_array.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/serialization/test/test_array.cpp')
-rw-r--r--libs/serialization/test/test_array.cpp145
1 files changed, 83 insertions, 62 deletions
diff --git a/libs/serialization/test/test_array.cpp b/libs/serialization/test/test_array.cpp
index c3cb402e4..9179fd02f 100644
--- a/libs/serialization/test/test_array.cpp
+++ b/libs/serialization/test/test_array.cpp
@@ -8,8 +8,9 @@
// should pass compilation and execution
-#include <boost/config.hpp>
+#include <stdlib.h>
+#include <boost/config.hpp>
#include <cstddef>
#include <fstream>
#include <algorithm> // equal
@@ -21,7 +22,7 @@ namespace std{
#endif
#include <boost/foreach.hpp>
#include "test_tools.hpp"
-#include <boost/detail/no_exceptions_support.hpp>
+#include <boost/core/no_exceptions_support.hpp>
#include <boost/archive/archive_exception.hpp>
#include <boost/array.hpp>
@@ -38,43 +39,53 @@ int test_native_array(){
const T b_array[2][3]={{T(),T(),T()},{T(),T(),T()}};
{
test_ostream os(testfile, TEST_STREAM_FLAGS);
- test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
- oa << boost::serialization::make_nvp("a_array", a_array);
- oa << boost::serialization::make_nvp("b_array", b_array);
+ {
+ test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
+ oa << boost::serialization::make_nvp("a_array", a_array);
+ oa << boost::serialization::make_nvp("b_array", b_array);
+ }
+ os.close();
}
{
T a_array1[10];
T b_array1[2][3];
test_istream is(testfile, TEST_STREAM_FLAGS);
- test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
- ia >> boost::serialization::make_nvp("a_array", a_array1);
- ia >> boost::serialization::make_nvp("b_array", b_array1);
-
+ {
+ test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+ ia >> boost::serialization::make_nvp("a_array", a_array1);
+ ia >> boost::serialization::make_nvp("b_array", b_array1);
+ }
+ is.close();
BOOST_CHECK(std::equal(& a_array[0], & a_array[10], & a_array1[0]));
BOOST_CHECK(b_array[0][0] == b_array1[0][0]);
BOOST_CHECK(b_array[1][0] == b_array1[1][0]);
}
{
T a_array1[9];
+ T b_array1[2][3];
test_istream is(testfile, TEST_STREAM_FLAGS);
- BOOST_TRY {
- test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
- bool exception_invoked = false;
+ {
BOOST_TRY {
- ia >> boost::serialization::make_nvp("a_array", a_array1);
- }
- BOOST_CATCH (boost::archive::archive_exception ae){
- BOOST_CHECK(
- boost::archive::archive_exception::array_size_too_short
- == ae.code
- );
- exception_invoked = true;
+ test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+ bool exception_invoked = false;
+ BOOST_TRY {
+ ia >> boost::serialization::make_nvp("a_array", a_array1);
+ ia >> boost::serialization::make_nvp("b_array", b_array1);
+ }
+ BOOST_CATCH (boost::archive::archive_exception ae){
+ BOOST_CHECK(
+ boost::archive::archive_exception::array_size_too_short
+ == ae.code
+ );
+ exception_invoked = true;
+ }
+ BOOST_CATCH_END
+ BOOST_CHECK(exception_invoked);
}
+ BOOST_CATCH (boost::archive::archive_exception ae){}
BOOST_CATCH_END
- BOOST_CHECK(exception_invoked);
}
- BOOST_CATCH (boost::archive::archive_exception ae){}
- BOOST_CATCH_END
+ is.close();
}
std::remove(testfile);
return EXIT_SUCCESS;
@@ -95,32 +106,37 @@ int test_boost_array(){
{
boost::array<T,10> a_array1;
test_istream is(testfile, TEST_STREAM_FLAGS);
- test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
- ia >> boost::serialization::make_nvp("a_array", a_array1);
-
+ {
+ test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+ ia >> boost::serialization::make_nvp("a_array", a_array1);
+ }
+ is.close();
BOOST_CHECK(std::equal(a_array.begin(), a_array.end(), a_array1.begin()));
}
{
boost::array<T, 9> a_array1;
test_istream is(testfile, TEST_STREAM_FLAGS);
- BOOST_TRY {
- test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
- bool exception_invoked = false;
+ {
BOOST_TRY {
- ia >> boost::serialization::make_nvp("a_array", a_array1);
- }
- BOOST_CATCH (boost::archive::archive_exception ae){
- BOOST_CHECK(
- boost::archive::archive_exception::array_size_too_short
- == ae.code
- );
- exception_invoked = true;
+ test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+ bool exception_invoked = false;
+ BOOST_TRY {
+ ia >> boost::serialization::make_nvp("a_array", a_array1);
+ }
+ BOOST_CATCH (boost::archive::archive_exception ae){
+ BOOST_CHECK(
+ boost::archive::archive_exception::array_size_too_short
+ == ae.code
+ );
+ exception_invoked = true;
+ }
+ BOOST_CATCH_END
+ BOOST_CHECK(exception_invoked);
}
+ BOOST_CATCH (boost::archive::archive_exception ae){}
BOOST_CATCH_END
- BOOST_CHECK(exception_invoked);
}
- BOOST_CATCH (boost::archive::archive_exception ae){}
- BOOST_CATCH_END
+ is.close();
}
std::remove(testfile);
return EXIT_SUCCESS;
@@ -135,7 +151,7 @@ int test_std_array(){
BOOST_REQUIRE(NULL != testfile);
// test array of objects
- const std::array<T, 10> a_array = {T(),T(),T(),T(),T(),T(),T(),T(),T(),T()};
+ const std::array<T, 10> a_array = {{T(),T(),T(),T(),T(),T(),T(),T(),T(),T()}};
{
test_ostream os(testfile, TEST_STREAM_FLAGS);
test_oarchive oa(os, TEST_ARCHIVE_FLAGS);
@@ -144,32 +160,36 @@ int test_std_array(){
{
std::array<T, 10> a_array1;
test_istream is(testfile, TEST_STREAM_FLAGS);
- test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
- ia >> boost::serialization::make_nvp("a_array", a_array1);
-
+ {
+ test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+ ia >> boost::serialization::make_nvp("a_array", a_array1);
+ }
BOOST_CHECK(std::equal(a_array.begin(), a_array.end(), a_array1.begin()));
}
{
std::array<T, 9> a_array1;
test_istream is(testfile, TEST_STREAM_FLAGS);
- BOOST_TRY {
- test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
- bool exception_invoked = false;
+ {
BOOST_TRY {
- ia >> boost::serialization::make_nvp("a_array", a_array1);
- }
- BOOST_CATCH (boost::archive::archive_exception ae){
- BOOST_CHECK(
- boost::archive::archive_exception::array_size_too_short
- == ae.code
- );
- exception_invoked = true;
+ test_iarchive ia(is, TEST_ARCHIVE_FLAGS);
+ bool exception_invoked = false;
+ BOOST_TRY {
+ ia >> boost::serialization::make_nvp("a_array", a_array1);
+ }
+ BOOST_CATCH (boost::archive::archive_exception ae){
+ BOOST_CHECK(
+ boost::archive::archive_exception::array_size_too_short
+ == ae.code
+ );
+ exception_invoked = true;
+ }
+ BOOST_CATCH_END
+ BOOST_CHECK(exception_invoked);
}
+ BOOST_CATCH (boost::archive::archive_exception ae){}
BOOST_CATCH_END
- BOOST_CHECK(exception_invoked);
}
- BOOST_CATCH (boost::archive::archive_exception ae){}
- BOOST_CATCH_END
+ is.close();
}
std::remove(testfile);
return EXIT_SUCCESS;
@@ -179,7 +199,7 @@ int test_std_array(){
int test_main( int /* argc */, char* /* argv */[] )
{
int res;
-
+ // native array
res = test_native_array<A>();
if (res != EXIT_SUCCESS)
return EXIT_FAILURE;
@@ -187,7 +207,8 @@ int test_main( int /* argc */, char* /* argv */[] )
res = test_native_array<int>();
if (res != EXIT_SUCCESS)
return EXIT_FAILURE;
-
+
+ // boost array
res = test_boost_array<A>();
if (res != EXIT_SUCCESS)
return EXIT_FAILURE;
@@ -195,7 +216,8 @@ int test_main( int /* argc */, char* /* argv */[] )
res = test_boost_array<int>();
if (res != EXIT_SUCCESS)
return EXIT_FAILURE;
-
+
+ // std array
#ifndef BOOST_NO_CXX11_HDR_ARRAY
res = test_std_array<A>();
if (res != EXIT_SUCCESS)
@@ -205,7 +227,6 @@ int test_main( int /* argc */, char* /* argv */[] )
if (res != EXIT_SUCCESS)
return EXIT_FAILURE;
#endif
-
return EXIT_SUCCESS;
}