From patchwork Thu Jun 6 11:59:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hari Kumar Vemula X-Patchwork-Id: 54497 X-Patchwork-Delegate: thomas@monjalon.net 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 5316B1B9B3; Thu, 6 Jun 2019 14:01:03 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 545E91B9B2 for ; Thu, 6 Jun 2019 14:01:01 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Jun 2019 05:01:00 -0700 X-ExtLoop1: 1 Received: from irvmail001.ir.intel.com ([163.33.26.43]) by FMSMGA003.fm.intel.com with ESMTP; 06 Jun 2019 05:00:59 -0700 Received: from wgcvswdev001.ir.intel.com (wgcvswdev001.ir.intel.com [10.102.246.100]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id x56C0w3w003641; Thu, 6 Jun 2019 13:00:58 +0100 Received: from wgcvswdev001.ir.intel.com (localhost [127.0.0.1]) by wgcvswdev001.ir.intel.com with ESMTP id x56C0Yid021922; Thu, 6 Jun 2019 13:00:34 +0100 Received: (from jmparthx@localhost) by wgcvswdev001.ir.intel.com with ? id x56C0YXN021918; Thu, 6 Jun 2019 13:00:34 +0100 From: Hari Kumar Vemula To: dev@dpdk.org Cc: reshma.pattan@intel.com, john.mcnamara@intel.com, marko.kovacevic@intel.com, jananeex.m.parthasarathy@intel.com, Hari Kumar Vemula Date: Thu, 6 Jun 2019 12:59:45 +0100 Message-Id: <1559822385-21684-1-git-send-email-hari.kumarx.vemula@intel.com> X-Mailer: git-send-email 1.7.12.2 In-Reply-To: <1549103306-9644-1-git-send-email-hari.kumarx.vemula@intel.com> References: <1549103306-9644-1-git-send-email-hari.kumarx.vemula@intel.com> Subject: [dpdk-dev] [PATCH v6] doc: add meson ut info in prog guide 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" Add a programmer's guide section for meson ut Signed-off-by: Hari Kumar Vemula Acked-by: Bruce Richardson --- v6: Updated comments v5: Modified v4: Typos corrected v3: Modified v2: Removed enhancement details --- doc/guides/prog_guide/index.rst | 1 + doc/guides/prog_guide/meson_ut.rst | 151 +++++++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 doc/guides/prog_guide/meson_ut.rst diff --git a/doc/guides/prog_guide/index.rst b/doc/guides/prog_guide/index.rst index 692409af8..9465bc8e6 100644 --- a/doc/guides/prog_guide/index.rst +++ b/doc/guides/prog_guide/index.rst @@ -60,6 +60,7 @@ Programmer's Guide source_org dev_kit_build_system dev_kit_root_make_help + 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 000000000..e0aa15389 --- /dev/null +++ b/doc/guides/prog_guide/meson_ut.rst @@ -0,0 +1,151 @@ +.. SPDX-License-Identifier: BSD-3-Clause + + Copyright(c) 2018-2019 Intel Corporation. + +.. _meson_unit_tests: + +Running DPDK Unit Tests with Meson +================================== + +This section describes how to run testcases with the DPDK meson build system. + + +Building and running the unit tests +----------------------------------- + +* Create the meson build output folder using the following command:: + + $ meson + +* Enter into build output folder, which was created by above command:: + + $ cd build + +* Compile DPDK using command:: + + $ ninja + +The output file of the build will be available in meson build folder. After +a successful ninja command, the binary ``dpdk-test`` is created in +``build/test/test/``. + +* Run the unit testcases:: + + $ ninja test + # or + $ meson test + +* To run specific test case via meson:: + + $ meson test + # or + $ ninja test + + +Grouping of testcases +--------------------- + +Testcases have been grouped into four different groups based on conditions +of time duration and performance of the individual testcase. + +* Fast tests which can be run in parallel. +* Fast tests which must run serially. +* Performance tests. +* Driver tests. +* Tests which produce lists of objects as output, and therefore that need + manual checking. + +Testcases can be run in parallel or non-parallel mode using the ``is_parallel`` argument +of ``test()`` in meson.build + +These tests can be run using the argument to ``meson test`` as +``--suite project_name:label``. + +For example:: + + $ 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 + + +Running different test suites +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following commands are some examples of how to run testcases using option +``--suite``: + +* Fast Tests should take less than 10 seconds. The meson command to run them + is:: + + $ meson test --suite DPDK:fast-tests + +* Performance Tests should take less than 600 seconds. The meson command to + run them is:: + + $ meson test --suite DPDK:perf-tests + +* Driver Tests should take less than 600 seconds. The meson command to run + them is:: + + $ meson test --suite DPDK:driver-tests + +* The meson command to run Dump Tests is:: + + $ meson test --suite DPDK:dump-tests + + +Dealing with skipped testcases +------------------------------ + +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 and how they may be resolved: + +#. Optional external libraries are not found. +#. Config flags for the dependent library are not enabled. +#. Dependent driver modules are not installed on the system. + +To help find missing libraries, the user can specify addition search paths +for those libraries as below: + +* Single path:: + + $ export LIBRARY_PATH=path + +* Multiple paths:: + + $ export LIBRARY_PATH=path1:path2:path3 + +Some functionality may be disabled due to library headers being missed as part +of the build. To specify an additional search path for headers at +configuration time, use one of the commands below: + +* Single path:: + + $ CFLAGS=-I/path meson build + +* Multiple paths:: + + $ CFLAGS=-I/path1 -I/path2 meson build + +Below are some examples that show how to export libraries and their header +paths. + +To specify a single library at a time:: + + $ export LIBRARY_PATH=/root/wireless_libs/zuc/ + $ CFLAGS=-I/root/wireless_libs/zuc/include meson build + +To specify multiple libraries at a time:: + + $ export LIBRARY_PATH=/path/zuc/:/path/libsso_kasumi/build/ + $ CFLAGS=-I/path/zuc/include \ + -I/path/libsso_kasumi/include \ + meson build