diff options
author | Stuart Haslam <stuart.haslam@linaro.org> | 2015-11-10 18:24:02 +0000 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2015-11-13 13:26:39 +0300 |
commit | 8bd5e2ef26458be62a7fbb322b6086b61d7654f5 (patch) | |
tree | 156d6346b80551957671059a4f63f46726001e26 | |
parent | fb98d4c479718301eaedee8d910297e221554b25 (diff) |
validation: pktio: test transmit error recovery
After inducing a transmit error send some additional packets to ensure
transmit recovers correctly.
Signed-off-by: Stuart Haslam <stuart.haslam@linaro.org>
Reviewed-and-Tested-by: Matias Elo <matias.elo@nokia.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
-rw-r--r-- | test/validation/pktio/pktio.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/validation/pktio/pktio.c b/test/validation/pktio/pktio.c index a2da47bd7..41106b00a 100644 --- a/test/validation/pktio/pktio.c +++ b/test/validation/pktio/pktio.c @@ -932,6 +932,25 @@ static void pktio_test_send_failure(void) } else { CU_FAIL("failed to receive transmitted packets\n"); } + + /* now reduce the size of the long packet and attempt to send + * again - should work this time */ + i = long_pkt_idx; + odp_packet_pull_tail(pkt_tbl[i], + odp_packet_len(pkt_tbl[i]) - + PKT_LEN_NORMAL); + pkt_seq[i] = pktio_init_packet(pkt_tbl[i]); + CU_ASSERT_FATAL(pkt_seq[i] != TEST_SEQ_INVALID); + ret = odp_pktio_send(pktio_tx, &pkt_tbl[i], TX_BATCH_LEN - i); + CU_ASSERT_FATAL(ret == (TX_BATCH_LEN - i)); + + for (; i < TX_BATCH_LEN; ++i) { + pkt_tbl[i] = wait_for_packet(&info_rx, + pkt_seq[i], ODP_TIME_SEC); + if (pkt_tbl[i] == ODP_PACKET_INVALID) + break; + } + CU_ASSERT(i == TX_BATCH_LEN); } else { CU_FAIL("failed to generate test packets\n"); } |