]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/serialization/test/test_boost_array.cpp
1 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
4 // (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
5 // Use, modification and distribution is subject to the Boost Software
6 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
9 // should pass compilation and execution
13 #include <boost/config.hpp>
16 #include <algorithm> // equal
17 #include <cstdio> // remove
18 #if defined(BOOST_NO_STDC_NAMESPACE)
23 #include "test_tools.hpp"
24 #include <boost/core/no_exceptions_support.hpp>
25 #include <boost/archive/archive_exception.hpp>
26 #include <boost/serialization/boost_array.hpp>
32 int test_boost_array(){
33 const char * testfile
= boost::archive::tmpnam(NULL
);
34 BOOST_REQUIRE(NULL
!= testfile
);
36 // test array of objects
37 const boost::array
<T
,10> a_array
= {{T(),T(),T(),T(),T(),T(),T(),T(),T(),T()}};
39 test_ostream
os(testfile
, TEST_STREAM_FLAGS
);
40 test_oarchive
oa(os
, TEST_ARCHIVE_FLAGS
);
41 oa
<< boost::serialization::make_nvp("a_array", a_array
);
44 boost::array
<T
,10> a_array1
;
45 test_istream
is(testfile
, TEST_STREAM_FLAGS
);
47 test_iarchive
ia(is
, TEST_ARCHIVE_FLAGS
);
48 ia
>> boost::serialization::make_nvp("a_array", a_array1
);
51 BOOST_CHECK(std::equal(a_array
.begin(), a_array
.end(), a_array1
.begin()));
54 boost::array
<T
, 9> a_array1
;
55 test_istream
is(testfile
, TEST_STREAM_FLAGS
);
57 test_iarchive
ia(is
, TEST_ARCHIVE_FLAGS
);
58 bool exception_invoked
= false;
60 ia
>> boost::serialization::make_nvp("a_array", a_array1
);
62 BOOST_CATCH (boost::archive::archive_exception
const& ae
){
64 boost::archive::archive_exception::array_size_too_short
67 exception_invoked
= true;
70 BOOST_CHECK(exception_invoked
);
74 std::remove(testfile
);
78 int test_main( int /* argc */, char* /* argv */[] ){
82 res
= test_boost_array
<A
>();
83 if (res
!= EXIT_SUCCESS
)
85 // test an int array for which optimized versions should be available
86 res
= test_boost_array
<int>();
87 if (res
!= EXIT_SUCCESS
)