From patchwork Thu Aug 22 16:07:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ray Kinsella X-Patchwork-Id: 57825 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BD8641BF84; Thu, 22 Aug 2019 18:08:03 +0200 (CEST) Received: from qrelay9.mxroute.com (qrelay9.mxroute.com [172.82.139.9]) by dpdk.org (Postfix) with ESMTP id 284C31BF83 for ; Thu, 22 Aug 2019 18:08:02 +0200 (CEST) Received: from filter002.mxroute.com (unknown [116.203.155.46]) by qrelay9.mxroute.com (Postfix) with ESMTP id 2307B8023E; Thu, 22 Aug 2019 12:08:01 -0400 (EDT) Received: from galaxy.mxroute.com (unknown [23.92.70.113]) by filter002.mxroute.com (Postfix) with ESMTPS id 5E78B3F0C2; Thu, 22 Aug 2019 16:07:55 +0000 (UTC) Received: from [192.198.151.43] (helo=localhost) by galaxy.mxroute.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from ) id 1i0pWr-0001Td-Ou; Thu, 22 Aug 2019 12:01:37 -0400 From: Ray Kinsella To: dev@dpdk.org Cc: mdr@ashroe.eu, bruce.richardson@intel.com, vladimir.medvedkin@intel.com, john.mcnamara@intel.com, marko.kovacevic@intel.com Date: Thu, 22 Aug 2019 17:07:15 +0100 Message-Id: <20190822160717.13584-1-mdr@ashroe.eu> X-Mailer: git-send-email 2.17.1 X-AuthUser: mdr@ashroe.eu Subject: [dpdk-dev] [PATCH v2 0/2] add abi version testing to app/test X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patchset adds ABI version testing to the app/test unit test framework, addressing two issues previously raised during ML conversations on ABI stability; 1. How do we unit test still supported previous ABI versions? 2. How to we unit test inline functions from still supported previous ABI versions? Starting with rte_lpm, I did the following:- * I reproduced mostly unmodified unit tests for the v2.0 ABI, taken from DPDK 2.2 and 17.02. * I reproduced the rte_lpm interface header from v2.0, including the inline functions and remapping symbols to their appropriate versions. * I added support for multiple abi versions to the app/test unit test framework to allow users to switch between abi versions (set_abi_version), without further polluting the already long list of unit tests available in app/test. The intention here is that in future as developers need to deprecate APIs, the associated unit tests may move into the ABI version testing mechanism of the app/test instead of being replaced by the latest set of unit tests as would be the case today. v2: * Added LPM IPv6 test cases for the v2.0 ABI. * Fixed a number of checkpatch errors, stop short of substantially reworking the test code from the v2.0 ABI. * Removed duplicating test cases published in the original v1 patch. Ray Kinsella (2): app/test: add abi version testing functionality app/test: lpm abi version testing app/test/Makefile | 12 +- app/test/commands.c | 131 +- app/test/meson.build | 6 + app/test/test.c | 2 + app/test/test.h | 48 +- app/test/test_lpm.c | 3 +- app/test/test_lpm6.c | 2 +- app/test/test_lpm_perf.c | 293 +--- app/test/test_lpm_routes.c | 287 ++++ app/test/test_lpm_routes.h | 25 + app/test/v2.0/dcompat.h | 30 + app/test/v2.0/rte_lpm.h | 451 +++++ app/test/v2.0/rte_lpm6.h | 198 +++ app/test/v2.0/test_lpm.c | 1139 +++++++++++++ app/test/v2.0/test_lpm6.c | 1748 ++++++++++++++++++++ app/test/v2.0/test_lpm6_perf.c | 179 ++ app/test/v2.0/test_lpm_perf.c | 212 +++ app/test/v2.0/test_v20.c | 14 + doc/guides/contributing/versioning.rst | 4 + lib/librte_eal/common/include/rte_compat.h | 7 + 20 files changed, 4471 insertions(+), 320 deletions(-) create mode 100644 app/test/test_lpm_routes.c create mode 100644 app/test/test_lpm_routes.h create mode 100644 app/test/v2.0/dcompat.h create mode 100644 app/test/v2.0/rte_lpm.h create mode 100644 app/test/v2.0/rte_lpm6.h create mode 100644 app/test/v2.0/test_lpm.c create mode 100644 app/test/v2.0/test_lpm6.c create mode 100644 app/test/v2.0/test_lpm6_perf.c create mode 100644 app/test/v2.0/test_lpm_perf.c create mode 100644 app/test/v2.0/test_v20.c