X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvcl%2Fsock_test_client.c;h=ddb9e7fb20a7f5f78a9e1775cfb987c8c1f8c337;hb=c04cbf16ccfd9ef142937e4684af6093d812a866;hp=40ba043adaeaacdc16fbf83a1d9a15fccc703025;hpb=5c7cf1cc5358d137160be1619981e7eea9a7402f;p=vpp.git diff --git a/src/vcl/sock_test_client.c b/src/vcl/sock_test_client.c index 40ba043adae..ddb9e7fb20a 100644 --- a/src/vcl/sock_test_client.c +++ b/src/vcl/sock_test_client.c @@ -54,7 +54,8 @@ sock_test_cfg_sync (sock_test_socket_t * socket) sizeof (ctrl->cfg), NULL, ctrl->cfg.verbose); if (tx_bytes < 0) { - fprintf (stderr, "ERROR: write test cfg failed (%d)!\n", tx_bytes); + fprintf (stderr, "CLIENT: ERROR: write test cfg failed (%d)!\n", + tx_bytes); return tx_bytes; } @@ -65,7 +66,7 @@ sock_test_cfg_sync (sock_test_socket_t * socket) if (rl_cfg->magic != SOCK_TEST_CFG_CTRL_MAGIC) { - fprintf (stderr, "ERROR: Bad server reply cfg -- aborting!\n"); + fprintf (stderr, "CLIENT: ERROR: Bad server reply cfg -- aborting!\n"); return -1; } if (socket->cfg.verbose) @@ -76,8 +77,8 @@ sock_test_cfg_sync (sock_test_socket_t * socket) if ((rx_bytes != sizeof (sock_test_cfg_t)) || !sock_test_cfg_verify (rl_cfg, &ctrl->cfg)) { - fprintf (stderr, - "ERROR: Invalid config received from server -- aborting!\n"); + fprintf (stderr, "CLIENT: ERROR: Invalid config received " + "from server -- aborting!\n"); sock_test_cfg_dump (rl_cfg, 1 /* is_client */ ); return -1; } @@ -141,7 +142,8 @@ echo_test_client () if (rv < 0) { perror ("select()"); - fprintf (stderr, "\nERROR: select() failed -- aborting test!\n"); + fprintf (stderr, "\nCLIENT: ERROR: select() failed -- " + "aborting test!\n"); return; } else if (rv == 0) @@ -163,8 +165,8 @@ echo_test_client () &tsock->stats, ctrl->cfg.verbose); if (tx_bytes < 0) { - fprintf (stderr, "\nERROR: sock_test_write(%d) failed " - "-- aborting test!\n", tsock->fd); + fprintf (stderr, "\nCLIENT: ERROR: sock_test_write(%d) " + "failed -- aborting test!\n", tsock->fd); return; } @@ -184,9 +186,9 @@ echo_test_client () tsock->fd, rx_bytes, tsock->rxbuf); if (tsock->stats.rx_bytes != tsock->stats.tx_bytes) - printf - ("WARNING: bytes read (%lu) != bytes written (%lu)!\n", - tsock->stats.rx_bytes, tsock->stats.tx_bytes); + printf ("CLIENT: WARNING: bytes read (%lu) " + "!= bytes written (%lu)!\n", + tsock->stats.rx_bytes, tsock->stats.tx_bytes); } } @@ -265,7 +267,7 @@ stream_test_client (sock_test_t test) if (sock_test_cfg_sync (ctrl)) { - fprintf (stderr, "ERROR: test cfg sync failed -- aborting!"); + fprintf (stderr, "CLIENT: ERROR: test cfg sync failed -- aborting!"); return; } @@ -312,7 +314,8 @@ stream_test_client (sock_test_t test) if (rv < 0) { perror ("select()"); - fprintf (stderr, "\nERROR: select() failed -- aborting test!\n"); + fprintf (stderr, "\nCLIENT: ERROR: select() failed -- " + "aborting test!\n"); return; } else if (rv == 0) @@ -325,6 +328,15 @@ stream_test_client (sock_test_t test) (tsock->stats.stop.tv_nsec == 0))) continue; + if ((test == SOCK_TEST_TYPE_BI) && + FD_ISSET (tsock->fd, rfdset) && + (tsock->stats.rx_bytes < ctrl->cfg.total_bytes)) + { + (void) sock_test_read (tsock->fd, + (uint8_t *) tsock->rxbuf, + tsock->rxbuf_size, &tsock->stats); + } + if (FD_ISSET (tsock->fd, wfdset) && (tsock->stats.tx_bytes < ctrl->cfg.total_bytes)) { @@ -334,21 +346,12 @@ stream_test_client (sock_test_t test) ctrl->cfg.verbose); if (tx_bytes < 0) { - fprintf (stderr, "\nERROR: sock_test_write(%d) failed " - "-- aborting test!\n", tsock->fd); + fprintf (stderr, "\nCLIENT: ERROR: sock_test_write(%d) " + "failed -- aborting test!\n", tsock->fd); return; } } - if ((test == SOCK_TEST_TYPE_BI) && - FD_ISSET (tsock->fd, rfdset) && - (tsock->stats.rx_bytes < ctrl->cfg.total_bytes)) - { - (void) sock_test_read (tsock->fd, - (uint8_t *) tsock->rxbuf, - tsock->rxbuf_size, &tsock->stats); - } - if (((test == SOCK_TEST_TYPE_UNI) && (tsock->stats.tx_bytes >= ctrl->cfg.total_bytes)) || ((test == SOCK_TEST_TYPE_BI) && @@ -366,7 +369,7 @@ stream_test_client (sock_test_t test) if (sock_test_cfg_sync (ctrl)) { - fprintf (stderr, "ERROR: test cfg sync failed -- aborting!"); + fprintf (stderr, "CLIENT: ERROR: test cfg sync failed -- aborting!"); return; } @@ -409,7 +412,7 @@ stream_test_client (sock_test_t test) ctrl->cfg.test = SOCK_TEST_TYPE_ECHO; if (sock_test_cfg_sync (ctrl)) - fprintf (stderr, "ERROR: post-test cfg sync failed!"); + fprintf (stderr, "CLIENT: ERROR: post-test cfg sync failed!"); printf ("CLIENT (fd %d): %s-directional Stream Test Complete!\n" SOCK_TEST_BANNER_STRING "\n", ctrl->fd, @@ -491,7 +494,8 @@ sock_test_connect_test_sockets (uint32_t num_test_sockets) { errno_val = errno; perror ("ERROR in sock_test_connect_test_sockets()"); - fprintf (stderr, "ERROR: socket failed (errno = %d)!\n", errno_val); + fprintf (stderr, "CLIENT: ERROR: socket failed (errno = %d)!\n", + errno_val); return -1; } @@ -504,8 +508,7 @@ sock_test_connect_test_sockets (uint32_t num_test_sockets) tsock = &scm->test_socket[i]; #ifdef VCL_TEST tsock->fd = - vppcom_session_create (VPPCOM_VRF_DEFAULT, VPPCOM_PROTO_TCP, - 1 /* is_nonblocking */ ); + vppcom_session_create (VPPCOM_PROTO_TCP, 1 /* is_nonblocking */ ); if (tsock->fd < 0) { errno = -tsock->fd; @@ -518,13 +521,18 @@ sock_test_connect_test_sockets (uint32_t num_test_sockets) { errno_val = errno; perror ("ERROR in sock_test_connect_test_sockets()"); - fprintf (stderr, "ERROR: socket failed (errno = %d)!\n", + fprintf (stderr, "CLIENT: ERROR: socket failed (errno = %d)!\n", errno_val); return tsock->fd; } #ifdef VCL_TEST rv = vppcom_session_connect (tsock->fd, &scm->server_endpt); + if (rv) + { + errno = -rv; + rv = -1; + } #else rv = connect (tsock->fd, (struct sockaddr *) &scm->server_addr, @@ -533,9 +541,10 @@ sock_test_connect_test_sockets (uint32_t num_test_sockets) if (rv < 0) { errno_val = errno; - perror ("ERROR in main()"); - fprintf (stderr, "ERROR: connect failed (errno = %d)!\n", - errno_val); + perror ("ERROR in sock_test_connect_test_sockets()"); + fprintf (stderr, "CLIENT: ERROR: connect failed " + "(errno = %d)!\n", errno_val); + return -1; } tsock->cfg = ctrl->cfg; sock_test_socket_buf_alloc (tsock); @@ -556,7 +565,7 @@ dump_help (void) { #define INDENT "\n " - printf ("Test configuration commands:" + printf ("CLIENT: Test configuration commands:" INDENT SOCK_TEST_TOKEN_HELP "\t\t\tDisplay help." INDENT SOCK_TEST_TOKEN_EXIT @@ -594,8 +603,8 @@ cfg_txbuf_size_set (void) sock_test_cfg_dump (&ctrl->cfg, 1 /* is_client */ ); } else - fprintf (stderr, - "ERROR: Invalid txbuf size (%lu) < minimum buf size (%u)!\n", + fprintf (stderr, "CLIENT: ERROR: Invalid txbuf size (%lu) < " + "minimum buf size (%u)!\n", txbuf_size, SOCK_TEST_CFG_BUF_SIZE_MIN); } @@ -615,7 +624,7 @@ cfg_num_writes_set (void) } else { - fprintf (stderr, "ERROR: invalid num writes: %u\n", num_writes); + fprintf (stderr, "CLIENT: ERROR: invalid num writes: %u\n", num_writes); } } @@ -632,11 +641,13 @@ cfg_num_test_sockets_set (void) { ctrl->cfg.num_test_sockets = num_test_sockets; sock_test_connect_test_sockets (num_test_sockets); + sock_test_cfg_dump (&ctrl->cfg, 1 /* is_client */ ); } else { - fprintf (stderr, "ERROR: invalid num test sockets: %u, (%d max)\n", + fprintf (stderr, "CLIENT: ERROR: invalid num test sockets: " + "%u, (%d max)\n", num_test_sockets, SOCK_TEST_CFG_MAX_TEST_SCKTS); } } @@ -657,8 +668,8 @@ cfg_rxbuf_size_set (void) sock_test_cfg_dump (&ctrl->cfg, 1 /* is_client */ ); } else - fprintf (stderr, - "ERROR: Invalid rxbuf size (%lu) < minimum buf size (%u)!\n", + fprintf (stderr, "CLIENT: ERROR: Invalid rxbuf size (%lu) < " + "minimum buf size (%u)!\n", rxbuf_size, SOCK_TEST_CFG_BUF_SIZE_MIN); } @@ -765,14 +776,15 @@ main (int argc, char **argv) if (sscanf (optarg, "0x%x", &ctrl->cfg.num_test_sockets) != 1) if (sscanf (optarg, "%u", &ctrl->cfg.num_test_sockets) != 1) { - fprintf (stderr, "ERROR: Invalid value for option -%c!\n", c); + fprintf (stderr, "CLIENT: ERROR: Invalid value for " + "option -%c!\n", c); print_usage_and_exit (); } if (!ctrl->cfg.num_test_sockets || (ctrl->cfg.num_test_sockets > FD_SETSIZE)) { - fprintf (stderr, "ERROR: Invalid number of sockets (%d)" - "specified for option -%c!\n" + fprintf (stderr, "CLIENT: ERROR: Invalid number of " + "sockets (%d) specified for option -%c!\n" " Valid range is 1 - %d\n", ctrl->cfg.num_test_sockets, c, FD_SETSIZE); print_usage_and_exit (); @@ -780,7 +792,7 @@ main (int argc, char **argv) break; case 'w': - fprintf (stderr, "Writing test results to files is TBD.\n"); + fprintf (stderr, "CLIENT: Writing test results to files is TBD.\n"); break; case 'X': @@ -790,8 +802,8 @@ main (int argc, char **argv) case 'E': if (strlen (optarg) > ctrl->txbuf_size) { - fprintf (stderr, - "ERROR: Option -%c value larger than txbuf size (%d)!\n", + fprintf (stderr, "CLIENT: ERROR: Option -%c value " + "larger than txbuf size (%d)!\n", optopt, ctrl->txbuf_size); print_usage_and_exit (); } @@ -803,13 +815,15 @@ main (int argc, char **argv) if (sscanf (optarg, "0x%x", &ctrl->cfg.num_test_sockets) != 1) if (sscanf (optarg, "%d", &ctrl->cfg.num_test_sockets) != 1) { - fprintf (stderr, "ERROR: Invalid value for option -%c!\n", c); + fprintf (stderr, "CLIENT: ERROR: Invalid value for " + "option -%c!\n", c); print_usage_and_exit (); } if (ctrl->cfg.num_test_sockets > SOCK_TEST_CFG_MAX_TEST_SCKTS) { - fprintf (stderr, "ERROR: value greater than max number test" - " sockets (%d)!", SOCK_TEST_CFG_MAX_TEST_SCKTS); + fprintf (stderr, "CLIENT: ERROR: value greater than max " + "number test sockets (%d)!", + SOCK_TEST_CFG_MAX_TEST_SCKTS); print_usage_and_exit (); } break; @@ -818,7 +832,8 @@ main (int argc, char **argv) if (sscanf (optarg, "0x%lx", &ctrl->cfg.num_writes) != 1) if (sscanf (optarg, "%ld", &ctrl->cfg.num_writes) != 1) { - fprintf (stderr, "ERROR: Invalid value for option -%c!\n", c); + fprintf (stderr, "CLIENT: ERROR: Invalid value for " + "option -%c!\n", c); print_usage_and_exit (); } ctrl->cfg.total_bytes = ctrl->cfg.num_writes * ctrl->cfg.txbuf_size; @@ -828,7 +843,8 @@ main (int argc, char **argv) if (sscanf (optarg, "0x%lx", &ctrl->cfg.rxbuf_size) != 1) if (sscanf (optarg, "%ld", &ctrl->cfg.rxbuf_size) != 1) { - fprintf (stderr, "ERROR: Invalid value for option -%c!\n", c); + fprintf (stderr, "CLIENT: ERROR: Invalid value for " + "option -%c!\n", c); print_usage_and_exit (); } if (ctrl->cfg.rxbuf_size >= SOCK_TEST_CFG_BUF_SIZE_MIN) @@ -840,8 +856,8 @@ main (int argc, char **argv) } else { - fprintf (stderr, - "ERROR: rxbuf size (%lu) less than minumum (%u)\n", + fprintf (stderr, "CLIENT: ERROR: rxbuf size (%lu) " + "less than minumum (%u)\n", ctrl->cfg.rxbuf_size, SOCK_TEST_CFG_BUF_SIZE_MIN); print_usage_and_exit (); } @@ -852,7 +868,8 @@ main (int argc, char **argv) if (sscanf (optarg, "0x%lx", &ctrl->cfg.txbuf_size) != 1) if (sscanf (optarg, "%ld", &ctrl->cfg.txbuf_size) != 1) { - fprintf (stderr, "ERROR: Invalid value for option -%c!\n", c); + fprintf (stderr, "CLIENT: ERROR: Invalid value " + "for option -%c!\n", c); print_usage_and_exit (); } if (ctrl->cfg.txbuf_size >= SOCK_TEST_CFG_BUF_SIZE_MIN) @@ -866,8 +883,8 @@ main (int argc, char **argv) } else { - fprintf (stderr, - "ERROR: txbuf size (%lu) less than minumum (%u)!\n", + fprintf (stderr, "CLIENT: ERROR: txbuf size (%lu) " + "less than minumum (%u)!\n", ctrl->cfg.txbuf_size, SOCK_TEST_CFG_BUF_SIZE_MIN); print_usage_and_exit (); } @@ -894,16 +911,17 @@ main (int argc, char **argv) case 'R': case 'T': case 'w': - fprintf (stderr, "ERROR: Option -%c requires an argument.\n", - optopt); + fprintf (stderr, "CLIENT: ERROR: Option -%c " + "requires an argument.\n", optopt); break; default: if (isprint (optopt)) - fprintf (stderr, "ERROR: Unknown option `-%c'.\n", optopt); + fprintf (stderr, "CLIENT: ERROR: Unknown " + "option `-%c'.\n", optopt); else - fprintf (stderr, "ERROR: Unknown option character `\\x%x'.\n", - optopt); + fprintf (stderr, "CLIENT: ERROR: Unknown " + "option character `\\x%x'.\n", optopt); } /* fall thru */ case 'h': @@ -913,7 +931,7 @@ main (int argc, char **argv) if (argc < (optind + 2)) { - fprintf (stderr, "ERROR: Insufficient number of arguments!\n"); + fprintf (stderr, "CLIENT: ERROR: Insufficient number of arguments!\n"); print_usage_and_exit (); } @@ -926,7 +944,7 @@ main (int argc, char **argv) } else { - ctrl->fd = vppcom_session_create (VPPCOM_VRF_DEFAULT, VPPCOM_PROTO_TCP, + ctrl->fd = vppcom_session_create (VPPCOM_PROTO_TCP, 0 /* is_nonblocking */ ); if (ctrl->fd < 0) { @@ -942,7 +960,8 @@ main (int argc, char **argv) { errno_val = errno; perror ("ERROR in main()"); - fprintf (stderr, "ERROR: socket failed (errno = %d)!\n", errno_val); + fprintf (stderr, "CLIENT: ERROR: socket " + "failed (errno = %d)!\n", errno_val); return ctrl->fd; } @@ -953,7 +972,6 @@ main (int argc, char **argv) scm->server_addr.sin_port = htons (atoi (argv[optind])); #ifdef VCL_TEST - scm->server_endpt.vrf = VPPCOM_VRF_DEFAULT; scm->server_endpt.is_ip4 = (scm->server_addr.sin_family == AF_INET); scm->server_endpt.ip = (uint8_t *) & scm->server_addr.sin_addr; scm->server_endpt.port = (uint16_t) scm->server_addr.sin_port; @@ -965,6 +983,11 @@ main (int argc, char **argv) #ifdef VCL_TEST rv = vppcom_session_connect (ctrl->fd, &scm->server_endpt); + if (rv) + { + errno = -rv; + rv = -1; + } #else rv = connect (ctrl->fd, (struct sockaddr *) &scm->server_addr, @@ -974,8 +997,9 @@ main (int argc, char **argv) { errno_val = errno; perror ("ERROR in main()"); - fprintf (stderr, "ERROR: connect failed (errno = %d)!\n", + fprintf (stderr, "CLIENT: ERROR: connect failed (errno = %d)!\n", errno_val); + return -1; } sock_test_cfg_sync (ctrl); @@ -1040,7 +1064,7 @@ main (int argc, char **argv) memset (ctrl->txbuf, 0, ctrl->txbuf_size); memset (ctrl->rxbuf, 0, ctrl->rxbuf_size); - printf ("\nType some characters and hit \n" + printf ("\nCLIENT: Type some characters and hit \n" "('" SOCK_TEST_TOKEN_HELP "' for help): "); if (fgets (ctrl->txbuf, ctrl->txbuf_size, stdin) != NULL)