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 -- 2.17.1