There is a test for dynamic field registration at a specific offset.
Depending on which driver is probed, some dynamic fields may be
already registered at this offset.
This failure is skipped with a warning.

Fixes: 4958ca3a443a ("mbuf: support dynamic fields and flags")
Cc: sta...@dpdk.org

Reported-by: David Marchand <david.march...@redhat.com>
Signed-off-by: Thomas Monjalon <tho...@monjalon.net>
---
 app/test/test_mbuf.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c
index 80d1850da9..3a13cf4e1f 100644
--- a/app/test/test_mbuf.c
+++ b/app/test/test_mbuf.c
@@ -2608,9 +2608,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);
-- 
2.28.0

Reply via email to