aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStuart Haslam <stuart.haslam@linaro.org>2015-11-10 18:24:02 +0000
committerMaxim Uvarov <maxim.uvarov@linaro.org>2015-11-13 13:26:39 +0300
commit8bd5e2ef26458be62a7fbb322b6086b61d7654f5 (patch)
tree156d6346b80551957671059a4f63f46726001e26
parentfb98d4c479718301eaedee8d910297e221554b25 (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.c19
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");
}