martinzink commented on code in PR #1457:
URL: https://github.com/apache/nifi-minifi-cpp/pull/1457#discussion_r1067899983
##########
libminifi/test/Utils.h:
##########
@@ -183,33 +188,57 @@ bool sendMessagesViaSSL(const
std::vector<std::string_view>& contents,
asio::error_code err;
socket.lowest_layer().connect(remote_endpoint, err);
if (err) {
- return false;
+ return err;
}
socket.handshake(asio::ssl::stream_base::client, err);
if (err) {
- return false;
+ return err;
}
for (auto& content : contents) {
std::string tcp_message(content);
tcp_message += '\n';
asio::write(socket, asio::buffer(tcp_message, tcp_message.size()), err);
if (err) {
- return false;
+ return err;
}
}
- return true;
+ return std::error_code();
}
#ifdef WIN32
inline std::error_code hide_file(const std::filesystem::path& file_name) {
- const bool success = SetFileAttributesA(file_name.string().c_str(),
FILE_ATTRIBUTE_HIDDEN);
- if (!success) {
- // note: All possible documented error codes from GetLastError are in
[0;15999] at the time of writing.
- // The below casting is safe in [0;std::numeric_limits<int>::max()], int
max is guaranteed to be at least 32767
- return { static_cast<int>(GetLastError()), std::system_category() };
- }
- return {};
+ const bool success = SetFileAttributesA(file_name.string().c_str(),
FILE_ATTRIBUTE_HIDDEN);
+ if (!success) {
+ // note: All possible documented error codes from GetLastError are in
[0;15999] at the time of writing.
+ // The below casting is safe in [0;std::numeric_limits<int>::max()], int
max is guaranteed to be at least 32767
+ return { static_cast<int>(GetLastError()), std::system_category() };
}
+ return {};
+}
#endif /* WIN32 */
+template<typename T>
+concept DerivedFromProcessor = std::derived_from<T, minifi::core::Processor>;
// NOLINT(readability/braces)
+
+template<typename T>
+concept HasPortProperty = requires(T x) { {T::Port} ->
std::convertible_to<core::Property>; }; // NOLINT(readability/braces)
+
+template<typename T>
+concept HasGetPortFn = requires(T x) { {x.getPort()} ->
std::convertible_to<uint16_t>; }; // NOLINT(readability/braces)
+
+template<class T>
+requires DerivedFromProcessor<T> && HasPortProperty<T> && HasGetPortFn<T>
+uint16_t scheduleProcessorOnRandomPort(const std::shared_ptr<TestPlan>&
test_plan, const std::shared_ptr<T>& processor) {
Review Comment:
Good idea, I've added your suggestion (slightly changed it because the
NOLINTBEGIN NOLINTEND doesnt seemed to work, and also its not clang tidy but
our cpplint.py that doesnt play well with concepts.
I found the problem in the linter script so ill will create a PR for it in
https://github.com/cpplint/cpplint/blob/develop/cpplint.py and/or update our
version
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]