From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 0DD28288C for ; Fri, 25 Jan 2019 07:21:33 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jan 2019 22:21:32 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,520,1539673200"; d="scan'208";a="112532635" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by orsmga008.jf.intel.com with ESMTP; 24 Jan 2019 22:21:30 -0800 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 x0P6LT4F021592; Fri, 25 Jan 2019 06:21:30 GMT Received: from wgcvswdev001.ir.intel.com (localhost [127.0.0.1]) by wgcvswdev001.ir.intel.com with ESMTP id x0P6KtrC002359; Fri, 25 Jan 2019 06:20:55 GMT Received: (from hvemulax@localhost) by wgcvswdev001.ir.intel.com with œ id x0P6KtfU002355; Fri, 25 Jan 2019 06:20:55 GMT From: Hari Kumar Vemula To: dev@dpdk.org Cc: john.mcnamara@intel.com, reshma.pattan@intel.com, bruce.richardson@intel.com, marko.kovacevic@intel.com, jananeex.m.parthasarathy@intel.com, Hari Kumar Vemula Date: Fri, 25 Jan 2019 06:20:51 +0000 Message-Id: <1548397251-2053-1-git-send-email-hari.kumarx.vemula@intel.com> X-Mailer: git-send-email 1.7.0.7 In-Reply-To: <1548337316-29717-1-git-send-email-hari.kumarx.vemula@intel.com> References: <1548337316-29717-1-git-send-email-hari.kumarx.vemula@intel.com> Subject: [dpdk-dev] [PATCH v4] 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: , X-List-Received-Date: Fri, 25 Jan 2019 06:21:34 -0000 Add a programmer's guide section for meson ut Signed-off-by: Hari Kumar Vemula --- v4: Typos corrected v3: Modified v2: Removed enhancement details --- doc/guides/prog_guide/index.rst | 1 + doc/guides/prog_guide/meson_ut.rst | 159 +++++++++++++++++++++++++++++ 2 files changed, 160 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 6726b1e8d..f4274573f 100644 --- a/doc/guides/prog_guide/index.rst +++ b/doc/guides/prog_guide/index.rst @@ -58,6 +58,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..9485b1e63 --- /dev/null +++ b/doc/guides/prog_guide/meson_ut.rst @@ -0,0 +1,159 @@ +.. SPDX-License-Identifier: BSD-3-Clause + + Copyright(c) 2014-2018 Intel Corporation. + +.. _Meson: + +Meson_UT +======== + +The meson build for unit tests under different categories is supported using 'test/test/meson.build'. + +This document describes the below list in detail. + +* Building and Running the unit tests. +* Grouping of testcases. +* Parallel and non parallel tests. +* Test suites. +* How to run different test suites. +* Support for skipped tests. + + + +Building and Running the unit tests +----------------------------------- + +* Create the meson build output folder using command. + + ``$ meson `` + +* Enter into build output folder, which was created by above command. + + ``$ cd build`` + +* Compile DPDK using `$ ninja`. + The output file of the build will be available in meson build folder. + After successful ninja command, 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 command. + + ``$ meson test `` (or) ``$ ninja test `` + + + +Grouping of testcases +--------------------- + +Testcases has been grouped into below four different groups based on conditions +of time duration and performance of the individual testcase. + +* fast_parallel_test_names +* fast_non_parallel_test_names +* perf_test_names +* driver_test_names +* dump_test_names + +Parallel and non parallel tests +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +By default, meson will run test cases in parallel. However `is_parallel` argument +of `test()` in meson.build can be used to run tests in parallel or non-parallel +mode based on its functionality. Test cases marked with `is_parallel : true` will +run in parallel and tests marked with `is_parallel : false` will run in non-parallel. +While non-parallel test is running, no other test should run. +Parallel and non parallel test cases are grouped under the `fast_parallel_test_names` +and `fast_non_parallel_test_names`. + + + +Test suites +~~~~~~~~~~~ + +Tests are grouped into test suites in meson.build and these suite names can be provided +as argument to `meson test` as `--suite ‘project_name:label’`. + + Ex: ``$ meson test --suite ‘DPDK:fast-tests’`` + +Running different test suites +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Below are commands to run testcases using option `suite` + +* Test cases from the groups `fast_parallel_test_names` and `fast_non_parallel_test_names` + are run under 10seconds and below is the meson command to run them. + + ``$ meson test --suite DPDK:fast-tests`` + +* Test cases from the group `perf_test_names` are run under 600 seconds + and below is the meson command to run them. + + ``$ meson test --suite DPDK:perf-tests`` + +* Test cases from the group `driver_test_names` are run under 600 seconds + and below is the meson command to run them. + + ``$ meson test --suite DPDK:driver-tests`` + +* Test cases from the group `dump_test_names` are run under 600 seconds + and below is the meson command to run them. + + ``$ meson test --suite DPDK:dump-tests`` + + + +Skipped testcases +----------------- + +Some unit test cases have dependency on external libraries, driver modules or +config flags, without which the test cases cannot be run. Such test cases +should return TEST_SKIPPED when mentioned dependencies are not enabled. To make +test cases run user should enable relevant dependencies. Below are the few +current scenarios when test cases are skipped: + +#. External library dependency paths are not set. +#. Config flag for the dependent library is not enabled. +#. Dependent driver modules are not installed on the system. + +Dependent library paths can be set using below + +* Single path ``$ export LIBRARY_PATH=path`` + +* Multiple paths ``$ export LIBRARY_PATH=path1:path2:path3`` + +Dependent library headers path can be stated as part of meson build command as below. + +* Single path ``$ CFLAGS=-I/path meson build`` + +* Multiple paths ``$ CFLAGS=-I/path1 -I/path2 meson build`` + +Below examples shows how to export libraries and their header paths. + +To specify 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=/root/wireless_libs/zuc/:/root/wireless_libs/`` \ + ``libsso_kasumi/build/`` + ``$ CFLAGS=-I/root/wireless_libs/zuc/include -I/root/wireless_libs/`` \ + ``libsso_kasumi/include meson build`` + + + +Summery of Commands to run meson UTs +------------------------------------ + +* To run all test cases + ``$ meson test`` +* To run specific test + ``$ meson test testcase_name`` + Ex:``$ meson test acl_autotest`` +* To run specific test suite + ``$ meson test --suite DPDK:suite_name`` + Ex:``$ meson test --suite DPDK:fast-tests`` -- 2.17.2