test suite reviews and discussions
 help / color / mirror / Atom feed
From: "Chen, Zhaoyan" <zhaoyan.chen@intel.com>
To: dts@dpdk.org
Cc: "Chen, Zhaoyan" <zhaoyan.chen@intel.com>
Subject: [dts] [PATCH V1] Add ABI negative test case
Date: Mon,  9 Mar 2020 12:59:01 +0800	[thread overview]
Message-ID: <20200309045901.175399-1-zhaoyan.chen@intel.com> (raw)

Add ABI negative test case for checking ABI test suite.

---
 test_plans/ABI_stable_test.rst | 150 +++++++++++++++++++++++++++++++++
 1 file changed, 150 insertions(+)

diff --git a/test_plans/ABI_stable_test.rst b/test_plans/ABI_stable_test.rst
index bc8deb4..ab2fd7e 100644
--- a/test_plans/ABI_stable_test.rst
+++ b/test_plans/ABI_stable_test.rst
@@ -148,3 +148,153 @@ Execute Test Suites
   +-------------------------------+------------------------+
   |   l3fwd                        |     performance         |
   +-------------------------------+------------------------+
+
+
+Negative Test Case
+==================
+
+Prepare 1 patch file, 0001-rte_tx_burst_t_add-one-argument-at-the-end.patch ::
+
+  From 56eb4b14c2344fddc9f8ee1c6b5cf9ef4999ee80 Mon Sep 17 00:00:00 2001
+  From: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
+  Date: Thu, 30 Jan 2020 17:19:19 +0000
+  Subject: [PATCH] eth_tx_burst_t add one argument at the end
+
+  compile with:
+  meson configure -Ddisable_drivers=net/af_packet,net/ark,net/atlantic,net/avp,net/axgbe,net/bond,net/bnx2x,net/bnxt,net/cxgbe,net/dpaa,net/dpaa2,net/e1000,net/ena,net/enetc,net/enic,net/fm10k,net/i40e,net/hinic,net/hns3,net/iavf,net/ice,net/kni,net/liquidio,net/memif,net/netvsc,net/nfp,net/null,net/octeontx,net/octeontx2,net/pcap,net/pfe,net/qede,net/sfc,net/softnic,net/tap,net/thunderx,net/vdev_netvsc,net/vhost,net/virtio,net/vmxnet3,common/cpt,common/dpaax,common/iavf,common/octeontx2,bus/dpaa,bus/fslmc,bus/ifpga,bus/vmbus,mempool/bucket,mempool/dpaa,mempool/dpaa2,mempool/octeontx2,mempool/stack,raw/dpaa2_cmdif,raw/dpaa2_qdma,raw/ioat,raw/ntb,raw/octeontx2_dma,raw/octeontx2_ep,raw/skeleton,crypto/caam_jr,crypto/ccp,crypto/dpaa_sec,crypto/dpaa2_sec,crypto/nitrox,crypto/null_crypto,crypto/octeontx_crypto,crypto/octeontx2_crypto,crypto/openssl,crypto/crypto_scheduler,crypto/virtio_crypto,vdpa/ifc,event/dpaa,event/dpaa2,event/octeontx2,event/opdl,event/skeleton,event/sw,event/dsw,event/octeontx,baseband/null,baseband/turbo_sw,baseband/fpga_lte_fec,net/failsafe
+
+  Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
+  ---
+  drivers/net/ixgbe/ixgbe_ethdev.h         |  4 ++--
+  drivers/net/ixgbe/ixgbe_rxtx.c           | 10 +++++-----
+  drivers/net/ixgbe/ixgbe_vf_representor.c |  2 +-
+  lib/librte_ethdev/rte_ethdev.h           |  2 +-
+  lib/librte_ethdev/rte_ethdev_core.h      |  2 +-
+  5 files changed, 10 insertions(+), 10 deletions(-)
+
+  diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
+  index e1cd8fd16..f5fce74fc 100644
+  --- a/drivers/net/ixgbe/ixgbe_ethdev.h
+  +++ b/drivers/net/ixgbe/ixgbe_ethdev.h
+  @@ -642,10 +642,10 @@ uint16_t ixgbe_recv_pkts_lro_bulk_alloc(void *rx_queue,
+      struct rte_mbuf **rx_pkts, uint16_t nb_pkts);
+
+  uint16_t ixgbe_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+  -		uint16_t nb_pkts);
+  +		uint16_t nb_pkts, uint32_t dummy);
+
+  uint16_t ixgbe_xmit_pkts_simple(void *tx_queue, struct rte_mbuf **tx_pkts,
+  -		uint16_t nb_pkts);
+  +		uint16_t nb_pkts, uint32_t dummy);
+
+  uint16_t ixgbe_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+      uint16_t nb_pkts);
+  diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
+  index 7b398f1a1..198be146a 100644
+  --- a/drivers/net/ixgbe/ixgbe_rxtx.c
+  +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
+  @@ -315,10 +315,10 @@ tx_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+
+  uint16_t
+  ixgbe_xmit_pkts_simple(void *tx_queue, struct rte_mbuf **tx_pkts,
+  -		       uint16_t nb_pkts)
+  +		       uint16_t nb_pkts, uint32_t dummy)
+  {
+    uint16_t nb_tx;
+  -
+  +	dummy += 1;
+    /* Try to transmit at least chunks of TX_MAX_BURST pkts */
+    if (likely(nb_pkts <= RTE_PMD_IXGBE_TX_MAX_BURST))
+      return tx_xmit_pkts(tx_queue, tx_pkts, nb_pkts);
+  @@ -341,7 +341,7 @@ ixgbe_xmit_pkts_simple(void *tx_queue, struct rte_mbuf **tx_pkts,
+
+  static uint16_t
+  ixgbe_xmit_pkts_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
+  -		    uint16_t nb_pkts)
+  +		    uint16_t nb_pkts, __rte_unused uint32_t dummy)
+  {
+    uint16_t nb_tx = 0;
+    struct ixgbe_tx_queue *txq = (struct ixgbe_tx_queue *)tx_queue;
+  @@ -622,7 +622,7 @@ ixgbe_xmit_cleanup(struct ixgbe_tx_queue *txq)
+
+  uint16_t
+  ixgbe_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+  -		uint16_t nb_pkts)
+  +		uint16_t nb_pkts, uint32_t dummy)
+  {
+    struct ixgbe_tx_queue *txq;
+    struct ixgbe_tx_entry *sw_ring;
+  @@ -648,7 +648,7 @@ ixgbe_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+  #ifdef RTE_LIBRTE_SECURITY
+    uint8_t use_ipsec;
+  #endif
+  -
+  +	dummy += 1;
+    tx_offload.data[0] = 0;
+    tx_offload.data[1] = 0;
+    txq = tx_queue;
+  diff --git a/drivers/net/ixgbe/ixgbe_vf_representor.c b/drivers/net/ixgbe/ixgbe_vf_representor.c
+  index dbbef294a..47b41992d 100644
+  --- a/drivers/net/ixgbe/ixgbe_vf_representor.c
+  +++ b/drivers/net/ixgbe/ixgbe_vf_representor.c
+  @@ -164,7 +164,7 @@ ixgbe_vf_representor_rx_burst(__rte_unused void *rx_queue,
+
+  static uint16_t
+  ixgbe_vf_representor_tx_burst(__rte_unused void *tx_queue,
+  -	__rte_unused struct rte_mbuf **tx_pkts, __rte_unused uint16_t nb_pkts)
+  +	__rte_unused struct rte_mbuf **tx_pkts, __rte_unused uint16_t nb_pkts, __rte_unused uint32_t dummy)
+  {
+    return 0;
+  }
+  diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
+  index d1a593ad1..ba6c36155 100644
+  --- a/lib/librte_ethdev/rte_ethdev.h
+  +++ b/lib/librte_ethdev/rte_ethdev.h
+  @@ -4663,7 +4663,7 @@ rte_eth_tx_burst(uint16_t port_id, uint16_t queue_id,
+    }
+  #endif
+
+  -	return (*dev->tx_pkt_burst)(dev->data->tx_queues[queue_id], tx_pkts, nb_pkts);
+  +	return (*dev->tx_pkt_burst)(dev->data->tx_queues[queue_id], tx_pkts, nb_pkts, 5);
+  }
+
+  /**
+  diff --git a/lib/librte_ethdev/rte_ethdev_core.h b/lib/librte_ethdev/rte_ethdev_core.h
+  index 7bf97e24e..8a173574c 100644
+  --- a/lib/librte_ethdev/rte_ethdev_core.h
+  +++ b/lib/librte_ethdev/rte_ethdev_core.h
+  @@ -344,7 +344,7 @@ typedef uint16_t (*eth_rx_burst_t)(void *rxq,
+
+  typedef uint16_t (*eth_tx_burst_t)(void *txq,
+            struct rte_mbuf **tx_pkts,
+  -				   uint16_t nb_pkts);
+  +				   uint16_t nb_pkts, uint32_t dummy);
+  /**< @internal Send output packets on a transmit queue of an Ethernet device. */
+
+  typedef uint16_t (*eth_tx_prep_t)(void *txq,
+  --
+  2.17.2
+
+
+Apply negative patch to rte_eth_dev structure and ixgbe pmd driver,
+inject 4 bytes in tx_burst.
+::
+
+  git apply 0001-rte_tx_burst_t_add-one-argument-at-the-end.patch
+
+Build shared libraries, (just enable i40e pmd for testing)::
+
+  meson configure -Ddisable_drivers=net/af_packet,net/ark,net/atlantic,net/avp,net/axgbe,net/bond,net/bnx2x,net/bnxt,net/cxgbe,net/dpaa,net/dpaa2,net/e1000,net/ena,net/enetc,net/enic,net/fm10k,net/hinic,net/hns3,net/iavf,net/ice,net/kni,net/liquidio,net/memif,net/netvsc,net/nfp,net/null,net/octeontx,net/octeontx2,net/pcap,net/pfe,net/qede,net/sfc,net/softnic,net/tap,net/thunderx,net/vdev_netvsc,net/vhost,net/virtio,net/vmxnet3,common/cpt,common/dpaax,common/iavf,common/octeontx2,bus/dpaa,bus/fslmc,bus/ifpga,bus/vmbus,mempool/bucket,mempool/dpaa,mempool/dpaa2,mempool/octeontx2,mempool/stack,raw/dpaa2_cmdif,raw/dpaa2_qdma,raw/ioat,raw/ntb,raw/octeontx2_dma,raw/octeontx2_ep,raw/skeleton,crypto/caam_jr,crypto/ccp,crypto/dpaa_sec,crypto/dpaa2_sec,crypto/nitrox,crypto/null_crypto,crypto/octeontx_crypto,crypto/octeontx2_crypto,crypto/openssl,crypto/crypto_scheduler,crypto/virtio_crypto,vdpa/ifc,event/dpaa,event/dpaa2,event/octeontx2,event/opdl,event/skeleton,event/sw,event/dsw,event/octeontx,baseband/null,baseband/turbo_sw,baseband/fpga_lte_fec,net/failsafe
+  meson  --werror -Dexamples=all --buildtype=debugoptimized --default-library=shared ./devtools/.. ./build-gcc-shared
+  ninja -C ./build-gcc-shared
+
+Run testpmd application refer to Common Test steps with ixgbe pmd NIC.::
+
+  testpmd -c 0xf -n 4 -d <dpdk_2002> -w 18:00.0 -- -i
+
+Test txonly::
+
+  set fwd txonly
+  start
+
+Expect there is no error happended
-- 
2.22.0


             reply	other threads:[~2020-03-09  5:04 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-09  4:59 Chen, Zhaoyan [this message]
2020-03-13  6:33 ` Tu, Lijuan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200309045901.175399-1-zhaoyan.chen@intel.com \
    --to=zhaoyan.chen@intel.com \
    --cc=dts@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).