From 4236fc87c4a49924738431b316bc4e2b34f2ea28 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Thu, 24 Jan 2019 00:49:02 -0500 Subject: [PATCH 2/2] Use external Catch2. Signed-off-by: Elliott Sales de Andrade --- tests/CMakeLists.txt | 20 ++++++++++++++++---- tests/active_poller.cpp | 12 ++++++------ tests/buffer.cpp | 2 +- tests/codec_multipart.cpp | 6 +++--- tests/context.cpp | 6 +++--- tests/message.cpp | 2 +- tests/multipart.cpp | 2 +- tests/poller.cpp | 22 +++++++++++----------- tests/recv_multipart.cpp | 10 +++++----- tests/send_multipart.cpp | 4 ++-- tests/socket.cpp | 12 ++++++------ tests/socket_ref.cpp | 8 ++++---- tests/testutil.hpp | 4 ++++ tests/utilities.cpp | 2 +- 14 files changed, 64 insertions(+), 48 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0ae37d7..bd64d8c 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -10,8 +10,15 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) include(CTest) -include(cmake/catch.cmake) -include(${CATCH_MODULE_PATH}/Catch.cmake) +find_package(Catch2) +if (Catch2_FOUND) + set(CATCH_TYPE "catch2") + include(Catch) +else() + include(cmake/catch.cmake) + include(${CATCH_MODULE_PATH}/Catch.cmake) + set(CATCH_TYPE "internal") +endif() find_package(Threads) @@ -32,9 +39,14 @@ add_executable( utilities.cpp ) -add_dependencies(unit_tests catch) +if (CATCH_TYPE STREQUAL "catch2") + target_link_libraries(unit_tests PRIVATE Catch2::Catch2) + target_compile_definitions(unit_tests PRIVATE -DUSE_EXTERNAL_CATCH2) +else() + add_dependencies(unit_tests catch) + target_include_directories(unit_tests PUBLIC ${CATCH_MODULE_PATH}) +endif() -target_include_directories(unit_tests PUBLIC ${CATCH_MODULE_PATH}) target_link_libraries( unit_tests PRIVATE cppzmq diff --git a/tests/active_poller.cpp b/tests/active_poller.cpp index 815a5b6..ee52fd1 100644 --- a/tests/active_poller.cpp +++ b/tests/active_poller.cpp @@ -107,7 +107,7 @@ TEST_CASE("add handler invalid events type", "[active_poller]") CHECK_THROWS_AS( active_poller.add(socket, static_cast(invalid_events_type), no_op_handler), - const zmq::error_t &); + zmq::error_t); CHECK(active_poller.empty()); CHECK(0u == active_poller.size()); } @@ -243,7 +243,7 @@ TEST_CASE("add invalid socket throws", "[active_poller]") zmq::socket_t a{context, zmq::socket_type::router}; zmq::socket_t b{std::move(a)}; CHECK_THROWS_AS(active_poller.add(a, zmq::event_flags::pollin, no_op_handler), - const zmq::error_t &); + zmq::error_t); } TEST_CASE("remove invalid socket throws", "[active_poller]") @@ -256,7 +256,7 @@ TEST_CASE("remove invalid socket throws", "[active_poller]") CHECK(1u == active_poller.size()); std::vector sockets; sockets.emplace_back(std::move(socket)); - CHECK_THROWS_AS(active_poller.remove(socket), const zmq::error_t &); + CHECK_THROWS_AS(active_poller.remove(socket), zmq::error_t); CHECK(1u == active_poller.size()); } @@ -276,7 +276,7 @@ TEST_CASE("modify empty throws", "[active_poller]") zmq::socket_t socket{context, zmq::socket_type::push}; zmq::active_poller_t active_poller; CHECK_THROWS_AS(active_poller.modify(socket, zmq::event_flags::pollin), - const zmq::error_t &); + zmq::error_t); } TEST_CASE("modify invalid socket throws", "[active_poller]") @@ -286,7 +286,7 @@ TEST_CASE("modify invalid socket throws", "[active_poller]") zmq::socket_t b{std::move(a)}; zmq::active_poller_t active_poller; CHECK_THROWS_AS(active_poller.modify(a, zmq::event_flags::pollin), - const zmq::error_t &); + zmq::error_t); } TEST_CASE("modify not added throws", "[active_poller]") @@ -297,7 +297,7 @@ TEST_CASE("modify not added throws", "[active_poller]") zmq::active_poller_t active_poller; CHECK_NOTHROW(active_poller.add(a, zmq::event_flags::pollin, no_op_handler)); CHECK_THROWS_AS(active_poller.modify(b, zmq::event_flags::pollin), - const zmq::error_t &); + zmq::error_t); } TEST_CASE("modify simple", "[active_poller]") diff --git a/tests/buffer.cpp b/tests/buffer.cpp index da8eadd..4995857 100644 --- a/tests/buffer.cpp +++ b/tests/buffer.cpp @@ -1,4 +1,4 @@ -#include +#include "testutil.hpp" #include #ifdef ZMQ_CPP17 diff --git a/tests/codec_multipart.cpp b/tests/codec_multipart.cpp index 43d444d..dc833d6 100644 --- a/tests/codec_multipart.cpp +++ b/tests/codec_multipart.cpp @@ -1,4 +1,4 @@ -#include +#include "testutil.hpp" #include #ifdef ZMQ_CPP11 @@ -69,7 +69,7 @@ TEST_CASE("multipart codec decode bad data overflow", "[codec_multipart]") CHECK_THROWS_AS( multipart_t::decode(wrong_size), - const std::out_of_range&); + std::out_of_range); } TEST_CASE("multipart codec decode bad data extra data", "[codec_multipart]") @@ -83,7 +83,7 @@ TEST_CASE("multipart codec decode bad data extra data", "[codec_multipart]") CHECK_THROWS_AS( multipart_t::decode(wrong_size), - const std::out_of_range&); + std::out_of_range); } diff --git a/tests/context.cpp b/tests/context.cpp index d723397..11cc55c 100644 --- a/tests/context.cpp +++ b/tests/context.cpp @@ -1,4 +1,4 @@ -#include +#include "testutil.hpp" #include #if (__cplusplus >= 201703L) @@ -75,10 +75,10 @@ TEST_CASE("context set/get options", "[context]") CHECK_THROWS_AS( context.set(static_cast(-42), 5), - const zmq::error_t &); + zmq::error_t); CHECK_THROWS_AS( context.get(static_cast(-42)), - const zmq::error_t &); + zmq::error_t); } #endif diff --git a/tests/message.cpp b/tests/message.cpp index 17fb088..c539f24 100644 --- a/tests/message.cpp +++ b/tests/message.cpp @@ -1,5 +1,5 @@ #define CATCH_CONFIG_MAIN -#include +#include "testutil.hpp" #include #if defined(ZMQ_CPP11) diff --git a/tests/multipart.cpp b/tests/multipart.cpp index a8e84be..cb44482 100644 --- a/tests/multipart.cpp +++ b/tests/multipart.cpp @@ -1,4 +1,4 @@ -#include +#include "testutil.hpp" #include #ifdef ZMQ_HAS_RVALUE_REFS diff --git a/tests/poller.cpp b/tests/poller.cpp index 7244357..9d652a6 100644 --- a/tests/poller.cpp +++ b/tests/poller.cpp @@ -109,7 +109,7 @@ TEST_CASE("poller add handler invalid events type", "[poller]") short invalid_events_type = 2 << 10; CHECK_THROWS_AS( poller.add(socket, static_cast(invalid_events_type)), - const zmq::error_t&); + zmq::error_t); } #endif @@ -121,7 +121,7 @@ TEST_CASE("poller add handler twice throws", "[poller]") poller.add(socket, zmq::event_flags::pollin); /// \todo the actual error code should be checked CHECK_THROWS_AS(poller.add(socket, zmq::event_flags::pollin), - const zmq::error_t&); + zmq::error_t); } TEST_CASE("poller wait with no handlers throws", "[poller]") @@ -130,7 +130,7 @@ TEST_CASE("poller wait with no handlers throws", "[poller]") std::vector> events; /// \todo the actual error code should be checked CHECK_THROWS_AS(poller.wait_all(events, std::chrono::milliseconds{10}), - const zmq::error_t&); + zmq::error_t); } TEST_CASE("poller remove unregistered throws", "[poller]") @@ -139,7 +139,7 @@ TEST_CASE("poller remove unregistered throws", "[poller]") zmq::socket_t socket{context, zmq::socket_type::router}; zmq::poller_t<> poller; /// \todo the actual error code should be checked - CHECK_THROWS_AS(poller.remove(socket), const zmq::error_t&); + CHECK_THROWS_AS(poller.remove(socket), zmq::error_t); } TEST_CASE("poller remove registered empty", "[poller]") @@ -184,7 +184,7 @@ TEST_CASE("poller add invalid socket throws", "[poller]") zmq::poller_t<> poller; zmq::socket_t a{context, zmq::socket_type::router}; zmq::socket_t b{std::move(a)}; - CHECK_THROWS_AS(poller.add(a, zmq::event_flags::pollin), const zmq::error_t&); + CHECK_THROWS_AS(poller.add(a, zmq::event_flags::pollin), zmq::error_t); } TEST_CASE("poller remove invalid socket throws", "[poller]") @@ -195,7 +195,7 @@ TEST_CASE("poller remove invalid socket throws", "[poller]") CHECK_NOTHROW(poller.add(socket, zmq::event_flags::pollin)); std::vector sockets; sockets.emplace_back(std::move(socket)); - CHECK_THROWS_AS(poller.remove(socket), const zmq::error_t&); + CHECK_THROWS_AS(poller.remove(socket), zmq::error_t); CHECK_NOTHROW(poller.remove(sockets[0])); } @@ -205,7 +205,7 @@ TEST_CASE("poller modify empty throws", "[poller]") zmq::socket_t socket{context, zmq::socket_type::push}; zmq::poller_t<> poller; CHECK_THROWS_AS(poller.modify(socket, zmq::event_flags::pollin), - const zmq::error_t&); + zmq::error_t); } TEST_CASE("poller modify invalid socket throws", "[poller]") @@ -214,7 +214,7 @@ TEST_CASE("poller modify invalid socket throws", "[poller]") zmq::socket_t a{context, zmq::socket_type::push}; zmq::socket_t b{std::move(a)}; zmq::poller_t<> poller; - CHECK_THROWS_AS(poller.modify(a, zmq::event_flags::pollin), const zmq::error_t&); + CHECK_THROWS_AS(poller.modify(a, zmq::event_flags::pollin), zmq::error_t); } TEST_CASE("poller modify not added throws", "[poller]") @@ -224,7 +224,7 @@ TEST_CASE("poller modify not added throws", "[poller]") zmq::socket_t b{context, zmq::socket_type::push}; zmq::poller_t<> poller; CHECK_NOTHROW(poller.add(a, zmq::event_flags::pollin)); - CHECK_THROWS_AS(poller.modify(b, zmq::event_flags::pollin), const zmq::error_t&); + CHECK_THROWS_AS(poller.modify(b, zmq::event_flags::pollin), zmq::error_t); } TEST_CASE("poller modify simple", "[poller]") @@ -290,7 +290,7 @@ TEST_CASE("poller wait on move constructed", "[poller]") std::vector> events(1); /// \todo the actual error code should be checked CHECK_THROWS_AS(a.wait_all(events, std::chrono::milliseconds{10}), - const zmq::error_t&); + zmq::error_t); CHECK(1 == b.wait_all(events, std::chrono::milliseconds{-1})); } @@ -305,7 +305,7 @@ TEST_CASE("poller wait on move assigned", "[poller]") /// \todo the TEST_CASE error code should be checked std::vector> events(1); CHECK_THROWS_AS(a.wait_all(events, std::chrono::milliseconds{10}), - const zmq::error_t&); + zmq::error_t); CHECK(1 == b.wait_all(events, std::chrono::milliseconds{-1})); } diff --git a/tests/recv_multipart.cpp b/tests/recv_multipart.cpp index 85bdcbf..de35805 100644 --- a/tests/recv_multipart.cpp +++ b/tests/recv_multipart.cpp @@ -1,4 +1,4 @@ -#include +#include "testutil.hpp" #include #ifdef ZMQ_CPP11 @@ -52,7 +52,7 @@ TEST_CASE("recv_multipart test", "[recv_multipart]") std::vector msgs; CHECK_THROWS_AS( zmq::recv_multipart(zmq::socket_ref(), std::back_inserter(msgs)), - const zmq::error_t &); + zmq::error_t); } } @@ -90,7 +90,7 @@ TEST_CASE("recv_multipart_n test", "[recv_multipart]") std::array msgs; CHECK_THROWS_AS( zmq::recv_multipart_n(output, msgs.data(), msgs.size()), - const std::runtime_error&); + std::runtime_error); } SECTION("recv 0") { input.send(zmq::str_buffer("hello"), zmq::send_flags::sndmore); @@ -99,7 +99,7 @@ TEST_CASE("recv_multipart_n test", "[recv_multipart]") std::array msgs; CHECK_THROWS_AS( zmq::recv_multipart_n(output, msgs.data(), 0), - const std::runtime_error&); + std::runtime_error); } SECTION("send 2 messages") { input.send(zmq::str_buffer("hello"), zmq::send_flags::sndmore); @@ -132,7 +132,7 @@ TEST_CASE("recv_multipart_n test", "[recv_multipart]") std::array msgs; CHECK_THROWS_AS( zmq::recv_multipart_n(zmq::socket_ref(), msgs.data(), msgs.size()), - const zmq::error_t &); + zmq::error_t); } } diff --git a/tests/send_multipart.cpp b/tests/send_multipart.cpp index 7ea83b3..21f82b0 100644 --- a/tests/send_multipart.cpp +++ b/tests/send_multipart.cpp @@ -1,4 +1,4 @@ -#include +#include "testutil.hpp" #include #ifdef ZMQ_CPP11 @@ -115,7 +115,7 @@ TEST_CASE("send_multipart test", "[send_multipart]") SECTION("send with invalid socket") { std::vector msgs(1); CHECK_THROWS_AS(zmq::send_multipart(zmq::socket_ref(), msgs), - const zmq::error_t &); + zmq::error_t); } } #endif diff --git a/tests/socket.cpp b/tests/socket.cpp index ec40536..bb31301 100644 --- a/tests/socket.cpp +++ b/tests/socket.cpp @@ -1,4 +1,4 @@ -#include +#include "testutil.hpp" #include #ifdef ZMQ_CPP11 #include @@ -58,7 +58,7 @@ TEST_CASE("socket options", "[socket]") socket.set(zmq::sockopt::immediate, false); CHECK(socket.get(zmq::sockopt::immediate) == false); // unit out of range - CHECK_THROWS_AS(socket.set(zmq::sockopt::immediate, 80), const zmq::error_t &); + CHECK_THROWS_AS(socket.set(zmq::sockopt::immediate, 80), zmq::error_t); #endif #ifdef ZMQ_LINGER socket.set(zmq::sockopt::linger, 55); @@ -83,7 +83,7 @@ TEST_CASE("socket options", "[socket]") std::string id_ret_small(3, ' '); // truncated CHECK_THROWS_AS(socket.get(zmq::sockopt::routing_id, zmq::buffer(id_ret_small)), - const zmq::error_t &); + zmq::error_t); #endif } @@ -544,7 +544,7 @@ TEST_CASE("socket send exception", "[socket]") s.bind("inproc://test"); std::vector buf(4); - CHECK_THROWS_AS(s.send(zmq::buffer(buf)), const zmq::error_t &); + CHECK_THROWS_AS(s.send(zmq::buffer(buf)), zmq::error_t); } TEST_CASE("socket recv none", "[socket]") @@ -632,7 +632,7 @@ TEST_CASE("socket recv dontwait", "[socket]") zmq::message_t msg; auto resm = s.recv(msg, flags); CHECK(!resm); - CHECK_THROWS_AS(resm.value(), const std::exception &); + CHECK_THROWS_AS(resm.value(), std::exception); CHECK(msg.size() == 0); } @@ -643,7 +643,7 @@ TEST_CASE("socket recv exception", "[socket]") s.bind("inproc://test"); std::vector buf(4); - CHECK_THROWS_AS(s.recv(zmq::buffer(buf)), const zmq::error_t &); + CHECK_THROWS_AS(s.recv(zmq::buffer(buf)), zmq::error_t); } TEST_CASE("socket proxy", "[socket]") diff --git a/tests/socket_ref.cpp b/tests/socket_ref.cpp index 1730abf..f54f0a9 100644 --- a/tests/socket_ref.cpp +++ b/tests/socket_ref.cpp @@ -1,4 +1,4 @@ -#include +#include "testutil.hpp" #include #ifdef ZMQ_CPP11 @@ -51,8 +51,8 @@ TEST_CASE("socket_ref compare from socket_t", "[socket_ref]") zmq::socket_ref sr2 = s2; CHECK(sr1); CHECK(sr2); - CHECK(sr1 == s1); - CHECK(sr2 == s2); + CHECK((sr1 == s1)); + CHECK((sr2 == s2)); CHECK(sr1.handle() == s1.handle()); CHECK(sr1 != sr2); CHECK(sr1.handle() != sr2.handle()); @@ -112,7 +112,7 @@ TEST_CASE("socket_ref type punning", "[socket_ref]") svp.p = socket.handle(); // static_cast to silence incorrect warning std::memcpy(static_cast(&ssr), &svp, sizeof(ssr)); - CHECK(ssr.sr == socket); + CHECK((ssr.sr == socket)); } #endif diff --git a/tests/testutil.hpp b/tests/testutil.hpp index f633ff4..0de9782 100644 --- a/tests/testutil.hpp +++ b/tests/testutil.hpp @@ -1,6 +1,10 @@ #pragma once +#ifdef USE_EXTERNAL_CATCH2 +#include +#else #include +#endif #include #if defined(ZMQ_CPP11) diff --git a/tests/utilities.cpp b/tests/utilities.cpp index 87211c9..a0ea7b9 100644 --- a/tests/utilities.cpp +++ b/tests/utilities.cpp @@ -1,4 +1,4 @@ -#include +#include "testutil.hpp" #include #if defined(ZMQ_CPP11) && !defined(ZMQ_CPP11_PARTIAL) -- 2.26.2