> -----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

Reply via email to