void test_for_each_exception_async(ExPolicy p, IteratorTag) { typedef std::vector<int>::iterator base_iterator; typedef test::test_iterator<base_iterator, IteratorTag> iterator; std::vector<int> c(10007); std::iota(std::begin(c), std::end(c), gen()); bool caught_exception = false; bool returned_from_algorithm = false; try { hpx::future<iterator> f = hpx::parallel::for_each(p, iterator(std::begin(c)), iterator(std::end(c)), throw_always()); returned_from_algorithm = true; f.get(); HPX_TEST(false); } catch(hpx::exception_list const& e) { caught_exception = true; test::test_num_exceptions<ExPolicy, IteratorTag>::call(p, e); } catch(...) { HPX_TEST(false); } HPX_TEST(caught_exception); HPX_TEST(returned_from_algorithm); }
void test_transform_binary2_exception_async(ExPolicy p, IteratorTag) { typedef std::vector<int>::iterator base_iterator; typedef test::test_iterator<base_iterator, IteratorTag> iterator; std::vector<int> c1(10007); std::vector<int> c2(c1.size()); std::vector<int> d1(c1.size()); //-V656 std::iota(boost::begin(c1), boost::end(c1), std::rand()); std::iota(boost::begin(c2), boost::end(c2), std::rand()); bool caught_exception = false; bool returned_from_algorithm = false; try { auto f = hpx::parallel::transform(p, iterator(boost::begin(c1)), iterator(boost::end(c1)), boost::begin(c2), boost::end(c2), boost::begin(d1), throw_always()); returned_from_algorithm = true; f.get(); HPX_TEST(false); } catch(hpx::exception_list const& e) { caught_exception = true; test::test_num_exceptions<ExPolicy, IteratorTag>::call(p, e); } catch(...) { HPX_TEST(false); } HPX_TEST(caught_exception); HPX_TEST(returned_from_algorithm); }
void test_for_each_exception(ExPolicy policy, IteratorTag) { static_assert( hpx::parallel::execution::is_execution_policy<ExPolicy>::value, "hpx::parallel::execution::is_execution_policy<ExPolicy>::value"); typedef std::vector<int>::iterator base_iterator; typedef test::test_iterator<base_iterator, IteratorTag> iterator; std::vector<int> c(10007); std::iota(std::begin(c), std::end(c), gen()); bool caught_exception = false; try { hpx::parallel::for_each(policy, iterator(std::begin(c)), iterator(std::end(c)), throw_always()); HPX_TEST(false); } catch(hpx::exception_list const& e) { caught_exception = true; test::test_num_exceptions<ExPolicy, IteratorTag>::call(policy, e); } catch(...) { HPX_TEST(false); } HPX_TEST(caught_exception); }
void test_transform_binary2_exception(ExPolicy policy, IteratorTag) { static_assert( hpx::parallel::is_execution_policy<ExPolicy>::value, "hpx::parallel::is_execution_policy<ExPolicy>::value"); typedef std::vector<int>::iterator base_iterator; typedef test::test_iterator<base_iterator, IteratorTag> iterator; std::vector<int> c1(10007); std::vector<int> c2(c1.size()); std::vector<int> d1(c1.size()); //-V656 std::iota(boost::begin(c1), boost::end(c1), std::rand()); std::iota(boost::begin(c2), boost::end(c2), std::rand()); bool caught_exception = false; try { hpx::parallel::transform(policy, iterator(boost::begin(c1)), iterator(boost::end(c1)), boost::begin(c2), boost::end(c2), boost::begin(d1), throw_always()); HPX_TEST(false); } catch(hpx::exception_list const& e) { caught_exception = true; test::test_num_exceptions<ExPolicy, IteratorTag>::call(policy, e); } catch(...) { HPX_TEST(false); } HPX_TEST(caught_exception); }