Skip to content
Snippets Groups Projects
Commit 7064b40e authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Replace REQUIRE by FAIL_CHECK to avoid random test crashes

Since connect_socket_server is called by a thread, this may produce a
race condition which gives variable test number results and eventually
produce test crashes.

One must not use REQUIRE* or CHECK* inside separate threads.
parent 483ec229
No related branches found
No related tags found
1 merge request!127Add missing tests and check that required formula exist at runtime
...@@ -48,7 +48,9 @@ TEST_CASE("SocketModule", "[language]") ...@@ -48,7 +48,9 @@ TEST_CASE("SocketModule", "[language]")
auto connect_socket_server = [&name_builtin_function](const std::string& hostname, int64_t port) { auto connect_socket_server = [&name_builtin_function](const std::string& hostname, int64_t port) {
auto i_function = name_builtin_function.find("connectSocketServer:string*N"); auto i_function = name_builtin_function.find("connectSocketServer:string*N");
REQUIRE(i_function != name_builtin_function.end()); if (i_function == name_builtin_function.end()) {
FAIL_CHECK("Cannot connect to server. This should NEVER happen");
}
DataVariant hostname_variant = hostname; DataVariant hostname_variant = hostname;
DataVariant port_variant = port; DataVariant port_variant = port;
...@@ -56,8 +58,6 @@ TEST_CASE("SocketModule", "[language]") ...@@ -56,8 +58,6 @@ TEST_CASE("SocketModule", "[language]")
IBuiltinFunctionEmbedder& function_embedder = *i_function->second; IBuiltinFunctionEmbedder& function_embedder = *i_function->second;
DataVariant result_variant = function_embedder.apply({hostname_variant, port_variant}); DataVariant result_variant = function_embedder.apply({hostname_variant, port_variant});
REQUIRE_NOTHROW(dynamic_cast<const DataHandler<const Socket>&>(std::get<EmbeddedData>(result_variant).get()));
return dynamic_cast<const DataHandler<const Socket>&>(std::get<EmbeddedData>(result_variant).get()).data_ptr(); return dynamic_cast<const DataHandler<const Socket>&>(std::get<EmbeddedData>(result_variant).get()).data_ptr();
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment