X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Ftest_mbuf.c;h=82777109dcd291b9aa5aecdec5fd256b43866eef;hb=88caad251c8de3a84e353b0b2a27014bc303df87;hp=80d1850da9d1384c421793d95d67c8844d650e3d;hpb=cb056611a8ed9ab9024f3b91bf26e97255194514;p=dpdk.git diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c index 80d1850da9..82777109dc 100644 --- a/app/test/test_mbuf.c +++ b/app/test/test_mbuf.c @@ -1174,6 +1174,8 @@ err: } #include +#include +#include #include /* use fork() to test mbuf errors panic */ @@ -1186,9 +1188,14 @@ verify_mbuf_check_panics(struct rte_mbuf *buf) pid = fork(); if (pid == 0) { + struct rlimit rl; + + /* No need to generate a coredump when panicking. */ + rl.rlim_cur = rl.rlim_max = 0; + setrlimit(RLIMIT_CORE, &rl); rte_mbuf_sanity_check(buf, 1); /* should panic */ exit(0); /* return normally if it doesn't panic */ - } else if (pid < 0){ + } else if (pid < 0) { printf("Fork Failed\n"); return -1; } @@ -1613,7 +1620,7 @@ test_get_rx_ol_flag_name(void) VAL_NAME(PKT_RX_IP_CKSUM_BAD), VAL_NAME(PKT_RX_IP_CKSUM_GOOD), VAL_NAME(PKT_RX_IP_CKSUM_NONE), - VAL_NAME(PKT_RX_EIP_CKSUM_BAD), + VAL_NAME(PKT_RX_OUTER_IP_CKSUM_BAD), VAL_NAME(PKT_RX_VLAN_STRIPPED), VAL_NAME(PKT_RX_IEEE1588_PTP), VAL_NAME(PKT_RX_IEEE1588_TMST), @@ -1621,7 +1628,6 @@ test_get_rx_ol_flag_name(void) VAL_NAME(PKT_RX_FDIR_FLX), VAL_NAME(PKT_RX_QINQ_STRIPPED), VAL_NAME(PKT_RX_LRO), - VAL_NAME(PKT_RX_TIMESTAMP), VAL_NAME(PKT_RX_SEC_OFFLOAD), VAL_NAME(PKT_RX_SEC_OFFLOAD_FAILED), VAL_NAME(PKT_RX_OUTER_L4_CKSUM_BAD), @@ -2357,7 +2363,7 @@ test_pktmbuf_ext_shinfo_init_helper(struct rte_mempool *pktmbuf_pool) if (rte_mbuf_refcnt_read(m) != 1) GOTO_FAIL("%s: Invalid refcnt in mbuf\n", __func__); - buf_iova = rte_mempool_virt2iova(ext_buf_addr); + buf_iova = rte_mem_virt2iova(ext_buf_addr); rte_pktmbuf_attach_extbuf(m, ext_buf_addr, buf_iova, buf_len, ret_shinfo); if (m->ol_flags != EXT_ATTACHED_MBUF) @@ -2571,6 +2577,16 @@ test_mbuf_dyn(struct rte_mempool *pktmbuf_pool) .align = 3, .flags = 0, }; + const struct rte_mbuf_dynfield dynfield_fail_flag = { + .name = "test-dynfield", + .size = sizeof(uint8_t), + .align = __alignof__(uint8_t), + .flags = 1, + }; + const struct rte_mbuf_dynflag dynflag_fail_flag = { + .name = "test-dynflag", + .flags = 1, + }; const struct rte_mbuf_dynflag dynflag = { .name = "test-dynflag", .flags = 0, @@ -2608,9 +2624,13 @@ test_mbuf_dyn(struct rte_mempool *pktmbuf_pool) offset3 = rte_mbuf_dynfield_register_offset(&dynfield3, offsetof(struct rte_mbuf, dynfield1[1])); - if (offset3 != offsetof(struct rte_mbuf, dynfield1[1])) - GOTO_FAIL("failed to register dynamic field 3, offset=%d: %s", - offset3, strerror(errno)); + if (offset3 != offsetof(struct rte_mbuf, dynfield1[1])) { + if (rte_errno == EBUSY) + printf("mbuf test error skipped: dynfield is busy\n"); + else + GOTO_FAIL("failed to register dynamic field 3, offset=" + "%d: %s", offset3, strerror(errno)); + } printf("dynfield: offset=%d, offset2=%d, offset3=%d\n", offset, offset2, offset3); @@ -2628,6 +2648,14 @@ test_mbuf_dyn(struct rte_mempool *pktmbuf_pool) if (ret != -1) GOTO_FAIL("dynamic field creation should fail (not avail)"); + ret = rte_mbuf_dynfield_register(&dynfield_fail_flag); + if (ret != -1) + GOTO_FAIL("dynamic field creation should fail (invalid flag)"); + + ret = rte_mbuf_dynflag_register(&dynflag_fail_flag); + if (ret != -1) + GOTO_FAIL("dynamic flag creation should fail (invalid flag)"); + flag = rte_mbuf_dynflag_register(&dynflag); if (flag == -1) GOTO_FAIL("failed to register dynamic flag, flag=%d: %s",