summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjell Ahlstedt <kjellahlstedt@gmail.com>2021-01-25 13:56:35 +0100
committerKjell Ahlstedt <kjellahlstedt@gmail.com>2021-01-25 13:56:35 +0100
commit782f865d13972e5b66226dced87b547f171e313b (patch)
treea759c64c2d479e1a8b1044a1caffeb8b31c36041
parentde06dbc5bbea2bba793d15ec8377f935283510fe (diff)
downloadglibmm-2-64.tar.gz
tests/giomm_tls_client: Skip test, if socket can't be connectedglibmm-2-64
This test sometimes fails in CI runs, probably for a reason that's out of glibmm's control. Gio::Socket::create() can throw an exception. Put it in a try block. See #84
-rw-r--r--tests/giomm_tls_client/main.cc29
1 files changed, 22 insertions, 7 deletions
diff --git a/tests/giomm_tls_client/main.cc b/tests/giomm_tls_client/main.cc
index 5f133253..e87437fd 100644
--- a/tests/giomm_tls_client/main.cc
+++ b/tests/giomm_tls_client/main.cc
@@ -76,20 +76,35 @@ main(int, char**)
std::cout << "First address of test host is " << first_inet_address->to_string() << "."
<< std::endl;
- auto socket = Gio::Socket::create(
- first_inet_address->get_family(), Gio::SOCKET_TYPE_STREAM, Gio::SOCKET_PROTOCOL_TCP);
-
- auto address = Gio::InetSocketAddress::create(first_inet_address, 443);
+ Glib::RefPtr<Gio::Socket> socket;
+ try
+ {
+ socket = Gio::Socket::create(
+ first_inet_address->get_family(), Gio::SOCKET_TYPE_STREAM, Gio::SOCKET_PROTOCOL_TCP);
+ }
+ catch (const Gio::Error& ex)
+ {
+ std::cout << "Could not create socket. Exception: " << ex.what() << std::endl;
+ return EXIT_FAILURE;
+ }
+ Glib::RefPtr<Gio::InetSocketAddress> address;
try
{
+ address = Gio::InetSocketAddress::create(first_inet_address, 443);
socket->connect(address);
}
catch (const Gio::Error& ex)
{
- std::cout << "Could not connect socket to " << address->get_address()->to_string() << ":"
- << address->get_port() << ". Exception: " << ex.what() << std::endl;
- return EXIT_FAILURE;
+ if (!address)
+ std::cout << "Could not create socket address. Exception: " << ex.what() << std::endl;
+ else
+ std::cout << "Could not connect socket to " << address->get_address()->to_string() << ":"
+ << address->get_port() << ". Exception: " << ex.what() << std::endl;
+
+ // When running CI (continuous integration), socket->connect(address)
+ // sometimes fails. Skip this test.
+ return 77;
}
if (!socket->is_connected())