test suite reviews and discussions
 help / color / mirror / Atom feed
* [dts] [PATCH V1 0/7] meson build reference
@ 2020-07-07  2:44 lihong
  2020-07-07  2:44 ` [dts] [PATCH V1 1/7] executions: add build_type field in all executions cfg lihong
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: lihong @ 2020-07-07  2:44 UTC (permalink / raw)
  To: dts; +Cc: zhaoyan.chen, lihong


lihong (7):
  executions: add build_type field in all executions cfg
  conf: add configuration file of app_name.cfg
  framework/config: get configuration information from app_name.cfg
  framework: read and save the build_type from execution.cfg
  framework: add meson build method and get apps name of current build
    type
  framework/pmd_output: replace the hard code app path with the
    configured app path
  tests: replace the hard code app path with the configured app path

 conf/app_name.cfg                         | 119 +++++++++++++++++++++++++++
 executions/execution.cfg                  |   2 +
 executions/execution_FVL.cfg              |   2 +
 executions/execution_fm10k.cfg            |   2 +
 executions/execution_rxmode.cfg           |   3 +
 executions/execution_smoke.cfg            |   1 +
 framework/config.py                       |  29 +++++++
 framework/dts.py                          |   7 ++
 framework/dut.py                          |   8 +-
 framework/pmd_output.py                   |   3 +-
 framework/project_dpdk.py                 | 128 ++++++++++++++++++++++++++++--
 framework/settings.py                     |   1 +
 tests/TestSuite_multiprocess.py           |  53 ++++++++-----
 tests/TestSuite_vhost_multi_queue_qemu.py |  14 ++--
 14 files changed, 335 insertions(+), 37 deletions(-)
 create mode 100644 conf/app_name.cfg

-- 
2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dts] [PATCH V1 1/7] executions: add build_type field in all executions cfg
  2020-07-07  2:44 [dts] [PATCH V1 0/7] meson build reference lihong
@ 2020-07-07  2:44 ` lihong
  2020-07-07  2:44 ` [dts] [PATCH V1 2/7] conf: add configuration file of app_name.cfg lihong
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: lihong @ 2020-07-07  2:44 UTC (permalink / raw)
  To: dts; +Cc: zhaoyan.chen, lihong

Signed-off-by: lihong <lihongx.ma@intel.com>
---
 executions/execution.cfg        | 2 ++
 executions/execution_FVL.cfg    | 2 ++
 executions/execution_fm10k.cfg  | 2 ++
 executions/execution_rxmode.cfg | 3 +++
 executions/execution_smoke.cfg  | 1 +
 5 files changed, 10 insertions(+)

diff --git a/executions/execution.cfg b/executions/execution.cfg
index 0683d74..0a1ac3c 100644
--- a/executions/execution.cfg
+++ b/executions/execution.cfg
@@ -1,6 +1,7 @@
 [Execution1]
 crbs=<CRB IP Address>
 drivername=<driver name igb_uio or vfio-pci or mlx5_core or uio_pci_generic>
+build_type=<makefile or meson>
 test_suites=
     cmdline,
     hello_world,
@@ -35,6 +36,7 @@ parameters=nic_type=cfg:func=true
 [Execution2]
 crbs=<Performance CRB IP Address>
 drivername=<driver name igb_uio or vfio-pci>
+build_type=<makefile or meson>
 test_suites=
     l2fwd,
     l3fwd,
diff --git a/executions/execution_FVL.cfg b/executions/execution_FVL.cfg
index d5e6cfb..84c1649 100644
--- a/executions/execution_FVL.cfg
+++ b/executions/execution_FVL.cfg
@@ -1,6 +1,7 @@
 [Execution1]
 crbs=<CRB IP Address>
 drivername=<driver name igb_uio or vfio-pci or mlx5_core or uio_pci_generic>
+build_type=<makefile or meson>
 test_suites=
     checksum_offload,
     dynamic_config,
@@ -36,6 +37,7 @@ parameters=nic_type=cfg:func=true
 [Execution2]
 crbs=<Performance CRB IP Address>
 drivername=<driver name igb_uio or vfio-pci>
+build_type=<makefile or meson>
 test_suites=
     l2fwd,
     l3fwd,
diff --git a/executions/execution_fm10k.cfg b/executions/execution_fm10k.cfg
index 971e4a4..dbd2b96 100644
--- a/executions/execution_fm10k.cfg
+++ b/executions/execution_fm10k.cfg
@@ -1,6 +1,7 @@
 [Execution1]
 crbs=<CRB IP Address>
 drivername=<driver name igb_uio or vfio-pci or uio_pci_generic>
+build_type=<makefile or meson>
 test_suites=
     checksum_offload,
     vlan,
@@ -19,6 +20,7 @@ parameters=nic_type=cfg:func=true
 [Execution2]
 crbs=<Performance CRB IP Address>
 drivername=<driver name igb_uio or vfio-pci>
+build_type=<makefile or meson>
 test_suites=
     l3fwd,
 targets=
diff --git a/executions/execution_rxmode.cfg b/executions/execution_rxmode.cfg
index cf46dbf..e1bf981 100644
--- a/executions/execution_rxmode.cfg
+++ b/executions/execution_rxmode.cfg
@@ -2,6 +2,7 @@
 crbs=<CRB IP Address>
 drivername=igb_uio
 rx_mode=scalar
+build_type=<makefile or meson>
 test_suites=
     fdir,
     jumboframes,
@@ -23,6 +24,7 @@ parameters=nic_type=cfg:func=true
 crbs=<CRB IP Address>
 drivername=igb_uio
 rx_mode=full
+build_type=<makefile or meson>
 test_suites=
     fdir,
     jumboframes,
@@ -44,6 +46,7 @@ parameters=nic_type=cfg:func=true
 crbs=<CRB IP Address>
 drivername=igb_uio
 rx_mode=vector
+build_type=<makefile or meson>
 test_suites=
     fdir,
     jumboframes,
diff --git a/executions/execution_smoke.cfg b/executions/execution_smoke.cfg
index f069365..ea5bd3f 100644
--- a/executions/execution_smoke.cfg
+++ b/executions/execution_smoke.cfg
@@ -1,6 +1,7 @@
 [Execution1]
 crbs=<CRB IP Address>
 drivername=<driver name igb_uio or vfio-pci or mlx5_core or uio_pci_generic>
+build_type=<makefile or meson>
 test_suites=
     unit_tests_cmdline,
     unit_tests_eal,
-- 
2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dts] [PATCH V1 2/7] conf: add configuration file of app_name.cfg
  2020-07-07  2:44 [dts] [PATCH V1 0/7] meson build reference lihong
  2020-07-07  2:44 ` [dts] [PATCH V1 1/7] executions: add build_type field in all executions cfg lihong
@ 2020-07-07  2:44 ` lihong
  2020-07-07  2:44 ` [dts] [PATCH V1 3/7] framework/config: get configuration information from app_name.cfg lihong
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: lihong @ 2020-07-07  2:44 UTC (permalink / raw)
  To: dts; +Cc: zhaoyan.chen, lihong

Signed-off-by: lihong <lihongx.ma@intel.com>
---
 conf/app_name.cfg | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 119 insertions(+)
 create mode 100644 conf/app_name.cfg

diff --git a/conf/app_name.cfg b/conf/app_name.cfg
new file mode 100644
index 0000000..928b2db
--- /dev/null
+++ b/conf/app_name.cfg
@@ -0,0 +1,119 @@
+# app path configuration
+# [meson/makefile] : the build type
+# app_name=app_path #about the app_path, you can use 'target' instead of build target in the path
+# eg: if the testpmd app_path is: x86_64-native-linuxapp-gcc/app/testpmd,
+#     you can use string 'target' instead of 'x86_64-native-linuxapp-gcc'
+# test-pmd=target/app/testpmd
+[meson]
+pdump=target/app/dpdk-pdump
+proc-info=target/app/dpdk-proc-info
+test=target/app/test/dpdk-test
+test-acl=target/app/dpdk-test-acl
+test-bbdev=target/app/dpdk-test-bbdev
+test-cmdline=target/app/dpdk-test-cmdline
+test-compress-perf=target/app/dpdk-test-compress-perf
+test-crypto-perf=target/app/dpdk-test-crypto-perf
+test-eventdev=target/app/dpdk-test-eventdev
+test-fib=target/app/dpdk-test-fib
+test-pipeline=target/app/dpdk-test-pipeline
+test-pmd=target/app/dpdk-testpmd
+test-sad=target/app/dpdk-test-sad
+ethtool=target/examples/dpdk-ethtool
+eventdev_pipeline=target/examples/dpdk-eventdev_pipeline
+fips_validation=target/examples/dpdk-fips_validation
+flow_classify=target/examples/dpdk-flow_classify
+flow_filtering=target/examples/dpdk-flow_filtering
+helloworld=target/examples/dpdk-helloworld
+ioat=target/examples/dpdk-ioat
+ip_fragmentation=target/examples/dpdk-ip_fragmentation
+ip_pipeline=target/examples/dpdk-ip_pipeline
+ip_reassembly=target/examples/dpdk-ip_reassembly
+ipsec-secgw=target/examples/dpdk-ipsec-secgw
+ipv4_multicast=target/examples/dpdk-ipv4_multicast
+kni=target/examples/dpdk-kni
+l2fwd=target/examples/dpdk-l2fwd
+l2fwd-crypto=target/examples/dpdk-l2fwd-crypto
+l2fwd-event=target/examples/dpdk-l2fwd-event
+l2fwd-jobstats=target/examples/dpdk-l2fwd-jobstats
+l2fwd-keepalive=target/examples/dpdk-l2fwd-keepalive
+l3fwd=target/examples/dpdk-l3fwd
+l3fwd-acl=target/examples/dpdk-l3fwd-acl
+l3fwd-power=target/examples/dpdk-l3fwd-power
+link_status_interrupt=target/examples/dpdk-link_status_interrupt
+ntb=target/examples/dpdk-ntb
+packet_ordering=target/examples/dpdk-packet_ordering
+ptpclient=target/examples/dpdk-ptpclient
+qos_meter=target/examples/dpdk-qos_meter
+qos_sched=target/examples/dpdk-qos_sched
+rxtx_callbacks=target/examples/dpdk-rxtx_callbacks
+service_cores=target/examples/dpdk-service_cores
+skeleton=target/examples/dpdk-skeleton
+tep_termination=target/examples/dpdk-tep_termination
+timer=target/examples/dpdk-timer
+vdpa=target/examples/dpdk-vdpa
+vhost=target/examples/dpdk-vhost
+vhost_blk=target/examples/dpdk-vhost_blk
+vhost_crypto=target/examples/dpdk-vhost_crypto
+vmdq=target/examples/dpdk-vmdq
+vmdq_dcb=target/examples/dpdk-vmdq_dcb
+mp_client=target/examples/dpdk-mp_client
+hotplug_mp=target/examples/dpdk-hotplug_mp
+mp_server=target/examples/dpdk-mp_server
+simple_mp=target/examples/dpdk-simple_mp
+symmetric_mp=target/examples/dpdk-symmetric_mp
+[makefile]
+pdump=target/app/dpdk-pdump
+proc-info=target/app/dpdk-procinfo
+test=target/app/test
+test-acl=target/app/testacl
+test-bbdev=target/app/testbbdev
+test-cmdline=target/app/cmdline_test
+test-compress-perf=target/app/dpdk-test-compress-perf
+test-crypto-perf=target/app/dpdk-test-crypto-perf
+test-eventdev=target/app/dpdk-test-eventdev
+test-pipeline=target/app/testpipeline
+test-pmd=target/app/testpmd
+test-sad=target/app/testsad
+ethtool=examples/ethtool/ethtool-app/target/ethtool
+eventdev_pipeline=examples/build/app/eventdev_pipeline
+fips_validation=examples/build/app/fips_validation
+flow_classify=examples/build/app/flow_classify
+flow_filtering=examples/build/app/flow
+helloworld=examples/build/app/helloworld
+ioat=examples/build/app/ioatfwd
+ip_fragmentation=examples/build/app/ip_fragmentation
+ip_pipeline=examples/build/app/ip_pipeline
+ip_reassembly=examples/build/app/ip_reassembly
+ipsec-secgw=examples/build/app/ipsec-secgw
+ipv4_multicast=examples/build/app/ipv4_multicast
+kni=examples/build/app/kni
+l2fwd=examples/build/app/l2fwd
+l2fwd-crypto=examples/build/app/l2fwd-crypto
+l2fwd-event=examples/build/app/l2fwd-event
+l2fwd-jobstats=examples/build/app/l2fwd-jobstats
+l2fwd-keepalive=examples/build/app/l2fwd-keepalive
+l3fwd=examples/build/app/l3fwd
+l3fwd-acl=examples/build/app/l3fwd-acl
+l3fwd-power=examples/build/app/l3fwd-power
+link_status_interrupt=examples/build/app/link_status_interrupt
+ntb=examples/build/app/ntb_fwd
+packet_ordering=examples/build/app/packet_ordering
+ptpclient=examples/build/app/ptpclient
+qos_meter=examples/build/app/qos_meter
+qos_sched=examples/build/app/qos_sched
+rxtx_callbacks=examples/build/app/rxtx_callbacks
+service_cores==examples/build/app/service_cores
+skeleton=examples/build/app/basicfwd
+tep_termination=examples/build/app/tep_termination
+timer=examples/build/app/timer
+vdpa=examples/build/app/vdpa
+vhost=examples/build/app/vhost-switch
+vhost_blk=examples/build/app/vhost-blk
+vhost_crypto=examples/build/app/vhost-crypto
+vmdq=examples/build/app/vmdq_app
+vmdq_dcb=examples/build/app/vmdq_dcb_app
+mp_client=examples/multi_process/client_server_mp/mp_client/target/app/mp_client
+hotplug_mp=examples/multi_process/hotplug_mp/target/app/hotplug_mp
+mp_server=examples/multi_process/client_server_mp/mp_client/target/app/mp_server
+simple_mp/=examples/multi_process/simple_mp/target/app/simple_mp/
+symmetric_mp=examples/multi_process/symmetric_mp/target/app/symmetric_mp
-- 
2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dts] [PATCH V1 3/7] framework/config: get configuration information from app_name.cfg
  2020-07-07  2:44 [dts] [PATCH V1 0/7] meson build reference lihong
  2020-07-07  2:44 ` [dts] [PATCH V1 1/7] executions: add build_type field in all executions cfg lihong
  2020-07-07  2:44 ` [dts] [PATCH V1 2/7] conf: add configuration file of app_name.cfg lihong
@ 2020-07-07  2:44 ` lihong
  2020-07-07  2:45 ` [dts] [PATCH V1 4/7] framework: read and save the build_type from execution.cfg lihong
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: lihong @ 2020-07-07  2:44 UTC (permalink / raw)
  To: dts; +Cc: zhaoyan.chen, lihong

Signed-off-by: lihong <lihongx.ma@intel.com>
---
 framework/config.py | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/framework/config.py b/framework/config.py
index 4dc3f31..dd3bf30 100644
--- a/framework/config.py
+++ b/framework/config.py
@@ -48,6 +48,7 @@ IXIACONF = "%s/ixia.cfg" % CONFIG_ROOT_PATH
 PKTGENCONF = "%s/pktgen.cfg" % CONFIG_ROOT_PATH
 SUITECONF_SAMPLE = "%s/suite_sample.cfg" % CONFIG_ROOT_PATH
 GLOBALCONF = "%s/global_suite.cfg" % CONFIG_ROOT_PATH
+APPNAMECONF = "%s/app_name.cfg" % CONFIG_ROOT_PATH
 
 
 class UserConf():
@@ -471,6 +472,34 @@ class PktgenConf(UserConf):
 
         return self.pktgen_cfg
 
+class AppNameConf(UserConf):
+    def __init__(self, app_name_conf=APPNAMECONF):
+        self.config_file = app_name_conf
+        self.app_name_cfg = {}
+        try:
+            self.app_name_conf = UserConf(self.config_file)
+        except ConfigParseException:
+            self.app_name_conf = None
+            raise ConfigParseException
+
+    def load_app_name_conf(self):
+        sections = self.app_name_conf.get_sections()
+        if not sections:
+            return self.app_name_cfg
+
+        for build_type in sections:
+            cur_name_cfg = self.app_name_conf.load_section(build_type)
+            if not cur_name_cfg:
+                continue
+
+            name_cfg = {}
+            for cfg in cur_name_cfg:
+                key, value = cfg
+                name_cfg[key] = value
+
+            self.app_name_cfg[build_type.lower()]=name_cfg
+
+        return self.app_name_cfg
 
 if __name__ == '__main__':
     parser = argparse.ArgumentParser(
-- 
2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dts] [PATCH V1 4/7] framework: read and save the build_type from execution.cfg
  2020-07-07  2:44 [dts] [PATCH V1 0/7] meson build reference lihong
                   ` (2 preceding siblings ...)
  2020-07-07  2:44 ` [dts] [PATCH V1 3/7] framework/config: get configuration information from app_name.cfg lihong
@ 2020-07-07  2:45 ` lihong
  2020-07-07  2:45 ` [dts] [PATCH V1 5/7] framework: add meson build method and get apps name of current build type lihong
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: lihong @ 2020-07-07  2:45 UTC (permalink / raw)
  To: dts; +Cc: zhaoyan.chen, lihong

Signed-off-by: lihong <lihongx.ma@intel.com>
---
 framework/dts.py      | 7 +++++++
 framework/settings.py | 1 +
 2 files changed, 8 insertions(+)

diff --git a/framework/dts.py b/framework/dts.py
index d6c4fe5..2c0c86a 100644
--- a/framework/dts.py
+++ b/framework/dts.py
@@ -88,6 +88,13 @@ def dts_parse_param(config, section):
 
     parameters = config.get(section, 'parameters').split(':')
     drivername = config.get(section, 'drivername').split('=')[-1]
+    # get the build method, default is makefile
+    try:
+        buildtype = config.get(section, 'build_type').split('=')[-1]
+    except:
+        buildtype = 'makefile'
+    buildtype = buildtype.lower()
+    settings.save_global_setting(settings.HOST_BUILD_TYPE_SETTING, buildtype)
 
     driver = drivername.split(':')
     if len(driver) == 2:
diff --git a/framework/settings.py b/framework/settings.py
index bb23077..f91452d 100644
--- a/framework/settings.py
+++ b/framework/settings.py
@@ -249,6 +249,7 @@ PERF_SETTING = "DTS_PERF_ONLY"
 FUNC_SETTING = "DTS_FUNC_ONLY"
 HOST_DRIVER_SETTING = "DTS_HOST_DRIVER"
 HOST_DRIVER_MODE_SETTING = "DTS_HOST_DRIVER_MODE"
+HOST_BUILD_TYPE_SETTING = "DTS_HOST_BUILD_TYPE"
 HOST_NIC_SETTING = "DTS_HOST_NIC"
 HOST_SHARED_LIB_SETTING = "DTS_HOST_SHARED_LIB"
 HOST_SHARED_LIB_PATH = "DTS_HOST_SHARED_LIB_PATH"
-- 
2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dts] [PATCH V1 5/7] framework: add meson build method and get apps name of current build type
  2020-07-07  2:44 [dts] [PATCH V1 0/7] meson build reference lihong
                   ` (3 preceding siblings ...)
  2020-07-07  2:45 ` [dts] [PATCH V1 4/7] framework: read and save the build_type from execution.cfg lihong
@ 2020-07-07  2:45 ` lihong
  2020-07-07  2:45 ` [dts] [PATCH V1 6/7] framework/pmd_output: replace the hard code app path with the configured app path lihong
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: lihong @ 2020-07-07  2:45 UTC (permalink / raw)
  To: dts; +Cc: zhaoyan.chen, lihong

Signed-off-by: lihong <lihongx.ma@intel.com>
---
 framework/dut.py          |   8 ++-
 framework/project_dpdk.py | 128 +++++++++++++++++++++++++++++++++++++++++++---
 2 files changed, 127 insertions(+), 9 deletions(-)

diff --git a/framework/dut.py b/framework/dut.py
index 2545621..bef0d15 100644
--- a/framework/dut.py
+++ b/framework/dut.py
@@ -33,7 +33,7 @@ import os
 import re
 import time
 import settings
-from config import PortConf
+from config import PortConf,AppNameConf
 from settings import NICS, LOG_NAME_SEP
 from ssh_connection import SSHConnection
 from crb import Crb
@@ -78,6 +78,8 @@ class Dut(Crb):
         self.prefix_subfix = str(os.getpid()) + '_' + time.strftime("%Y%m%d%H%M%S", time.localtime())
         self.prefix_list = []
         self.hugepage_path = None
+        self.apps_name_conf = {}
+        self.apps_name = {}
 
     def filter_cores_from_crb_cfg(self):
         # get core list from crbs.cfg
@@ -388,6 +390,10 @@ class Dut(Crb):
         # initialize virtualization resource pool
         self.virt_pool = VirtResource(self)
 
+        # load app name conf
+        name_cfg = AppNameConf()
+        self.apps_name_conf = name_cfg.load_app_name_conf()
+
     def restore_interfaces(self):
         """
         Restore all ports's interfaces.
diff --git a/framework/project_dpdk.py b/framework/project_dpdk.py
index c0dfd59..040d070 100644
--- a/framework/project_dpdk.py
+++ b/framework/project_dpdk.py
@@ -33,7 +33,7 @@ import os
 import re
 
 from settings import NICS, load_global_setting, accepted_nic
-from settings import DPDK_RXMODE_SETTING, HOST_DRIVER_SETTING, HOST_DRIVER_MODE_SETTING
+from settings import DPDK_RXMODE_SETTING, HOST_DRIVER_SETTING, HOST_DRIVER_MODE_SETTING, HOST_BUILD_TYPE_SETTING
 from settings import HOST_SHARED_LIB_SETTING, HOST_SHARED_LIB_PATH
 from ssh_connection import SSHConnection
 from crb import Crb
@@ -73,6 +73,16 @@ class DPDKdut(Dut):
 
         self.set_driver_specific_configurations(drivername)
 
+        # get apps name of current build type
+        build_type = load_global_setting(HOST_BUILD_TYPE_SETTING)
+        if build_type not in self.apps_name_conf:
+            raise Exception('please config the apps name in app_name.cfg of build type:%s' % build_type)
+        self.apps_name = self.apps_name_conf[build_type]
+        # use the dut target directory instead of 'target' string in app name
+        for app in self.apps_name:
+            cur_app_path = self.apps_name[app].replace('target', self.target)
+            self.apps_name[app] = cur_app_path + ' '
+
         if not self.skip_setup:
             self.build_install_dpdk(target)
 
@@ -214,10 +224,58 @@ class DPDKdut(Dut):
                              "config/common_base", '#')
         self.send_expect("sed -i 's/CONFIG_RTE_EAL_IGB_UIO=n/CONFIG_RTE_EAL_IGB_UIO=y/g' "
                         "config/common_base", '#')
-        build_install_dpdk = getattr(self, 'build_install_dpdk_%s' % self.get_os_type())
+        build_type = load_global_setting(HOST_BUILD_TYPE_SETTING)
+        build_install_dpdk = getattr(self, 'build_install_dpdk_%s_%s' % (self.get_os_type(), build_type))
         build_install_dpdk(target, extra_options)
 
-    def build_install_dpdk_linux(self, target, extra_options):
+    def build_install_dpdk_linux_meson(self, target, extra_options):
+        """
+        Build DPDK source code on linux use meson
+        """
+        build_time = 900
+        target_info = target.split('-')
+        arch = target_info[0]
+        machine = target_info[1]
+        execenv = target_info[2]
+        toolchain = target_info[3]
+
+        default_library = 'static'
+        use_shared_lib = load_global_setting(HOST_SHARED_LIB_SETTING)
+        if use_shared_lib == 'true' and 'Virt' not in str(self):
+            default_library = 'shared'
+        if arch == 'i686':
+            # find the pkg-config path and set the PKG_CONFIG_LIBDIR environmental variable to point it
+            out = self.send_expect("find /usr -type d -name pkgconfig", "# ")
+            pkg_path = ''
+            default_cflags = self.send_expect("echo $CFLAGS", "# ")
+            default_pkg_config = self.send_expect("echo $PKG_CONFIG_LIBDIR", "# ")
+            res_path = out.split('\r\n')
+            for cur_path in res_path:
+                if 'i386' in cur_path:
+                    pkg_path = cur_path
+                    break
+            assert(pkg_path is not ''), "please make sure you env have the i386 pkg-config path"
+
+            self.send_expect("export CFLAGS=-m32", "# ")
+            self.send_expect("export PKG_CONFIG_LIBDIR=%s" % pkg_path, "# ")
+
+        self.send_expect("rm -rf " + target, "#")
+        out = self.send_expect("CC=%s meson --werror -Denable_kmods=True -Dlibdir=lib --default-library=%s %s" % (
+                        toolchain, default_library, target), "# ", build_time)
+        assert ("Error" not in out), "meson setup failed ..."
+
+        out = self.send_expect("ninja -C %s -j %d" % (target, self.number_of_cores), "# ", build_time)
+        assert ("Error" not in out), "ninja complie failed ..."
+
+        # copy kmod file to the folder same as make
+        out = self.send_expect("find ./%s/kernel/ -name *.ko" % target, "# ", verify=True)
+        self.send_expect("mkdir -p %s/kmod" % target, "# ")
+        if not isinstance(out, int) and len(out) > 0:
+            kmod = out.split('\r\n')
+            for mod in kmod:
+                self.send_expect("cp %s %s/kmod/" % (mod, target), "# ")
+
+    def build_install_dpdk_linux_makefile(self, target, extra_options):
         """
         Build DPDK source code on linux with specified target.
         """
@@ -241,7 +299,11 @@ class DPDKdut(Dut):
         assert ("Error" not in out), "Compilation error..."
         assert ("No rule to make" not in out), "No rule to make error..."
 
-    def build_install_dpdk_freebsd(self, target, extra_options):
+    def build_install_dpdk_freebsd_meson(self, target, extra_options):
+        # meson build same as linux
+        self.build_install_dpdk_linux_meson(target, extra_options)
+
+    def build_install_dpdk_freebsd_makefile(self, target, extra_options):
         """
         Build DPDK source code on Freebsd with specified target.
         """
@@ -312,7 +374,6 @@ class DPDKdut(Dut):
                     self.send_expect("mkdir -p ~/QMP", "# ")
                 self.session.copy_file_to('dep/QMP/qemu-ga-client', '~/QMP/')
                 self.session.copy_file_to('dep/QMP/qmp.py', '~/QMP/')
-
             self.kill_all()
 
             # enable core dump
@@ -395,10 +456,57 @@ class DPDKdut(Dut):
         """
         Build dpdk sample applications.
         """
-        build_dpdk_apps = getattr(self, 'build_dpdk_apps_%s' % self.get_os_type())
+        build_type = load_global_setting(HOST_BUILD_TYPE_SETTING)
+        build_dpdk_apps = getattr(self, 'build_dpdk_apps_%s_%s' % (self.get_os_type(), build_type))
         return build_dpdk_apps(folder, extra_options)
 
-    def build_dpdk_apps_linux(self, folder, extra_options):
+    def build_dpdk_apps_linux_meson(self, folder, extra_options):
+        """
+        Build dpdk sample applications on linux use meson
+        """
+        # icc compile need more time
+        if 'icc' in self.target:
+            timeout = 300
+        else:
+            timeout = 90
+
+        target_info = self.target.split('-')
+        arch = target_info[0]
+        if arch == 'i686':
+            # find the pkg-config path and set the PKG_CONFIG_LIBDIR environmental variable to point it
+            out = self.send_expect("find /usr -type d -name pkgconfig", "# ")
+            pkg_path = ''
+            default_cflags = self.send_expect("echo $CFLAGS", "# ")
+            default_pkg_config = self.send_expect("echo $PKG_CONFIG_LIBDIR", "# ")
+            res_path = out.split('\r\n')
+            for cur_path in res_path:
+                if 'i386' in cur_path:
+                    pkg_path = cur_path
+                    break
+            assert(pkg_path is not ''), "please make sure you env have the i386 pkg-config path"
+
+            self.send_expect("export CFLAGS=-m32", "# ", alt_session=True)
+            self.send_expect("export PKG_CONFIG_LIBDIR=%s" % pkg_path, "# ", alt_session=True)
+
+        folder_info = folder.split('/')
+        name = folder_info[-1]
+        if name not in self.apps_name:
+            raise Exception('Please config %s file path on conf/app_name.cfg' % name)
+
+        example = '/'.join(folder_info[folder_info.index('examples')+1:])
+        self.send_expect("cd %s/%s" % (self.base_dir, self.target), "# ", alt_session=True)
+        out = self.send_expect("meson configure -Dexamples=%s" % example, "# ", alt_session=True)
+        assert ("Error" not in out), "Compilation error..."
+        out = self.send_expect("ninja", "# ", timeout, alt_session=True)
+        assert ("Error" not in out), "Compilation error..."
+
+        # verify the app build in the config path
+        out = self.send_expect('ls %s' % self.apps_name[name], "# ", verify=True)
+        assert(isinstance(out, str)), 'please confirm %s app path and name in app_name.cfg' % name
+
+        return out
+
+    def build_dpdk_apps_linux_makefile(self, folder, extra_options):
         """
         Build dpdk sample applications on linux.
         """
@@ -414,7 +522,11 @@ class DPDKdut(Dut):
                                                          folder, extra_options),
                                 "# ", timeout)
 
-    def build_dpdk_apps_freebsd(self, folder, extra_options):
+    def build_dpdk_apps_freebsd_meson(self, folder, extra_options):
+        # meson build same as linux
+        self.build_dpdk_apps_linux_meson(folder, extra_options)
+
+    def build_dpdk_apps_freebsd_makefile(self, folder, extra_options):
         """
         Build dpdk sample applications on Freebsd.
         """
-- 
2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dts] [PATCH V1 6/7] framework/pmd_output: replace the hard code app path with the configured app path
  2020-07-07  2:44 [dts] [PATCH V1 0/7] meson build reference lihong
                   ` (4 preceding siblings ...)
  2020-07-07  2:45 ` [dts] [PATCH V1 5/7] framework: add meson build method and get apps name of current build type lihong
@ 2020-07-07  2:45 ` lihong
  2020-07-07  2:45 ` [dts] [PATCH V1 7/7] tests: " lihong
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: lihong @ 2020-07-07  2:45 UTC (permalink / raw)
  To: dts; +Cc: zhaoyan.chen, lihong

Signed-off-by: lihong <lihongx.ma@intel.com>
---
 framework/pmd_output.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/framework/pmd_output.py b/framework/pmd_output.py
index 2d66743..bba7676 100644
--- a/framework/pmd_output.py
+++ b/framework/pmd_output.py
@@ -178,7 +178,8 @@ class PmdOutput():
             part_eal_param = self.dut.create_eal_parameters(fixed_prefix=fixed_prefix, socket=socket, **config)
             all_eal_param = part_eal_param + ' ' + other_eal_str
 
-        command = "./%s/app/testpmd %s -- -i %s" % (self.dut.target, all_eal_param, param)
+        app_name = self.dut.apps_name['test-pmd']
+        command = app_name + " %s -- -i %s" % (all_eal_param, param)
         out = self.session.send_expect(command, "testpmd> ", 120)
         self.command = command
         # wait 10s to ensure links getting up before test start.
-- 
2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [dts] [PATCH V1 7/7] tests: replace the hard code app path with the configured app path
  2020-07-07  2:44 [dts] [PATCH V1 0/7] meson build reference lihong
                   ` (5 preceding siblings ...)
  2020-07-07  2:45 ` [dts] [PATCH V1 6/7] framework/pmd_output: replace the hard code app path with the configured app path lihong
@ 2020-07-07  2:45 ` lihong
  2020-07-07 10:20 ` [dts] [PATCH V1 0/7] meson build reference Xiao, QimaiX
  2020-07-20  7:08 ` Tu, Lijuan
  8 siblings, 0 replies; 10+ messages in thread
From: lihong @ 2020-07-07  2:45 UTC (permalink / raw)
  To: dts; +Cc: zhaoyan.chen, lihong

Signed-off-by: lihong <lihongx.ma@intel.com>
---
 tests/TestSuite_multiprocess.py           | 53 +++++++++++++++++++------------
 tests/TestSuite_vhost_multi_queue_qemu.py | 14 ++++----
 2 files changed, 40 insertions(+), 27 deletions(-)

diff --git a/tests/TestSuite_multiprocess.py b/tests/TestSuite_multiprocess.py
index 0ede8bf..5a99ee3 100644
--- a/tests/TestSuite_multiprocess.py
+++ b/tests/TestSuite_multiprocess.py
@@ -61,8 +61,20 @@ class TestMultiprocess(TestCase):
         self.tester.extend_external_packet_generator(TestMultiprocess, self)
         self.dut_ports = self.dut.get_ports()
         self.socket = self.dut.get_numa_id(self.dut_ports[0])
-        out = self.dut.build_dpdk_apps("./examples/multi_process/")
-        self.verify('Error' not in out, "Compilation failed")
+
+        out = self.dut.build_dpdk_apps("./examples/multi_process/client_server_mp/mp_client")
+        self.verify('Error' not in out, "Compilation mp_client failed")
+        out = self.dut.build_dpdk_apps("./examples/multi_process/client_server_mp/mp_server")
+        self.verify('Error' not in out, "Compilation mp_server failed")
+        out = self.dut.build_dpdk_apps("./examples/multi_process/simple_mp")
+        self.verify('Error' not in out, "Compilation simple_mp failed")
+        out = self.dut.build_dpdk_apps("./examples/multi_process/symmetric_mp")
+        self.verify('Error' not in out, "Compilation symmetric_mp failed")
+
+        self.app_mp_client = self.dut.apps_name['mp_client']
+        self.app_mp_server = self.dut.apps_name['mp_server']
+        self.app_simple_mp = self.dut.apps_name['simple_mp']
+        self.app_symmetric_mp = self.dut.apps_name['symmetric_mp']
 
         executions.append({'nprocs': 1, 'cores': '1S/1C/1T', 'pps': 0})
         executions.append({'nprocs': 2, 'cores': '1S/1C/2T', 'pps': 0})
@@ -74,6 +86,7 @@ class TestMultiprocess(TestCase):
         self.eal_param = ""
         for i in self.dut_ports:
             self.eal_param += " -w %s" % self.dut.ports_info[i]['pci']
+
         # start new session to run secondary
         self.session_secondary = self.dut.new_session()
 
@@ -100,12 +113,12 @@ class TestMultiprocess(TestCase):
         # Send message from secondary to primary
         cores = self.dut.get_core_list('1S/2C/1T', socket=self.socket)
         coremask = utils.create_mask(cores)
-        self.dut.send_expect("./examples/multi_process/simple_mp/%s/simple_mp -n 1 -c %s %s --proc-type=primary" % (self.target, coremask, self.eal_param),
+        self.dut.send_expect(self.app_simple_mp + " -n 1 -c %s --proc-type=primary" % (coremask),
                              "Finished Process Init", 100)
         time.sleep(20)
         coremask = hex(int(coremask, 16) * 0x10).rstrip("L")
         self.session_secondary.send_expect(
-            "./examples/multi_process/simple_mp/%s/simple_mp -n 1 -c %s %s --proc-type=secondary" % (self.target, coremask, self.eal_param), "Finished Process Init",
+            self.app_simple_mp + " -n 1 -c %s --proc-type=secondary" % (coremask), "Finished Process Init",
             100)
 
         self.session_secondary.send_expect("send hello_primary", ">")
@@ -117,10 +130,10 @@ class TestMultiprocess(TestCase):
         cores = self.dut.get_core_list('1S/2C/1T', socket=self.socket)
         coremask = utils.create_mask(cores)
         self.session_secondary.send_expect(
-            "./examples/multi_process/simple_mp/%s/simple_mp -n 1 -c %s %s --proc-type=primary " % (self.target, coremask, self.eal_param), "Finished Process Init", 100)
+            self.app_simple_mp + " -n 1 -c %s --proc-type=primary " % (coremask), "Finished Process Init", 100)
         time.sleep(20)
         coremask = hex(int(coremask, 16) * 0x10).rstrip("L")
-        self.dut.send_expect("./examples/multi_process/simple_mp/%s/simple_mp -n 1 -c %s %s --proc-type=secondary" % (self.target, coremask, self.eal_param),
+        self.dut.send_expect(self.app_simple_mp + " -n 1 -c %s --proc-type=secondary" % (coremask),
                              "Finished Process Init", 100)
         self.session_secondary.send_expect("send hello_secondary", ">")
         out = self.dut.get_session_output()
@@ -137,11 +150,11 @@ class TestMultiprocess(TestCase):
 
         cores = self.dut.get_core_list('1S/2C/1T', socket=self.socket)
         coremask = utils.create_mask(cores)
-        self.session_secondary.send_expect("./examples/multi_process/simple_mp/%s/simple_mp -n 1 -c %s %s --proc-type=primary" % (self.target, coremask, self.eal_param),
+        self.session_secondary.send_expect(self.app_simple_mp + " -n 1 -c %s --proc-type=primary" % (coremask),
                                            "Finished Process Init", 100)
         time.sleep(20)
         coremask = hex(int(coremask, 16) * 0x10).rstrip("L")
-        self.dut.send_expect("./examples/multi_process/simple_mp/%s/simple_mp -n 1 -c %s %s --proc-type=secondary" % (self.target, coremask, self.eal_param),
+        self.dut.send_expect(self.app_simple_mp + " -n 1 -c %s --proc-type=secondary" % (coremask),
                              "Finished Process Init", 100)
         stringsSent = 0
         for line in open('/usr/share/dict/words', 'r').readlines():
@@ -163,13 +176,13 @@ class TestMultiprocess(TestCase):
         # Send message from secondary to primary (auto process type)
         cores = self.dut.get_core_list('1S/2C/1T', socket=self.socket)
         coremask = utils.create_mask(cores)
-        out = self.dut.send_expect("./examples/multi_process/simple_mp/%s/simple_mp -n 1 -c %s %s --proc-type=auto " % (self.target, coremask, self.eal_param),
+        out = self.dut.send_expect(self.app_simple_mp + " -n 1 -c %s --proc-type=auto " % (coremask),
                                    "Finished Process Init", 100)
         self.verify("EAL: Auto-detected process type: PRIMARY" in out, "The type of process (PRIMARY) was not detected properly")
         time.sleep(20)
         coremask = hex(int(coremask, 16) * 0x10).rstrip("L")
         out = self.session_secondary.send_expect(
-            "./examples/multi_process/simple_mp/%s/simple_mp -n 1 -c %s %s --proc-type=auto" % (self.target, coremask, self.eal_param), "Finished Process Init", 100)
+            self.app_simple_mp + " -n 1 -c %s --proc-type=auto" % (coremask), "Finished Process Init", 100)
         self.verify("EAL: Auto-detected process type: SECONDARY" in out,
                     "The type of process (SECONDARY) was not detected properly")
 
@@ -183,11 +196,11 @@ class TestMultiprocess(TestCase):
         cores = self.dut.get_core_list('1S/2C/1T', socket=self.socket)
         coremask = utils.create_mask(cores)
         out = self.session_secondary.send_expect(
-            "./examples/multi_process/simple_mp/%s/simple_mp -n 1 -c %s %s --proc-type=auto" % (self.target, coremask, self.eal_param), "Finished Process Init", 100)
+            self.app_simple_mp + " -n 1 -c %s --proc-type=auto" % (coremask), "Finished Process Init", 100)
         self.verify("EAL: Auto-detected process type: PRIMARY" in out, "The type of process (PRIMARY) was not detected properly")
         time.sleep(20)
         coremask = hex(int(coremask, 16) * 0x10).rstrip("L")
-        out = self.dut.send_expect("./examples/multi_process/simple_mp/%s/simple_mp -n 1 -c %s %s --proc-type=auto" % (self.target, coremask, self.eal_param),
+        out = self.dut.send_expect(self.app_simple_mp + " -n 1 -c %s --proc-type=auto" % (coremask),
                                    "Finished Process Init", 100)
         self.verify("EAL: Auto-detected process type: SECONDARY" in out, "The type of process (SECONDARY) was not detected properly")
         self.session_secondary.send_expect("send hello_secondary", ">", 100)
@@ -205,10 +218,10 @@ class TestMultiprocess(TestCase):
 
         cores = self.dut.get_core_list('1S/2C/1T', socket=self.socket)
         coremask = utils.create_mask(cores)
-        self.session_secondary.send_expect("./examples/multi_process/simple_mp/%s/simple_mp -n 1 -c %s %s -m 64" % (self.target, coremask, self.eal_param),
+        self.session_secondary.send_expect(self.app_simple_mp + " -n 1 -c %s -m 64" % (coremask),
                                            "Finished Process Init", 100)
         coremask = hex(int(coremask, 16) * 0x10).rstrip("L")
-        out = self.dut.send_expect("./examples/multi_process/simple_mp/%s/simple_mp -n 1 -c %s %s" % (self.target, coremask, self.eal_param), "# ", 100)
+        out = self.dut.send_expect(self.app_simple_mp + " -n 1 -c %s" % (coremask), "# ", 100)
 
         self.verify("Is another primary process running" in out,
                     "No other primary process detected")
@@ -248,8 +261,8 @@ class TestMultiprocess(TestCase):
             execution = validExecutions[n]
             coreMask = utils.create_mask(self.dut.get_core_list(execution['cores'], socket=self.socket))
             self.session_secondary.send_expect(
-                "./examples/multi_process/symmetric_mp/%s/symmetric_mp -c %s %s --proc-type=auto -- -p %s --num-procs=%d --proc-id=%d" % (
-                    self.target, coreMask, self.eal_param, portMask, execution['nprocs'], n), "Finished Process Init")
+                self.app_symmetric_mp + " -c %s --proc-type=auto -- -p %s --num-procs=%d --proc-id=%d" % (
+                    coreMask, portMask, execution['nprocs'], n), "Finished Process Init")
 
             # clear streams before add new streams
             self.tester.pktgen.clear_streams()
@@ -301,16 +314,16 @@ class TestMultiprocess(TestCase):
 
             coreMask = utils.create_mask(self.dut.get_core_list('1S/1C/1T'))
             portMask = utils.create_mask(self.dut_ports)
-            self.dut.send_expect("./examples/multi_process/client_server_mp/mp_server/%s/mp_server -n %d -c %s %s -- -p %s -n %d" % (
-                self.target, self.dut.get_memory_channels(), "0xA0", self.eal_param, portMask, execution['nprocs']), "Finished Process Init", 20)
+            self.dut.send_expect(self.app_mp_server + " -n %d -c %s -- -p %s -n %d" % (
+                self.dut.get_memory_channels(), "0xA0", portMask, execution['nprocs']), "Finished Process Init", 20)
             self.dut.send_expect("^Z", "\r\n")
             self.dut.send_expect("bg", "# ")
 
             for n in range(execution['nprocs']):
                 time.sleep(5)
                 coreMask = utils.create_mask([coreList[n]])
-                self.dut.send_expect("./examples/multi_process/client_server_mp/mp_client/%s/mp_client -n %d -c %s %s --proc-type=secondary -- -n %d" % (
-                    self.target, self.dut.get_memory_channels(), coreMask, self.eal_param, n), "Finished Process Init")
+                self.dut.send_expect(self.app_mp_client + " -n %d -c %s --proc-type=secondary -- -n %d" % (
+                    self.dut.get_memory_channels(), coreMask, n), "Finished Process Init")
                 self.dut.send_expect("^Z", "\r\n")
                 self.dut.send_expect("bg", "# ")
 
diff --git a/tests/TestSuite_vhost_multi_queue_qemu.py b/tests/TestSuite_vhost_multi_queue_qemu.py
index 88524d0..01d5826 100644
--- a/tests/TestSuite_vhost_multi_queue_qemu.py
+++ b/tests/TestSuite_vhost_multi_queue_qemu.py
@@ -79,6 +79,8 @@ class TestVhostMultiQueueQemu(TestCase):
         # create an instance to set stream field setting
         self.pktgen_helper = PacketGeneratorHelper()
         self.base_dir = self.dut.base_dir.replace('~', '/root')
+        self.app_path = self.dut.apps_name['test-pmd']
+        self.app_name = self.app_path[self.app_path.rfind('/')+1:]
 
     def set_up(self):
         """
@@ -86,8 +88,8 @@ class TestVhostMultiQueueQemu(TestCase):
         """
         self.dut.send_expect("rm -rf ./vhost.out", "#")
         self.dut.send_expect("rm -rf %s/vhost-net*" % self.base_dir, "#")
-        self.dut.send_expect("killall -s INT testpmd", "#")
-        self.vm_testpmd_vector = self.target + "/app/testpmd -c %s -n 3" + \
+        self.dut.send_expect("killall -s INT %s" % self.app_name, "#")
+        self.vm_testpmd_vector = self.app_path + "-c %s -n 3" + \
                                  " -- -i --tx-offloads=0x0 " + \
                                  " --rxq=%d --txq=%d --rss-ip --nb-cores=2" % (self.queue_number, self.queue_number)
 
@@ -95,11 +97,10 @@ class TestVhostMultiQueueQemu(TestCase):
         """
         Launch the vhost sample with different parameters
         """
-        testcmd = self.target + "/app/testpmd "
         vdev = [r"'net_vhost0,iface=%s/vhost-net,queues=%d'" % (self.base_dir, self.queue_number)]
         eal_params = self.dut.create_eal_parameters(cores=self.cores, ports=[self.pci_info], vdevs=vdev)
         para = " -- -i --rxq=%d --txq=%d --nb-cores=2" % (self.queue_number, self.queue_number)
-        testcmd_start = testcmd + eal_params + para
+        testcmd_start = self.app_path + eal_params + para
         self.dut.send_expect(testcmd_start, "testpmd> ", 120)
         self.dut.send_expect("set fwd mac", "testpmd> ", 120)
         self.dut.send_expect("start", "testpmd> ", 120)
@@ -257,7 +258,7 @@ class TestVhostMultiQueueQemu(TestCase):
         """
         self.launch_testpmd()
         self.start_onevm()
-        self.vm_testpmd_queue_1 = self.target + "/app/testpmd -c %s -n 3" + \
+        self.vm_testpmd_queue_1 = self.app_path + "-c %s -n 3" + \
                                   " -- -i --tx-offloads=0x0 " + \
                                   " --rxq=1 --txq=1 --rss-ip --nb-cores=1"
         self.get_vm_coremask()
@@ -294,11 +295,10 @@ class TestVhostMultiQueueQemu(TestCase):
         Test the performance for change vhost queue size
         """
         self.queue_number = 2
-        testcmd = self.target + "/app/testpmd "
         vdev = [r"'net_vhost0,iface=%s/vhost-net,queues=2'" % self.base_dir]
         eal_params = self.dut.create_eal_parameters(cores=self.cores, ports=[self.pci_info], vdevs=vdev)
         para = " -- -i --rxq=1 --txq=1 --nb-cores=1"
-        testcmd_start = testcmd + eal_params + para
+        testcmd_start = self.app_path + eal_params + para
         self.dut.send_expect(testcmd_start, "testpmd> ", 120)
         self.dut.send_expect("set fwd mac", "testpmd> ", 120)
         self.dut.send_expect("start", "testpmd> ", 120)
-- 
2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dts] [PATCH V1 0/7] meson build reference
  2020-07-07  2:44 [dts] [PATCH V1 0/7] meson build reference lihong
                   ` (6 preceding siblings ...)
  2020-07-07  2:45 ` [dts] [PATCH V1 7/7] tests: " lihong
@ 2020-07-07 10:20 ` Xiao, QimaiX
  2020-07-20  7:08 ` Tu, Lijuan
  8 siblings, 0 replies; 10+ messages in thread
From: Xiao, QimaiX @ 2020-07-07 10:20 UTC (permalink / raw)
  To: Ma, LihongX, dts; +Cc: Chen, Zhaoyan, Ma, LihongX

Tested-by: Xiao Qimai <qimaix.xiao@intel.com>

Regards,
Xiao Qimai

> -----Original Message-----
> From: dts <dts-bounces@dpdk.org> On Behalf Of lihong
> Sent: Tuesday, July 7, 2020 10:45 AM
> To: dts@dpdk.org
> Cc: Chen, Zhaoyan <zhaoyan.chen@intel.com>; Ma, LihongX
> <lihongx.ma@intel.com>
> Subject: [dts] [PATCH V1 0/7] meson build reference
> 
> 
> lihong (7):
>   executions: add build_type field in all executions cfg
>   conf: add configuration file of app_name.cfg
>   framework/config: get configuration information from app_name.cfg
>   framework: read and save the build_type from execution.cfg
>   framework: add meson build method and get apps name of current build
>     type
>   framework/pmd_output: replace the hard code app path with the
>     configured app path
>   tests: replace the hard code app path with the configured app path
> 
>  conf/app_name.cfg                         | 119 +++++++++++++++++++++++++++
>  executions/execution.cfg                  |   2 +
>  executions/execution_FVL.cfg              |   2 +
>  executions/execution_fm10k.cfg            |   2 +
>  executions/execution_rxmode.cfg           |   3 +
>  executions/execution_smoke.cfg            |   1 +
>  framework/config.py                       |  29 +++++++
>  framework/dts.py                          |   7 ++
>  framework/dut.py                          |   8 +-
>  framework/pmd_output.py                   |   3 +-
>  framework/project_dpdk.py                 | 128
> ++++++++++++++++++++++++++++--
>  framework/settings.py                     |   1 +
>  tests/TestSuite_multiprocess.py           |  53 ++++++++-----
>  tests/TestSuite_vhost_multi_queue_qemu.py |  14 ++--
>  14 files changed, 335 insertions(+), 37 deletions(-)  create mode 100644
> conf/app_name.cfg
> 
> --
> 2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [dts] [PATCH V1 0/7] meson build reference
  2020-07-07  2:44 [dts] [PATCH V1 0/7] meson build reference lihong
                   ` (7 preceding siblings ...)
  2020-07-07 10:20 ` [dts] [PATCH V1 0/7] meson build reference Xiao, QimaiX
@ 2020-07-20  7:08 ` Tu, Lijuan
  8 siblings, 0 replies; 10+ messages in thread
From: Tu, Lijuan @ 2020-07-20  7:08 UTC (permalink / raw)
  To: Ma, LihongX, dts; +Cc: Chen, Zhaoyan, Ma, LihongX

Applied the series, thanks

> -----Original Message-----
> From: dts <dts-bounces@dpdk.org> On Behalf Of lihong
> Sent: 2020年7月7日 10:45
> To: dts@dpdk.org
> Cc: Chen, Zhaoyan <zhaoyan.chen@intel.com>; Ma, LihongX
> <lihongx.ma@intel.com>
> Subject: [dts] [PATCH V1 0/7] meson build reference
> 
> 
> lihong (7):
>   executions: add build_type field in all executions cfg
>   conf: add configuration file of app_name.cfg
>   framework/config: get configuration information from app_name.cfg
>   framework: read and save the build_type from execution.cfg
>   framework: add meson build method and get apps name of current build
>     type
>   framework/pmd_output: replace the hard code app path with the
>     configured app path
>   tests: replace the hard code app path with the configured app path
> 
>  conf/app_name.cfg                         | 119 +++++++++++++++++++++++++++
>  executions/execution.cfg                  |   2 +
>  executions/execution_FVL.cfg              |   2 +
>  executions/execution_fm10k.cfg            |   2 +
>  executions/execution_rxmode.cfg           |   3 +
>  executions/execution_smoke.cfg            |   1 +
>  framework/config.py                       |  29 +++++++
>  framework/dts.py                          |   7 ++
>  framework/dut.py                          |   8 +-
>  framework/pmd_output.py                   |   3 +-
>  framework/project_dpdk.py                 | 128 ++++++++++++++++++++++++++++--
>  framework/settings.py                     |   1 +
>  tests/TestSuite_multiprocess.py           |  53 ++++++++-----
>  tests/TestSuite_vhost_multi_queue_qemu.py |  14 ++--
>  14 files changed, 335 insertions(+), 37 deletions(-)  create mode 100644
> conf/app_name.cfg
> 
> --
> 2.7.4


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-07-20  7:08 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-07  2:44 [dts] [PATCH V1 0/7] meson build reference lihong
2020-07-07  2:44 ` [dts] [PATCH V1 1/7] executions: add build_type field in all executions cfg lihong
2020-07-07  2:44 ` [dts] [PATCH V1 2/7] conf: add configuration file of app_name.cfg lihong
2020-07-07  2:44 ` [dts] [PATCH V1 3/7] framework/config: get configuration information from app_name.cfg lihong
2020-07-07  2:45 ` [dts] [PATCH V1 4/7] framework: read and save the build_type from execution.cfg lihong
2020-07-07  2:45 ` [dts] [PATCH V1 5/7] framework: add meson build method and get apps name of current build type lihong
2020-07-07  2:45 ` [dts] [PATCH V1 6/7] framework/pmd_output: replace the hard code app path with the configured app path lihong
2020-07-07  2:45 ` [dts] [PATCH V1 7/7] tests: " lihong
2020-07-07 10:20 ` [dts] [PATCH V1 0/7] meson build reference Xiao, QimaiX
2020-07-20  7:08 ` Tu, Lijuan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).