diff options
Diffstat (limited to 'libs/geometry/index/test/rtree/interprocess')
8 files changed, 233 insertions, 0 deletions
diff --git a/libs/geometry/index/test/rtree/interprocess/Jamfile.v2 b/libs/geometry/index/test/rtree/interprocess/Jamfile.v2 new file mode 100644 index 000000000..be709a43b --- /dev/null +++ b/libs/geometry/index/test/rtree/interprocess/Jamfile.v2 @@ -0,0 +1,29 @@ +# Boost.Geometry Index +# +# Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland. +# +# Use, modification and distribution is subject to 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) + +rule test_all +{ + local all_rules = ; + + for local fileb in [ glob *.cpp ] + { + all_rules += [ run $(fileb) /boost/thread//boost_thread + : # additional args + : # test-files + : # requirements + <toolset>acc:<linkflags>-lrt + <toolset>acc-pa_risc:<linkflags>-lrt + <toolset>gcc-mingw:<linkflags>"-lole32 -loleaut32 -lpsapi -ladvapi32" + <host-os>hpux,<toolset>gcc:<linkflags>"-Wl,+as,mpas" + ] ; + } + + return $(all_rules) ; +} + +test-suite boost-geometry-index-rtree-interprocess : [ test_all r ] : <threading>multi ; diff --git a/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_linear.cpp b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_linear.cpp new file mode 100644 index 000000000..1a6077f41 --- /dev/null +++ b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_linear.cpp @@ -0,0 +1,20 @@ +// Boost.Geometry Index +// Unit Test + +// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland. + +// Use, modification and distribution is subject to 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) + +#include <rtree/interprocess/test_interprocess.hpp> + +int test_main(int, char* []) +{ + typedef bg::model::point<float, 2, bg::cs::cartesian> P2f; + + testset::interprocess::modifiers<P2f>(bgi::linear<32, 8>()); + testset::interprocess::additional<P2f>(bgi::linear<32, 8>()); + + return 0; +} diff --git a/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_linear_dyn.cpp b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_linear_dyn.cpp new file mode 100644 index 000000000..4823bbb57 --- /dev/null +++ b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_linear_dyn.cpp @@ -0,0 +1,20 @@ +// Boost.Geometry Index +// Unit Test + +// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland. + +// Use, modification and distribution is subject to 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) + +#include <rtree/interprocess/test_interprocess.hpp> + +int test_main(int, char* []) +{ + typedef bg::model::point<float, 2, bg::cs::cartesian> P2f; + + testset::interprocess::modifiers<P2f>(bgi::dynamic_linear(32, 8)); + testset::interprocess::additional<P2f>(bgi::dynamic_linear(32, 8)); + + return 0; +} diff --git a/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_quadratic.cpp b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_quadratic.cpp new file mode 100644 index 000000000..8a8bea0e8 --- /dev/null +++ b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_quadratic.cpp @@ -0,0 +1,20 @@ +// Boost.Geometry Index +// Unit Test + +// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland. + +// Use, modification and distribution is subject to 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) + +#include <rtree/interprocess/test_interprocess.hpp> + +int test_main(int, char* []) +{ + typedef bg::model::point<float, 2, bg::cs::cartesian> P2f; + + testset::interprocess::modifiers<P2f>(bgi::quadratic<32, 8>()); + testset::interprocess::additional<P2f>(bgi::quadratic<32, 8>()); + + return 0; +} diff --git a/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_quadratic_dyn.cpp b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_quadratic_dyn.cpp new file mode 100644 index 000000000..b7710ef4b --- /dev/null +++ b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_quadratic_dyn.cpp @@ -0,0 +1,20 @@ +// Boost.Geometry Index +// Unit Test + +// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland. + +// Use, modification and distribution is subject to 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) + +#include <rtree/interprocess/test_interprocess.hpp> + +int test_main(int, char* []) +{ + typedef bg::model::point<float, 2, bg::cs::cartesian> P2f; + + testset::interprocess::modifiers<P2f>(bgi::dynamic_quadratic(32, 8)); + testset::interprocess::additional<P2f>(bgi::dynamic_quadratic(32, 8)); + + return 0; +} diff --git a/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_rstar.cpp b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_rstar.cpp new file mode 100644 index 000000000..8402bb0fc --- /dev/null +++ b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_rstar.cpp @@ -0,0 +1,20 @@ +// Boost.Geometry Index +// Unit Test + +// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland. + +// Use, modification and distribution is subject to 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) + +#include <rtree/interprocess/test_interprocess.hpp> + +int test_main(int, char* []) +{ + typedef bg::model::point<float, 2, bg::cs::cartesian> P2f; + + testset::interprocess::modifiers<P2f>(bgi::rstar<32, 8>()); + testset::interprocess::additional<P2f>(bgi::rstar<32, 8>()); + + return 0; +} diff --git a/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_rstar_dyn.cpp b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_rstar_dyn.cpp new file mode 100644 index 000000000..52c81e958 --- /dev/null +++ b/libs/geometry/index/test/rtree/interprocess/rtree_interprocess_rstar_dyn.cpp @@ -0,0 +1,20 @@ +// Boost.Geometry Index +// Unit Test + +// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland. + +// Use, modification and distribution is subject to 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) + +#include <rtree/interprocess/test_interprocess.hpp> + +int test_main(int, char* []) +{ + typedef bg::model::point<float, 2, bg::cs::cartesian> P2f; + + testset::interprocess::modifiers<P2f>(bgi::dynamic_rstar(32, 8)); + testset::interprocess::additional<P2f>(bgi::dynamic_rstar(32, 8)); + + return 0; +} diff --git a/libs/geometry/index/test/rtree/interprocess/test_interprocess.hpp b/libs/geometry/index/test/rtree/interprocess/test_interprocess.hpp new file mode 100644 index 000000000..471f9fa15 --- /dev/null +++ b/libs/geometry/index/test/rtree/interprocess/test_interprocess.hpp @@ -0,0 +1,84 @@ +// Boost.Geometry Index +// Unit Test + +// Copyright (c) 2011-2013 Adam Wulkiewicz, Lodz, Poland. + +// Use, modification and distribution is subject to 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) + +#include <rtree/test_rtree.hpp> + +#include <boost/geometry/geometries/point.hpp> +#include <boost/geometry/geometries/box.hpp> + +#include <boost/interprocess/managed_shared_memory.hpp> +#include <boost/interprocess/allocators/allocator.hpp> + +template <typename Point, typename Parameters> +void test_rtree_interprocess(Parameters const& parameters = Parameters()) +{ + namespace bi = boost::interprocess; + struct shm_remove + { + shm_remove() { bi::shared_memory_object::remove("shmem"); } + ~shm_remove(){ bi::shared_memory_object::remove("shmem"); } + } remover; + + bi::managed_shared_memory segment(bi::create_only, "shmem", 65535); + typedef bi::allocator<Point, bi::managed_shared_memory::segment_manager> shmem_alloc; + + test_rtree_for_box<Point>(parameters, shmem_alloc(segment.get_segment_manager())); +} + +namespace testset { namespace interprocess { + +template <typename Indexable, typename Parameters> +void modifiers(Parameters const& parameters = Parameters()) +{ + namespace bi = boost::interprocess; + struct shm_remove + { + shm_remove() { bi::shared_memory_object::remove("shmem"); } + ~shm_remove(){ bi::shared_memory_object::remove("shmem"); } + } remover; + + bi::managed_shared_memory segment(bi::create_only, "shmem", 65535); + typedef bi::allocator<Indexable, bi::managed_shared_memory::segment_manager> shmem_alloc; + + testset::modifiers<Indexable>(parameters, shmem_alloc(segment.get_segment_manager())); +} + +template <typename Indexable, typename Parameters> +void queries(Parameters const& parameters = Parameters()) +{ + namespace bi = boost::interprocess; + struct shm_remove + { + shm_remove() { bi::shared_memory_object::remove("shmem"); } + ~shm_remove(){ bi::shared_memory_object::remove("shmem"); } + } remover; + + bi::managed_shared_memory segment(bi::create_only, "shmem", 65535); + typedef bi::allocator<Indexable, bi::managed_shared_memory::segment_manager> shmem_alloc; + + testset::queries<Indexable>(parameters, shmem_alloc(segment.get_segment_manager())); +} + +template <typename Indexable, typename Parameters> +void additional(Parameters const& parameters = Parameters()) +{ + namespace bi = boost::interprocess; + struct shm_remove + { + shm_remove() { bi::shared_memory_object::remove("shmem"); } + ~shm_remove(){ bi::shared_memory_object::remove("shmem"); } + } remover; + + bi::managed_shared_memory segment(bi::create_only, "shmem", 65535); + typedef bi::allocator<Indexable, bi::managed_shared_memory::segment_manager> shmem_alloc; + + testset::additional<Indexable>(parameters, shmem_alloc(segment.get_segment_manager())); +} + +}}
\ No newline at end of file |