libjmmcg  release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
dataflow_full.cpp File Reference
#include "stdafx.h"
#include <boost/test/included/unit_test.hpp>
#include <boost/mpl/list.hpp>
#include "core/thread_pool_sequential.hpp"
#include "core/thread_pool_master.hpp"
#include "core/thread_pool_workers.hpp"
#include <boost/bind/bind.hpp>
Include dependency graph for dataflow_full.cpp:

Go to the source code of this file.

Classes

struct  fifo_queue_t< Db, Sz, Jn, Mdl, PoolSize, GSSk >
 
struct  lifo_queue_t< Db, Sz, Jn, Mdl, PoolSize, GSSk >
 
struct  priority_queue_t< Db, Sz, Jn, Mdl, PoolSize, GSSk >
 
struct  res_t
 
struct  work_type
 
struct  work_type_simple
 
struct  bad_return_type
 
struct  erase_test_work_type< API, Mdl >
 
struct  erase_test_work_type< API, sequential_mode >
 
struct  bool_work_type
 
struct  throw_work_type
 
struct  horizontal_work_type< API, Mdl >
 
struct  horizontal_work_type< API, sequential_mode >
 
struct  horizontal_work_type_rel< API, Mdl >
 

Macros

#define BOOST_TEST_MODULE   libjmmcg_tests
 

Typedefs

typedef boost::mpl::list< fifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode >, lifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode >, priority_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode >, fifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 1 >, lifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 1 >, priority_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 1 >, fifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 2 >, lifo_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 2 >, priority_queue_t< pool_traits::work_distribution_mode_t::worker_threads_get_work< pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue >, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 2 >> finite_test_types
 
typedef boost::mpl::list< fifo_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode >, lifo_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode >, priority_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode >, fifo_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::joinable, heavyweight_threading >, lifo_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::joinable, heavyweight_threading >, priority_queue_t< pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::joinable, heavyweight_threading >> infinite_test_types
 

Functions

 BOOST_AUTO_TEST_CASE_TEMPLATE (one_thread, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (n_threads, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_one_work, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_one_work_boost_bind, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (erase_one_work_after_waiting, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (access_erased_work, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_one_work_time_critical, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_one_work_throw_exception, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_two_work, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (horizontal_threading, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (unary_fn, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (logical_and_false, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (logical_and_true, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (logical_or_false, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (logical_or_true, T, finite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (default_ctor, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_one_work, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_one_work_boost_bind, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_one_work_time_critical, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_one_work_throw_exception, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (add_two_work, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (unary_fn, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (logical_and_false, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (logical_and_true, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (logical_or_false, T, infinite_test_types)
 
 BOOST_AUTO_TEST_CASE_TEMPLATE (logical_or_true, T, infinite_test_types)
 

Macro Definition Documentation

◆ BOOST_TEST_MODULE

#define BOOST_TEST_MODULE   libjmmcg_tests

Definition at line 21 of file dataflow_full.cpp.

Typedef Documentation

◆ finite_test_types

typedef boost::mpl::list< fifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode>, lifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode>, priority_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode>, fifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 1>, lifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 1>, priority_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 1>, fifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 2>, lifo_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 2>, priority_queue_t<pool_traits::work_distribution_mode_t::worker_threads_get_work<pool_traits::work_distribution_mode_t::queue_model_t::pool_owns_queue>, pool_traits::size_mode_t::fixed_size, generic_traits::return_data::joinable, heavyweight_threading, 2>> finite_test_types

Definition at line 98 of file dataflow_full.cpp.

◆ infinite_test_types

typedef boost::mpl::list< fifo_queue_t<pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode>, lifo_queue_t<pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode>, priority_queue_t<pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::sequential, generic_traits::return_data::joinable, sequential_mode>, fifo_queue_t<pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::joinable, heavyweight_threading>, lifo_queue_t<pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::joinable, heavyweight_threading>, priority_queue_t<pool_traits::work_distribution_mode_t::one_thread_distributes<>, pool_traits::size_mode_t::infinite, generic_traits::return_data::joinable, heavyweight_threading>> infinite_test_types

Definition at line 116 of file dataflow_full.cpp.

Function Documentation

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [1/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( access_erased_work  ,
,
finite_test_types   
)

Definition at line 370 of file dataflow_full.cpp.

References work_type_simple::work_type_simple().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [2/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_one_work  ,
,
finite_test_types   
)

Definition at line 318 of file dataflow_full.cpp.

References work_type_simple::work_type_simple().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [3/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_one_work  ,
,
infinite_test_types   
)

Definition at line 562 of file dataflow_full.cpp.

References work_type_simple::work_type_simple().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [4/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_one_work_boost_bind  ,
,
finite_test_types   
)

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [5/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_one_work_boost_bind  ,
,
infinite_test_types   
)

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [6/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_one_work_throw_exception  ,
,
finite_test_types   
)

Definition at line 419 of file dataflow_full.cpp.

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [7/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_one_work_throw_exception  ,
,
infinite_test_types   
)

Definition at line 607 of file dataflow_full.cpp.

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [8/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_one_work_time_critical  ,
,
finite_test_types   
)

Definition at line 405 of file dataflow_full.cpp.

References work_type_simple::work_type_simple().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [9/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_one_work_time_critical  ,
,
infinite_test_types   
)

Definition at line 594 of file dataflow_full.cpp.

References work_type_simple::work_type_simple().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [10/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_two_work  ,
,
finite_test_types   
)

Definition at line 436 of file dataflow_full.cpp.

References work_type_simple::work_type_simple().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [11/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( add_two_work  ,
,
infinite_test_types   
)

Definition at line 624 of file dataflow_full.cpp.

References work_type_simple::work_type_simple().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [12/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( default_ctor  ,
,
infinite_test_types   
)

Definition at line 547 of file dataflow_full.cpp.

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [13/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( erase_one_work_after_waiting  ,
,
finite_test_types   
)

Definition at line 352 of file dataflow_full.cpp.

References work_type::work_type().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [14/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( horizontal_threading  ,
,
finite_test_types   
)

Definition at line 453 of file dataflow_full.cpp.

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [15/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( logical_and_false  ,
,
finite_test_types   
)

Definition at line 483 of file dataflow_full.cpp.

References bool_work_type::bool_work_type().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [16/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( logical_and_false  ,
,
infinite_test_types   
)

Definition at line 651 of file dataflow_full.cpp.

References bool_work_type::bool_work_type().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [17/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( logical_and_true  ,
,
finite_test_types   
)

Definition at line 497 of file dataflow_full.cpp.

References bool_work_type::bool_work_type().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [18/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( logical_and_true  ,
,
infinite_test_types   
)

Definition at line 662 of file dataflow_full.cpp.

References bool_work_type::bool_work_type().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [19/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( logical_or_false  ,
,
finite_test_types   
)

Definition at line 511 of file dataflow_full.cpp.

References bool_work_type::bool_work_type().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [20/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( logical_or_false  ,
,
infinite_test_types   
)

Definition at line 673 of file dataflow_full.cpp.

References bool_work_type::bool_work_type().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [21/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( logical_or_true  ,
,
finite_test_types   
)

Definition at line 525 of file dataflow_full.cpp.

References bool_work_type::bool_work_type().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [22/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( logical_or_true  ,
,
infinite_test_types   
)

Definition at line 684 of file dataflow_full.cpp.

References bool_work_type::bool_work_type().

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [23/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( n_threads  ,
,
finite_test_types   
)

Definition at line 302 of file dataflow_full.cpp.

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [24/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( one_thread  ,
,
finite_test_types   
)

Definition at line 290 of file dataflow_full.cpp.

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [25/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( unary_fn  ,
,
finite_test_types   
)

Definition at line 471 of file dataflow_full.cpp.

◆ BOOST_AUTO_TEST_CASE_TEMPLATE() [26/26]

BOOST_AUTO_TEST_CASE_TEMPLATE ( unary_fn  ,
,
infinite_test_types   
)

Definition at line 640 of file dataflow_full.cpp.