> -----Original Message-----
> From: lng-odp [mailto:[email protected]] On Behalf Of EXT Maxim
> Uvarov
> Sent: Wednesday, December 30, 2015 12:18 PM
> To: [email protected]
> Subject: [lng-odp] [NEXT PATCHv3 2/2] validation: test odp_pktio_link_status()
>
> Signed-off-by: Maxim Uvarov <[email protected]>
> ---
> test/validation/pktio/pktio.c | 37
> +++++++++++++++++++++++++++++++++++++
> 1 file changed, 37 insertions(+)
>
> diff --git a/test/validation/pktio/pktio.c b/test/validation/pktio/pktio.c
> index e473a1d..fa3ecbc 100644
> --- a/test/validation/pktio/pktio.c
> +++ b/test/validation/pktio/pktio.c
> @@ -74,6 +74,29 @@ pkt_segmented_e pool_segmentation =
> PKT_POOL_UNSEGMENTED;
>
> odp_pool_t pool[MAX_NUM_IFACES] = {ODP_POOL_INVALID,
> ODP_POOL_INVALID};
>
> +static inline void _pktio_wait_linkup(odp_pktio_t pktio)
> +{
> + /* wait 1 second for link up */
> + uint64_t wait_ns = (10 * ODP_TIME_MSEC_IN_NS);
> + int wait_num = 10;
> + int i;
> + int ret = -1;
> +
> + for (i = 0; i < wait_num; i++) {
> + ret = odp_pktio_link_status(pktio);
> + if (ret < 0 || ret == 1)
> + break;
> + /* link is down, call status again after delay */
> + odp_time_wait_ns(wait_ns);
> + }
The loop seems to lasts max 100ms, not 1 second as mentioned in the comment
above.
I assume that the patches should be applied to api-next and not to next as
stated in the subject line. The patches fail to apply on the next branch.
Everything else looks OK to me.
-Matias
> +
> + if (ret != -1) {
> + /* assert only if link state supported and
> + * it's down. */
> + CU_ASSERT_FATAL(ret == 1);
> + }
> +}
> +
> static void set_pool_len(odp_pool_param_t *params)
> {
> switch (pool_segmentation) {
> @@ -514,6 +537,8 @@ static void test_txrx(odp_pktio_input_mode_t in_mode,
> int num_pkts)
>
> ret = odp_pktio_start(io->id);
> CU_ASSERT(ret == 0);
> +
> + _pktio_wait_linkup(io->id);
> }
>
> /* if we have two interfaces then send through one and receive on
> @@ -757,6 +782,8 @@ void pktio_test_start_stop(void)
> ret = odp_pktio_start(pktio[0]);
> CU_ASSERT(ret < 0);
>
> + _pktio_wait_linkup(pktio[0]);
> +
> /* Test Rx on a stopped interface. Only works if there are 2 */
> if (num_ifaces > 1) {
> for (alloc = 0; alloc < 1000; alloc++) {
> @@ -804,6 +831,8 @@ void pktio_test_start_stop(void)
> ret = odp_pktio_start(pktio[1]);
> CU_ASSERT(ret == 0);
>
> + _pktio_wait_linkup(pktio[1]);
> +
> /* flush packets with magic number in pipes */
> for (i = 0; i < 1000; i++) {
> ev = odp_schedule(NULL, wait);
> @@ -915,6 +944,8 @@ void pktio_test_send_failure(void)
> ret = odp_pktio_start(pktio_tx);
> CU_ASSERT_FATAL(ret == 0);
>
> + _pktio_wait_linkup(pktio_tx);
> +
> /* configure the pool so that we can generate test packets larger
> * than the interface MTU */
> memset(&pool_params, 0, sizeof(pool_params));
> @@ -930,6 +961,8 @@ void pktio_test_send_failure(void)
> ODP_PKTOUT_MODE_SEND);
> ret = odp_pktio_start(pktio_rx);
> CU_ASSERT_FATAL(ret == 0);
> +
> + _pktio_wait_linkup(pktio_rx);
> } else {
> pktio_rx = pktio_tx;
> }
> @@ -1052,6 +1085,8 @@ void pktio_test_recv_on_wonly(void)
> ret = odp_pktio_start(pktio);
> CU_ASSERT_FATAL(ret == 0);
>
> + _pktio_wait_linkup(pktio);
> +
> ret = odp_pktio_recv(pktio, &pkt, 1);
> CU_ASSERT(ret < 0);
>
> @@ -1082,6 +1117,8 @@ void pktio_test_send_on_ronly(void)
> ret = odp_pktio_start(pktio);
> CU_ASSERT_FATAL(ret == 0);
>
> + _pktio_wait_linkup(pktio);
> +
> pkt = odp_packet_alloc(default_pkt_pool, packet_len);
> CU_ASSERT_FATAL(pkt != ODP_PACKET_INVALID)
>
> --
> 1.9.1
>
> _______________________________________________
> lng-odp mailing list
> [email protected]
> https://lists.linaro.org/mailman/listinfo/lng-odp
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp