From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 668C7C1EE for ; Wed, 6 Jun 2018 07:36:17 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Jun 2018 22:36:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,482,1520924400"; d="scan'208";a="235032588" Received: from shecgisg006.sh.intel.com ([10.239.39.68]) by fmsmga006.fm.intel.com with ESMTP; 05 Jun 2018 22:36:15 -0700 Received: from shecgisg006.sh.intel.com (localhost [127.0.0.1]) by shecgisg006.sh.intel.com with ESMTP id w565aEpn024980; Wed, 6 Jun 2018 13:36:14 +0800 Received: (from yufengmx@localhost) by shecgisg006.sh.intel.com with œ id w565aEXw024976; Wed, 6 Jun 2018 13:36:14 +0800 From: yufengx.mo@intel.com To: dts@dpdk.org Cc: yufengmx Date: Wed, 6 Jun 2018 13:36:13 +0800 Message-Id: <1528263374-24799-2-git-send-email-yufengx.mo@intel.com> X-Mailer: git-send-email 1.7.0.7 In-Reply-To: <1528263374-24799-1-git-send-email-yufengx.mo@intel.com> References: <1528263374-24799-1-git-send-email-yufengx.mo@intel.com> Subject: [dts] [PATCH V1 1/2] meson_build_system: upload test plan X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Jun 2018 05:36:17 -0000 From: yufengmx This test plan is for meson build system feature. meson and ninja tools are used to compile and install DPDK. It is aimed at taking the place of direct using make (GNU make) to get more convenience and efficiency for compilation. Signed-off-by: yufengmx --- test_plans/meson_build_system_test_plan.rst | 247 ++++++++++++++++++++++++++++ 1 file changed, 247 insertions(+) create mode 100644 test_plans/meson_build_system_test_plan.rst diff --git a/test_plans/meson_build_system_test_plan.rst b/test_plans/meson_build_system_test_plan.rst new file mode 100644 index 0000000..ac24080 --- /dev/null +++ b/test_plans/meson_build_system_test_plan.rst @@ -0,0 +1,247 @@ +.. Copyright (c) <2018>, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + - Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + +================== +meson build system +================== + +``meson`` and ``ninja`` tools are used to compile and install DPDK. It is aimed +at taking the place of direct using ``make`` (GNU make) to get more convenience +and efficiency for compilation. + +note: DPDK technical document refer to ``doc\build-sdk-meson.txt`` + +Prerequisites +------------- +meson tool version should be 0.42.0 or latest one, which is recommended by +dpdk org(dpdk/INSTALL.meson). + +meson/ninja installation steps:: +*. method one(fedora 25) + dnf install meson + +*. method two(for old version os, etc fedora 22, too load version may not support +meson/ninja build) +1. download meson tool + git clone https://github.com/mesonbuild/meson.git + git tag + git checkout 0.42.0 (or latest one, recommended by dpdk org) + ln -s /meson.py /usr/bin/meson + +2. download ninja tool + git clone https://github.com/ninja-build/ninja.git + cd ninja + git checkout release + # execute this comand to generate ninja file + ./configure.py --bootstrap + ninja + # copy ninja file to your platform default bin files directory + cp ninja /usr/bin + +HW configuration +---------------- +2xNICs (2 full duplex optical ports per NIC) +igb: powerville(I350) +ixgbe: niantic(82599ES 10-Gigabit SFI/SFP+ Network Connection) +i40e: fortville_spirit(Ethernet Controller XL710 for 40GbE QSFP+) + +Test cases +---------- +These test cases will run on target + x86_64-native-linuxapp-gcc + +Test Case 1: check common build +================================ + +steps: + +*. compile dpdk source code with meson + + meson + +*. once done, meson writes a ``build.ninja`` file in the build directory to be + used to do the build itself when ninja is called. + + cd + ninja + set DEST_DIR= + ninja install + +*. check the installed layout will be the following + + headers -> /include + libraries -> /lib64 + drivers -> /lib64/dpdk/drivers + libdpdk.pc -> /lib64/pkgconfig + +*. bind igb_uio to check if it can work + ./usertools/dpdk-devbind.py --bind=igb_uio 0000:xx:00.x 0000:xx:00.x + +*. run testpmd to check if it can work + ./testpmd + testpmd > start + testpmd > stop + testpmd > quit + +Test Case 2: check meson configure +=================================== +check ``meson configure`` work action + +steps: + +*. run ``meson configure`` to get DPDK-specific available options check + expexcted build options are in meson options + + meson configure + +*. using ``meson configure`` to change the build options within + this directory and rerun ninja again. Then check build result as test + case 1's steps + + meson configure -D