From adbeba3639c1f3c2c98e49cfe7ca7939e2166f8a Mon Sep 17 00:00:00 2001 From: Hari Kumar Vemula Date: Mon, 12 Aug 2019 13:40:25 +0100 Subject: [PATCH] doc: add a guide to run unit tests with meson Add a programmer's guide section for meson ut Signed-off-by: Hari Kumar Vemula Acked-by: Bruce Richardson Acked-by: Michael Santana --- .../prog_guide/build-sdk-meson.rst} | 7 +- doc/guides/prog_guide/index.rst | 2 + doc/guides/prog_guide/meson_ut.rst | 66 +++++++++++++++++++ 3 files changed, 72 insertions(+), 3 deletions(-) rename doc/{build-sdk-meson.txt => guides/prog_guide/build-sdk-meson.rst} (97%) create mode 100644 doc/guides/prog_guide/meson_ut.rst diff --git a/doc/build-sdk-meson.txt b/doc/guides/prog_guide/build-sdk-meson.rst similarity index 97% rename from doc/build-sdk-meson.txt rename to doc/guides/prog_guide/build-sdk-meson.rst index 319a19ef6b..e34daab91b 100644 --- a/doc/build-sdk-meson.txt +++ b/doc/guides/prog_guide/build-sdk-meson.rst @@ -1,5 +1,5 @@ -INSTALLING DPDK USING THE MESON BUILD SYSTEM ---------------------------------------------- +Installing DPDK Using the meson build system +============================================ Summary -------- @@ -165,7 +165,8 @@ command:: For example if the target machine is arm64 we can use the following command:: - meson arm-build --cross-file config/arm/arm64_armv8_linux_gcc + + meson arm-build --cross-file config/arm/arm64_armv8_linux_gcc where config/arm/arm64_armv8_linux_gcc contains settings for the compilers and other build tools to be used, as well as characteristics of the target diff --git a/doc/guides/prog_guide/index.rst b/doc/guides/prog_guide/index.rst index dc4851c57f..fb250abf51 100644 --- a/doc/guides/prog_guide/index.rst +++ b/doc/guides/prog_guide/index.rst @@ -60,6 +60,8 @@ Programmer's Guide source_org dev_kit_build_system dev_kit_root_make_help + build-sdk-meson + meson_ut extend_dpdk build_app ext_app_lib_make_help diff --git a/doc/guides/prog_guide/meson_ut.rst b/doc/guides/prog_guide/meson_ut.rst new file mode 100644 index 0000000000..fff88655dd --- /dev/null +++ b/doc/guides/prog_guide/meson_ut.rst @@ -0,0 +1,66 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2018-2019 Intel Corporation. + +Running DPDK Unit Tests with Meson +================================== + +This section describes how to run test cases with the DPDK meson build system. + +Steps to build and install DPDK using meson can be referred +in :doc:`build-sdk-meson` + +Grouping of test cases +---------------------- + +Test cases have been classified into four different groups. + +* Fast tests. +* Performance tests. +* Driver tests. +* Tests which produce lists of objects as output, and therefore that need + manual checking. + +These tests can be run using the argument to ``meson test`` as +``--suite project_name:label``. + +For example:: + + $ meson test -C --suite DPDK:fast-tests + +If the ```` is current working directory, +the ``-C `` option can be skipped as below:: + + $ meson test --suite DPDK:fast-tests + +The project name is optional so the following is equivalent to the previous +command:: + + $ meson test --suite fast-tests + +The meson command to list all available tests:: + + $ meson test --list + +Test cases are run serially by default for better stability. + +Arguments of ``test()`` that can be provided in meson.build are as below: + +* ``is_parallel`` is used to run test case either in parallel or non-parallel mode. +* ``timeout`` is used to specify the timeout of test case. +* ``args`` is used to specify test specific parameters. +* ``env`` is used to specify test specific environment parameters. + + +Dealing with skipped test cases +------------------------------- + +Some unit test cases have a dependency on external libraries, driver modules +or config flags, without which the test cases cannot be run. Such test cases +will be reported as skipped if they cannot run. To enable those test cases, +the user should ensure the required dependencies are met. +Below are a few possible causes why tests may be skipped: + +#. Optional external libraries are not found. +#. Config flags for the dependent library are not enabled. +#. Dependent driver modules are not installed on the system. +#. Not enough processing cores. Some tests are skipped on machines with 2 or 4 cores. -- 2.20.1