From 4236fc87c4a49924738431b316bc4e2b34f2ea28 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 | 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<zmq::event_flags>(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<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());
}
@@ -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 <catch.hpp>
+#include "testutil.hpp"
#include <zmq.hpp>
#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 <catch.hpp>
+#include "testutil.hpp"
#include <zmq_addon.hpp>
#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 <catch.hpp>
+#include "testutil.hpp"
#include <zmq.hpp>
#if (__cplusplus >= 201703L)
@@ -75,10 +75,10 @@ TEST_CASE("context set/get options", "[context]")
CHECK_THROWS_AS(
context.set(static_cast<zmq::ctxopt>(-42), 5),
- const zmq::error_t &);
+ zmq::error_t);
CHECK_THROWS_AS(
context.get(static_cast<zmq::ctxopt>(-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 <catch.hpp>
+#include "testutil.hpp"
#include <zmq.hpp>
#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 <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 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<zmq::event_flags>(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<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&);
+ 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<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]));
}
@@ -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<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&);
+ 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<zmq::poller_event<>> 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 <catch.hpp>
+#include "testutil.hpp"
#include <zmq_addon.hpp>
#ifdef ZMQ_CPP11
@@ -52,7 +52,7 @@ TEST_CASE("recv_multipart test", "[recv_multipart]")
std::vector<zmq::message_t> 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<zmq::message_t, 1> 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<zmq::message_t, 1> 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<zmq::message_t, 1> 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 <catch.hpp>
+#include "testutil.hpp"
#include <zmq_addon.hpp>
#ifdef ZMQ_CPP11
@@ -115,7 +115,7 @@ TEST_CASE("send_multipart test", "[send_multipart]")
SECTION("send with invalid socket") {
std::vector<zmq::message_t> 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 <catch.hpp>
+#include "testutil.hpp"
#include <zmq.hpp>
#ifdef ZMQ_CPP11
#include <future>
@@ -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<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]")
@@ -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<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 1730abf..f54f0a9 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());
@@ -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<void *>(&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 <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 87211c9..a0ea7b9 100644
--- a/tests/utilities.cpp
+++ b/tests/utilities.cpp
@@ -1,4 +1,4 @@
-#include <catch.hpp>
+#include "testutil.hpp"
#include <zmq.hpp>
#if defined(ZMQ_CPP11) && !defined(ZMQ_CPP11_PARTIAL)
--
2.26.2