X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/802f79cdb0d688127b8a639cd3173d801a1466cd..f5a1e732bf3907cabd004932aba3256b31d9d282:/Server/tests/server_test.cpp?ds=inline diff --git a/Server/tests/server_test.cpp b/Server/tests/server_test.cpp index 5b0df00..033bb2e 100644 --- a/Server/tests/server_test.cpp +++ b/Server/tests/server_test.cpp @@ -37,7 +37,7 @@ using namespace PlaQui::Server; int main(int argc, char* argv[]) { // Termina con mas informacion si hay una excepcion no manejada. - std::set_terminate (__gnu_cxx::__verbose_terminate_handler); + set_terminate (__gnu_cxx::__verbose_terminate_handler); // Necesita argumentos. if (argc != 2) { @@ -53,9 +53,38 @@ int main(int argc, char* argv[]) { str >> port; } - // Corre el server. - Server server(port); - server.run(false); + // Inicializa threads. + Glib::thread_init(); + + try { + // Corre el server. + Server server(port); + server.run(false); + } catch (const sockerr& e) { + cerr << "Socket Error: " << e.operation() << " | serrno = " + << e.serrno() << " | errstr = " << e.errstr() << endl; + if (e.io()) { + cerr << "Es: non-blocking and interrupt io recoverable error." + << endl; + } else if (e.arg()) { + cerr << "Es: incorrect argument supplied. recoverable error." + << endl; + } else if (e.op()) { + cerr << "Es: operational error. recovery difficult." << endl; + } else if (e.conn()) { + cerr << "Es: connection error." << endl; + } else if (e.addr()) { + cerr << "Es: address error." << endl; + } else if (e.benign()) { + cerr << "Es: recoverable read/write error like EINTR etc." << endl; + } + } catch (const exception& e) { + cerr << "Error: " << e.what() << endl; + } catch (const char* e) { + cerr << "Error: " << e << endl; + } catch (...) { + cerr << "Error desconocido!" << endl; + } return 0; }