1 //////////////////////////////////////////////////////////////////////////////
3 // (C) Copyright Ion Gaztanaga 2004-2012. Distributed under the Boost
4 // Software License, Version 1.0. (See accompanying file
5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 // See http://www.boost.org/libs/interprocess for documentation.
9 //////////////////////////////////////////////////////////////////////////////
11 #include <boost/interprocess/detail/config_begin.hpp>
12 #include <boost/interprocess/managed_shared_memory.hpp>
13 #include <boost/interprocess/containers/vector.hpp>
14 #include <boost/interprocess/allocators/allocator.hpp>
15 #include "allocator_v1.hpp"
16 #include "check_equal_containers.hpp"
17 #include "movable_int.hpp"
18 #include "expand_bwd_test_allocator.hpp"
19 #include "expand_bwd_test_template.hpp"
20 #include "dummy_test_allocator.hpp"
21 #include "vector_test.hpp"
23 using namespace boost::interprocess
;
27 //Now test all back insertion possibilities
30 typedef test::expand_bwd_test_allocator
<int>
32 typedef vector
<int, int_allocator_type
>
35 if(!test::test_all_expand_bwd
<int_vector
>())
38 //Now user defined wrapped int
39 typedef test::expand_bwd_test_allocator
<test::int_holder
>
40 int_holder_allocator_type
;
41 typedef vector
<test::int_holder
, int_holder_allocator_type
>
44 if(!test::test_all_expand_bwd
<int_holder_vector
>())
47 //Now user defined bigger wrapped int
48 typedef test::expand_bwd_test_allocator
<test::triple_int_holder
>
49 triple_int_holder_allocator_type
;
51 typedef vector
<test::triple_int_holder
, triple_int_holder_allocator_type
>
52 triple_int_holder_vector
;
54 if(!test::test_all_expand_bwd
<triple_int_holder_vector
>())
62 typedef allocator
<int, managed_shared_memory::segment_manager
> ShmemAllocator
;
63 typedef vector
<int, ShmemAllocator
> MyVector
;
65 typedef test::allocator_v1
<int, managed_shared_memory::segment_manager
> ShmemV1Allocator
;
66 typedef vector
<int, ShmemV1Allocator
> MyV1Vector
;
68 typedef allocator
<test::movable_int
, managed_shared_memory::segment_manager
> ShmemMoveAllocator
;
69 typedef vector
<test::movable_int
, ShmemMoveAllocator
> MyMoveVector
;
71 typedef allocator
<test::movable_and_copyable_int
, managed_shared_memory::segment_manager
> ShmemCopyMoveAllocator
;
72 typedef vector
<test::movable_and_copyable_int
, ShmemCopyMoveAllocator
> MyCopyMoveVector
;
74 typedef allocator
<test::copyable_int
, managed_shared_memory::segment_manager
> ShmemCopyAllocator
;
75 typedef vector
<test::copyable_int
, ShmemCopyAllocator
> MyCopyVector
;
77 if(test::vector_test
<managed_shared_memory
, MyVector
>())
80 if(test::vector_test
<managed_shared_memory
, MyV1Vector
>())
83 if(test::vector_test
<managed_shared_memory
, MyMoveVector
>())
86 if(test::vector_test
<managed_shared_memory
, MyCopyMoveVector
>())
89 if(test::vector_test
<managed_shared_memory
, MyCopyVector
>())
95 const test::EmplaceOptions Options
= (test::EmplaceOptions
)(test::EMPLACE_BACK
| test::EMPLACE_BEFORE
);
96 if(!boost::interprocess::test::test_emplace
97 < vector
<test::EmplaceInt
>, Options
>())
103 #include <boost/interprocess/detail/config_end.hpp>