1*adbeba36SHari Kumar Vemula.. SPDX-License-Identifier: BSD-3-Clause 2*adbeba36SHari Kumar Vemula Copyright(c) 2018-2019 Intel Corporation. 3*adbeba36SHari Kumar Vemula 4*adbeba36SHari Kumar VemulaRunning DPDK Unit Tests with Meson 5*adbeba36SHari Kumar Vemula================================== 6*adbeba36SHari Kumar Vemula 7*adbeba36SHari Kumar VemulaThis section describes how to run test cases with the DPDK meson build system. 8*adbeba36SHari Kumar Vemula 9*adbeba36SHari Kumar VemulaSteps to build and install DPDK using meson can be referred 10*adbeba36SHari Kumar Vemulain :doc:`build-sdk-meson` 11*adbeba36SHari Kumar Vemula 12*adbeba36SHari Kumar VemulaGrouping of test cases 13*adbeba36SHari Kumar Vemula---------------------- 14*adbeba36SHari Kumar Vemula 15*adbeba36SHari Kumar VemulaTest cases have been classified into four different groups. 16*adbeba36SHari Kumar Vemula 17*adbeba36SHari Kumar Vemula* Fast tests. 18*adbeba36SHari Kumar Vemula* Performance tests. 19*adbeba36SHari Kumar Vemula* Driver tests. 20*adbeba36SHari Kumar Vemula* Tests which produce lists of objects as output, and therefore that need 21*adbeba36SHari Kumar Vemula manual checking. 22*adbeba36SHari Kumar Vemula 23*adbeba36SHari Kumar VemulaThese tests can be run using the argument to ``meson test`` as 24*adbeba36SHari Kumar Vemula``--suite project_name:label``. 25*adbeba36SHari Kumar Vemula 26*adbeba36SHari Kumar VemulaFor example:: 27*adbeba36SHari Kumar Vemula 28*adbeba36SHari Kumar Vemula $ meson test -C <build path> --suite DPDK:fast-tests 29*adbeba36SHari Kumar Vemula 30*adbeba36SHari Kumar VemulaIf the ``<build path>`` is current working directory, 31*adbeba36SHari Kumar Vemulathe ``-C <build path>`` option can be skipped as below:: 32*adbeba36SHari Kumar Vemula 33*adbeba36SHari Kumar Vemula $ meson test --suite DPDK:fast-tests 34*adbeba36SHari Kumar Vemula 35*adbeba36SHari Kumar VemulaThe project name is optional so the following is equivalent to the previous 36*adbeba36SHari Kumar Vemulacommand:: 37*adbeba36SHari Kumar Vemula 38*adbeba36SHari Kumar Vemula $ meson test --suite fast-tests 39*adbeba36SHari Kumar Vemula 40*adbeba36SHari Kumar VemulaThe meson command to list all available tests:: 41*adbeba36SHari Kumar Vemula 42*adbeba36SHari Kumar Vemula $ meson test --list 43*adbeba36SHari Kumar Vemula 44*adbeba36SHari Kumar VemulaTest cases are run serially by default for better stability. 45*adbeba36SHari Kumar Vemula 46*adbeba36SHari Kumar VemulaArguments of ``test()`` that can be provided in meson.build are as below: 47*adbeba36SHari Kumar Vemula 48*adbeba36SHari Kumar Vemula* ``is_parallel`` is used to run test case either in parallel or non-parallel mode. 49*adbeba36SHari Kumar Vemula* ``timeout`` is used to specify the timeout of test case. 50*adbeba36SHari Kumar Vemula* ``args`` is used to specify test specific parameters. 51*adbeba36SHari Kumar Vemula* ``env`` is used to specify test specific environment parameters. 52*adbeba36SHari Kumar Vemula 53*adbeba36SHari Kumar Vemula 54*adbeba36SHari Kumar VemulaDealing with skipped test cases 55*adbeba36SHari Kumar Vemula------------------------------- 56*adbeba36SHari Kumar Vemula 57*adbeba36SHari Kumar VemulaSome unit test cases have a dependency on external libraries, driver modules 58*adbeba36SHari Kumar Vemulaor config flags, without which the test cases cannot be run. Such test cases 59*adbeba36SHari Kumar Vemulawill be reported as skipped if they cannot run. To enable those test cases, 60*adbeba36SHari Kumar Vemulathe user should ensure the required dependencies are met. 61*adbeba36SHari Kumar VemulaBelow are a few possible causes why tests may be skipped: 62*adbeba36SHari Kumar Vemula 63*adbeba36SHari Kumar Vemula#. Optional external libraries are not found. 64*adbeba36SHari Kumar Vemula#. Config flags for the dependent library are not enabled. 65*adbeba36SHari Kumar Vemula#. Dependent driver modules are not installed on the system. 66*adbeba36SHari Kumar Vemula#. Not enough processing cores. Some tests are skipped on machines with 2 or 4 cores. 67