Blob Blame History Raw
From e019cecf3cb7af06d59d3521e9fcef568aeaa0de Mon Sep 17 00:00:00 2001
From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Date: Thu, 24 Jan 2019 00:49:02 -0500
Subject: [PATCH 2/2] Use external Catch2.

Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
---
 tests/CMakeLists.txt    | 20 ++++++++++++++++----
 tests/active_poller.cpp | 22 +++++++++++-----------
 tests/buffer.cpp        |  2 +-
 tests/context.cpp       |  2 +-
 tests/message.cpp       |  2 +-
 tests/multipart.cpp     |  2 +-
 tests/poller.cpp        | 23 +++++++++++------------
 tests/socket.cpp        |  8 ++++----
 tests/socket_ref.cpp    |  8 ++++----
 tests/testutil.hpp      |  4 ++++
 tests/utilities.cpp     |  2 +-
 11 files changed, 55 insertions(+), 40 deletions(-)

diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 5c91ac4..8cf6684 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)
 
@@ -29,9 +36,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 2ad8532..c711210 100644
--- a/tests/active_poller.cpp
+++ b/tests/active_poller.cpp
@@ -92,7 +92,7 @@ TEST_CASE("add handler invalid events type", "[active_poller]")
     zmq::active_poller_t active_poller;
     zmq::active_poller_t::handler_type handler;
     short invalid_events_type = 2 << 10;
-    CHECK_THROWS_AS(active_poller.add(socket, static_cast<zmq::event_flags>(invalid_events_type), handler), const zmq::error_t&);
+    CHECK_THROWS_AS(active_poller.add(socket, static_cast<zmq::event_flags>(invalid_events_type), handler), zmq::error_t);
     CHECK(active_poller.empty());
     CHECK(0u == active_poller.size());
 }
@@ -106,14 +106,14 @@ TEST_CASE("add handler twice throws", "[active_poller]")
     zmq::active_poller_t::handler_type handler;
     active_poller.add(socket, zmq::event_flags::pollin, handler);
     /// \todo the actual error code should be checked
-    CHECK_THROWS_AS(active_poller.add(socket, zmq::event_flags::pollin, handler), const zmq::error_t&);
+    CHECK_THROWS_AS(active_poller.add(socket, zmq::event_flags::pollin, handler), zmq::error_t);
 }
 
 TEST_CASE("wait with no handlers throws", "[active_poller]")
 {
     zmq::active_poller_t active_poller;
     /// \todo the actual error code should be checked
-    CHECK_THROWS_AS(active_poller.wait(std::chrono::milliseconds{10}), const zmq::error_t&);
+    CHECK_THROWS_AS(active_poller.wait(std::chrono::milliseconds{10}), zmq::error_t);
 }
 
 TEST_CASE("remove unregistered throws", "[active_poller]")
@@ -122,7 +122,7 @@ TEST_CASE("remove unregistered throws", "[active_poller]")
     zmq::socket_t socket{context, zmq::socket_type::router};
     zmq::active_poller_t active_poller;
     /// \todo the actual error code should be checked
-    CHECK_THROWS_AS(active_poller.remove(socket), const zmq::error_t&);
+    CHECK_THROWS_AS(active_poller.remove(socket), zmq::error_t);
 }
 
 TEST_CASE("remove registered empty", "[active_poller]")
@@ -216,7 +216,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, zmq::active_poller_t::handler_type{}),
-                 const zmq::error_t&);
+                 zmq::error_t);
 }
 
 TEST_CASE("remove invalid socket throws", "[active_poller]")
@@ -229,7 +229,7 @@ TEST_CASE("remove invalid socket throws", "[active_poller]")
     CHECK(1u == active_poller.size());
     std::vector<zmq::socket_t> 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());
 }
 
@@ -248,7 +248,7 @@ TEST_CASE("modify empty throws", "[active_poller]")
     zmq::context_t context;
     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&);
+    CHECK_THROWS_AS(active_poller.modify(socket, zmq::event_flags::pollin), zmq::error_t);
 }
 
 TEST_CASE("modify invalid socket throws", "[active_poller]")
@@ -257,7 +257,7 @@ TEST_CASE("modify invalid socket throws", "[active_poller]")
     zmq::socket_t a{context, zmq::socket_type::push};
     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&);
+    CHECK_THROWS_AS(active_poller.modify(a, zmq::event_flags::pollin), zmq::error_t);
 }
 
 TEST_CASE("modify not added throws", "[active_poller]")
@@ -268,7 +268,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, zmq::active_poller_t::handler_type{}));
-    CHECK_THROWS_AS(active_poller.modify(b, zmq::event_flags::pollin), const zmq::error_t&);
+    CHECK_THROWS_AS(active_poller.modify(b, zmq::event_flags::pollin), zmq::error_t);
 }
 
 TEST_CASE("modify simple", "[active_poller]")
@@ -333,7 +333,7 @@ TEST_CASE("wait on move constructed active_poller", "[active_poller]")
     zmq::active_poller_t b{std::move(a)};
     CHECK(1u == b.size());
     /// \todo the actual error code should be checked
-    CHECK_THROWS_AS(a.wait(std::chrono::milliseconds{10}), const zmq::error_t&);
+    CHECK_THROWS_AS(a.wait(std::chrono::milliseconds{10}), zmq::error_t);
     CHECK(b.wait(std::chrono::milliseconds{-1}));
 }
 
@@ -348,7 +348,7 @@ TEST_CASE("wait on move assigned active_poller", "[active_poller]")
     b = {std::move(a)};
     CHECK(1u == b.size());
     /// \todo the actual error code should be checked
-    CHECK_THROWS_AS(a.wait(std::chrono::milliseconds{10}), const zmq::error_t&);
+    CHECK_THROWS_AS(a.wait(std::chrono::milliseconds{10}), zmq::error_t);
     CHECK(b.wait(std::chrono::milliseconds{-1}));
 }
 
diff --git a/tests/buffer.cpp b/tests/buffer.cpp
index dd1be89..1f820a1 100644
--- a/tests/buffer.cpp
+++ b/tests/buffer.cpp
@@ -1,4 +1,4 @@
-#include <catch.hpp>
+#include "testutil.hpp"
 #include <zmq.hpp>
 
 #ifdef ZMQ_CPP17
diff --git a/tests/context.cpp b/tests/context.cpp
index c8e8267..c530d31 100644
--- a/tests/context.cpp
+++ b/tests/context.cpp
@@ -1,4 +1,4 @@
-#include <catch.hpp>
+#include "testutil.hpp"
 #include <zmq.hpp>
 
 #if (__cplusplus >= 201703L)
diff --git a/tests/message.cpp b/tests/message.cpp
index d872107..1642a09 100644
--- a/tests/message.cpp
+++ b/tests/message.cpp
@@ -1,5 +1,5 @@
 #define CATCH_CONFIG_MAIN
-#include <catch.hpp>
+#include "testutil.hpp"
 #include <zmq.hpp>
 
 #if defined(ZMQ_CPP11)
diff --git a/tests/multipart.cpp b/tests/multipart.cpp
index 1d6bca6..e26c7f3 100644
--- a/tests/multipart.cpp
+++ b/tests/multipart.cpp
@@ -1,4 +1,4 @@
-#include <catch.hpp>
+#include "testutil.hpp"
 #include <zmq_addon.hpp>
 
 #ifdef ZMQ_HAS_RVALUE_REFS
diff --git a/tests/poller.cpp b/tests/poller.cpp
index 307c72a..a76b7c2 100644
--- a/tests/poller.cpp
+++ b/tests/poller.cpp
@@ -106,7 +106,7 @@ TEST_CASE("poller add handler invalid events type", "[poller]")
     zmq::socket_t socket{context, zmq::socket_type::router};
     zmq::poller_t<> poller;
     short invalid_events_type = 2 << 10;
-    CHECK_THROWS_AS(poller.add(socket, static_cast<zmq::event_flags>(invalid_events_type)), const zmq::error_t&);
+    CHECK_THROWS_AS(poller.add(socket, static_cast<zmq::event_flags>(invalid_events_type)), zmq::error_t);
 }
 #endif
 
@@ -117,7 +117,7 @@ TEST_CASE("poller add handler twice throws", "[poller]")
     zmq::poller_t<> 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&);
+    CHECK_THROWS_AS(poller.add(socket, zmq::event_flags::pollin), zmq::error_t);
 }
 
 TEST_CASE("poller wait with no handlers throws", "[poller]")
@@ -125,8 +125,7 @@ TEST_CASE("poller wait with no handlers throws", "[poller]")
     zmq::poller_t<> poller;
     std::vector<zmq::poller_event<>> events;
     /// \todo the actual error code should be checked
-    CHECK_THROWS_AS(poller.wait_all(events, std::chrono::milliseconds{10}),
-                 const zmq::error_t&);
+    CHECK_THROWS_AS(poller.wait_all(events, std::chrono::milliseconds{10}), zmq::error_t);
 }
 
 TEST_CASE("poller remove unregistered throws", "[poller]")
@@ -135,7 +134,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]")
@@ -178,7 +177,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]")
@@ -189,7 +188,7 @@ TEST_CASE("poller remove invalid socket throws", "[poller]")
     CHECK_NOTHROW(poller.add(socket, zmq::event_flags::pollin));
     std::vector<zmq::socket_t> 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]));
 }
 
@@ -198,7 +197,7 @@ TEST_CASE("poller modify empty throws", "[poller]")
     zmq::context_t context;
     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&);
+    CHECK_THROWS_AS(poller.modify(socket, zmq::event_flags::pollin), zmq::error_t);
 }
 
 TEST_CASE("poller modify invalid socket throws", "[poller]")
@@ -207,7 +206,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]")
@@ -217,7 +216,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]")
@@ -278,7 +277,7 @@ TEST_CASE("poller wait on move constructed", "[poller]")
     zmq::poller_t<> b{std::move(a)};
     std::vector<zmq::poller_event<>> 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&);
+    CHECK_THROWS_AS(a.wait_all(events, std::chrono::milliseconds{10}), zmq::error_t);
     CHECK(1 == b.wait_all(events, std::chrono::milliseconds{-1}));
 }
 
@@ -292,7 +291,7 @@ TEST_CASE("poller wait on move assigned", "[poller]")
     b = {std::move(a)};
     /// \todo the TEST_CASE error code should be checked
     std::vector<zmq::poller_event<>> events(1);
-    CHECK_THROWS_AS(a.wait_all(events, std::chrono::milliseconds{10}), const zmq::error_t&);
+    CHECK_THROWS_AS(a.wait_all(events, std::chrono::milliseconds{10}), zmq::error_t);
     CHECK(1 == b.wait_all(events, std::chrono::milliseconds{-1}));
 }
 
diff --git a/tests/socket.cpp b/tests/socket.cpp
index 2ed0eef..f63215d 100644
--- a/tests/socket.cpp
+++ b/tests/socket.cpp
@@ -1,4 +1,4 @@
-#include <catch.hpp>
+#include "testutil.hpp"
 #include <zmq.hpp>
 #ifdef ZMQ_CPP11
 #include <future>
@@ -143,7 +143,7 @@ TEST_CASE("socket send exception", "[socket]")
     s.bind("inproc://test");
 
     std::vector<char> 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]")
@@ -231,7 +231,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);
 }
 
@@ -242,7 +242,7 @@ TEST_CASE("socket recv exception", "[socket]")
     s.bind("inproc://test");
 
     std::vector<char> 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 8a10344..4bdfaff 100644
--- a/tests/socket_ref.cpp
+++ b/tests/socket_ref.cpp
@@ -1,4 +1,4 @@
-#include <catch.hpp>
+#include "testutil.hpp"
 #include <zmq.hpp>
 #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());
@@ -110,7 +110,7 @@ TEST_CASE("socket_ref reinterpret as void*", "[socket_ref]")
     zmq::socket_t socket(context, zmq::socket_type::router);
     CHECK(socket.handle() != nullptr);
     reinterpret_cast<SVP *>(&ssr)->p = socket.handle();
-    CHECK(ssr.sr == socket);
+    CHECK((ssr.sr == socket));
 }
 
 #endif
diff --git a/tests/testutil.hpp b/tests/testutil.hpp
index dc7ce9f..0947198 100644
--- a/tests/testutil.hpp
+++ b/tests/testutil.hpp
@@ -1,6 +1,10 @@
 #pragma once
 
+#ifdef USE_EXTERNAL_CATCH2
+#include <catch2/catch.hpp>
+#else
 #include <catch.hpp>
+#endif
 #include <zmq.hpp>
 
 #if defined(ZMQ_CPP11)
diff --git a/tests/utilities.cpp b/tests/utilities.cpp
index c7b8c99..ebfd020 100644
--- a/tests/utilities.cpp
+++ b/tests/utilities.cpp
@@ -1,4 +1,4 @@
-#include <catch.hpp>
+#include "testutil.hpp"
 #include <zmq.hpp>
 
 #ifdef ZMQ_CPP11
-- 
2.21.0