From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 98260E5D for ; Mon, 18 Dec 2017 14:55:16 +0100 (CET) X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Dec 2017 05:55:15 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,422,1508828400"; d="scan'208";a="2701416" Received: from bricha3-mobl3.ger.corp.intel.com ([10.237.221.106]) by fmsmga002.fm.intel.com with SMTP; 18 Dec 2017 05:55:13 -0800 Received: by (sSMTP sendmail emulation); Mon, 18 Dec 2017 13:55:13 +0000 Date: Mon, 18 Dec 2017 13:55:12 +0000 From: Bruce Richardson To: Harry van Haaren Cc: dev@dpdk.org Message-ID: <20171218135512.GB15444@bricha3-MOBL3.ger.corp.intel.com> References: <1513598038-148115-1-git-send-email-harry.van.haaren@intel.com> <1513598038-148115-3-git-send-email-harry.van.haaren@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1513598038-148115-3-git-send-email-harry.van.haaren@intel.com> Organization: Intel Research and Development Ireland Ltd. User-Agent: Mutt/1.9.1 (2017-09-22) Subject: Re: [dpdk-dev] [PATCH 2/2] meson: add tests app to build 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: Mon, 18 Dec 2017 13:55:17 -0000 On Mon, Dec 18, 2017 at 11:53:58AM +0000, Harry van Haaren wrote: > This patch enables the test/test app to be built. It also adds > the test binary to be a meson-test, which allows the meson test > infrastructure to be used to run tests. > > Tests are listed using the same test binary, however each test > sets a different DPDK_TEST environment variable. The string contents > of this DPDK_TEST env var is entered in the command line interface. > As such, the familiar test names such as "ring_perf_autotest" etc > are valid tests to run using this meson test infrastructure. > > Note that the tests are run serially, given that we cannot run > multiple primary processes at a time. As each test must initialize > EAL this takes some time depending on the number of hugepages. > In future, we could improve this to run multiple tests from one > EAL init, but it is out of scope for this patchset. > > Finally, an option to build the tests is added to the meson build > options. When disabled, the unit test code in test/test is not > compiled. The default is set to 'true'. To disable, run: > > $ meson configure -Dtests=false > > Signed-off-by: Harry van Haaren > --- > + > +test_names = [ > + 'acl_autotest', > + 'alarm_autotest', > + 'atomic_autotest', > + 'byteorder_autotest', > + 'cmdline_autotest', > + 'common_autotest', > + 'cpuflags_autotest', > + 'crc_autotest', > + 'cycles_autotest', > + 'debug_autotest', > + 'devargs_autotest', > + 'distributor_autotest', > + 'distributor_perf_autotest', > + 'eal_flags_autotest', > + 'eal_fs_autotest', > + 'efd_autotest', > + 'efd_perf_autotest', > + 'errno_autotest', > + 'event_ring_autotest', > + 'eventdev_common_autotest', > + 'eventdev_octeontx_autotest', > + 'eventdev_sw_autotest', > + 'func_reentrancy_autotest', > + 'has_scaling_autotest', > + 'hash_autotest', > + 'hash_functions_autotest', > + 'hash_multiwriter_autotest', > + 'hash_perf_autotest', > + 'interrupt_autotest', > + 'kni_autotest', > + 'kvargs_autotest', > + 'logs_autotest', > + 'lpm6_autotest', > + 'lpm6_perf_autotest', > + 'lpm_autotest', > + 'lpm_perf_autotest', > + 'malloc_autotest', > + 'mbuf_autotest', > + 'memcpy_autotest', > + 'memcpy_perf_autotest', > + 'memory_autotest', > + 'mempool_autotest', > + 'mempool_perf_autotest', > + 'memzone_autotest', > + 'meter_autotest', > + 'multiprocess_autotest', > + 'per_lcore_autotest', > + 'pmd_perf_autotest', > + 'power_acpi_cpufreq_autotest', > + 'power_autotest', > + 'power_kvm_vm_autotest', > + 'prefetch_autotest', > + 'red_all', > + 'red_autotest', > + 'red_perf', > + 'reorder_autotest', > + 'ring_autotest', > + 'ring_perf_autotest', > + 'rwlock_autotest', > + 'sched_autotest', > + 'service_autotest', > + 'spinlock_autotest', > + 'table_autotest', > + 'tailq_autotest', > + 'thash_autotest', > + 'timer_autotest', > + 'timer_perf__autotest', > + 'timer_racecond_autotest', > + 'user_delay_us', > + 'version_autotest', > +] I think we should find a way to remove this long list of test names in the build file. The list of available tests is built up dynamically inside the test binary, so I'm wondering if we can add to the binary an "all" option to run each autotest straight after each other? > + > +if dpdk_conf.has('RTE_LIBRTE_PDUMP') > + test_deps += 'pdump' > +endif > +if dpdk_conf.has('RTE_LIBRTE_I40E_PMD') > + test_deps += 'pmd_i40e' > +endif > +if dpdk_conf.has('RTE_LIBRTE_IXGBE_PMD') > + test_deps += 'pmd_ixgbe' > +endif > + This should be moved up beside the other dependencies > +test_dep_objs = [] > +foreach d:test_deps > + def_lib = get_option('default_library') > + test_dep_objs += get_variable(def_lib + '_rte_' + d) > +endforeach > + > +link_libs = [] > +if get_option('default_library') == 'static' > + link_libs = dpdk_drivers > +endif > + A note for the future: since much of this looks similar to that in testpmd we should look to see if we can find a way to easily consolidate these build commands inside a foreach loop like is done for the libs, drivers and examples. > +if get_option('tests') > + dpdk_test = executable('dpdk-test', > + test_sources, > + link_whole: link_libs, > + dependencies: test_dep_objs, > + install_rpath: driver_install_path, > + install: false) > + > + # some perf tests (eg: memcpy perf autotest)take very long > + # to complete, so timeout to 10 minutes > + timeout_seconds = 600 > + > + foreach t:test_names > + test(t, dpdk_test, > + env : ['DPDK_TEST='+t], > + timeout : timeout_seconds, > + is_parallel : false) > + endforeach > +endif > -- > 2.7.4 >