X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/df4733677cb16642b53628d22e4d927aadad8b27..ee2cb3d6c26ae319d20bde28f415393e96611ece:/Server/tests/server_test.cpp diff --git a/Server/tests/server_test.cpp b/Server/tests/server_test.cpp index f9989b5..2cd23dd 100644 --- a/Server/tests/server_test.cpp +++ b/Server/tests/server_test.cpp @@ -25,6 +25,7 @@ // $Id$ // +#include "plaqui/server/connection.h" #include "plaqui/server/server.h" #include #include @@ -39,31 +40,53 @@ int main(int argc, char* argv[]) { // Termina con mas informacion si hay una excepcion no manejada. set_terminate (__gnu_cxx::__verbose_terminate_handler); - // Necesita argumentos. - if (argc != 2) { - cerr << "Faltan argumentos: " << endl; - cerr << "\t" << argv[0] << " port" << endl; - return 1; - } + // Bienvenida. + cout << "PlaQui Server. Modo de uso: " << endl; + cout << "\t" << argv[0] << " [planta] [puerto]" << endl; - // Obtengo puerto. - unsigned port; - { - stringstream str(argv[1]); - str >> port; + // Acepta argumentos. + string filename = "prueba.xml"; + Connection::Port port = 7522; + if (argc > 1) { + // Obtengo nombre del archivo de la planta. + filename = argv[1]; + // Si tiene 2 parĂ¡metros. + if (argc > 2) { + // Obtengo puerto. + stringstream ss(argv[2]); + ss >> port; + } } // Inicializa threads. Glib::thread_init(); try { - // Corre el server. - Server server(port); - server.run(false); + // Corre el server. + Server server(filename, 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 (exception e) { - cerr << "Error: " << e.what() << endl; } catch (...) { cerr << "Error desconocido!" << endl; }