From 207b1c813f39b1622268d7eab819737458839a67 Mon Sep 17 00:00:00 2001 From: Reshma Pattan Date: Mon, 23 Dec 2019 06:53:05 +0000 Subject: [PATCH] test: fix build without ring PMD Some unit tests has dependency on RING PMD, so this patch is trying to fix those and other closely related issues. 1)pdump, latency, bitrate, ring PMD and test_event_eth_tx_adapter unit tests are dependent on ring PMD, so compile those tests only when ring PMD is enabled else ignore. 2)get rid of make file error which was added by bond unit test for ring PMD disabled case which is not necessary. 3)Tx adapter UT is dependent on RING PMD, but it was observed that it was missing from the run in meson build, so added it. TX adapter UT uses 'sw event and 'null' pmd drivers, so for shared builds the drivers .so path has to be passed to the test args of meson UT run. Fixes: 086eb64db3 ("test/pdump: add unit test for pdump library") Fixes: fdeb30fa71 ("test/bitrate: add unit tests for bitrate library") Fixes: 1e3676a06e ("test/latency: add unit tests for latencystats library") Fixes: 46cf97e4bb ("eventdev: add test for eth Tx adapter") Fixes: d23e09e0ef ("app/test: link with ring pmd when needed") Cc: stable@dpdk.org Reported-by: Stephen Hemminger Signed-off-by: Reshma Pattan Tested-by: Nikhil Rao Tested-by: Bruce Richardson --- app/test/Makefile | 16 +++++----------- app/test/meson.build | 36 ++++++++++++++++++++++-------------- app/test/process.h | 8 ++++++++ app/test/test.c | 2 ++ 4 files changed, 37 insertions(+), 25 deletions(-) diff --git a/app/test/Makefile b/app/test/Makefile index b9bb3a74b2..1f080d1626 100644 --- a/app/test/Makefile +++ b/app/test/Makefile @@ -151,8 +151,12 @@ SRCS-y += test_func_reentrancy.c SRCS-y += test_service_cores.c +ifeq ($(CONFIG_RTE_LIBRTE_PMD_RING),y) +SRCS-y += sample_packet_forward.c SRCS-$(CONFIG_RTE_LIBRTE_BITRATE) += test_bitratestats.c SRCS-$(CONFIG_RTE_LIBRTE_LATENCY_STATS) += test_latencystats.c +SRCS-$(CONFIG_RTE_LIBRTE_PDUMP) += test_pdump.c +endif SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline.c SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += test_cmdline_num.c @@ -181,11 +185,8 @@ SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += test_distributor_perf.c SRCS-$(CONFIG_RTE_LIBRTE_REORDER) += test_reorder.c -SRCS-$(CONFIG_RTE_LIBRTE_PDUMP) += test_pdump.c - SRCS-y += virtual_pmd.c SRCS-y += packet_burst_generator.c -SRCS-y += sample_packet_forward.c SRCS-$(CONFIG_RTE_LIBRTE_ACL) += test_acl.c ifeq ($(CONFIG_RTE_LIBRTE_PMD_RING),y) @@ -215,7 +216,7 @@ ifeq ($(CONFIG_RTE_LIBRTE_EVENTDEV),y) SRCS-y += test_eventdev.c SRCS-y += test_event_ring.c SRCS-y += test_event_eth_rx_adapter.c -SRCS-y += test_event_eth_tx_adapter.c +SRCS-$(CONFIG_RTE_LIBRTE_PMD_RING) += test_event_eth_tx_adapter.c SRCS-y += test_event_timer_adapter.c SRCS-y += test_event_crypto_adapter.c endif @@ -261,13 +262,6 @@ CFLAGS_test_memcpy_perf.o += -fno-var-tracking-assignments endif endif -# Link against shared libraries when needed -ifeq ($(CONFIG_RTE_LIBRTE_PMD_BOND),y) -ifneq ($(CONFIG_RTE_LIBRTE_PMD_RING),y) -$(error Link bonding tests require CONFIG_RTE_LIBRTE_PMD_RING=y) -endif -endif - ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),y) ifeq ($(CONFIG_RTE_LIBRTE_PMD_BOND),y) diff --git a/app/test/meson.build b/app/test/meson.build index 3675ffb5c5..0a2ce710f0 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -7,13 +7,11 @@ endif test_sources = files('commands.c', 'packet_burst_generator.c', - 'sample_packet_forward.c', 'test.c', 'test_acl.c', 'test_alarm.c', 'test_atomic.c', 'test_barrier.c', - 'test_bitratestats.c', 'test_bpf.c', 'test_byteorder.c', 'test_cmdline.c', @@ -43,7 +41,6 @@ test_sources = files('commands.c', 'test_event_crypto_adapter.c', 'test_event_eth_rx_adapter.c', 'test_event_ring.c', - 'test_event_eth_tx_adapter.c', 'test_event_timer_adapter.c', 'test_eventdev.c', 'test_external_mem.c', @@ -65,9 +62,7 @@ test_sources = files('commands.c', 'test_ipsec_sad.c', 'test_kni.c', 'test_kvargs.c', - 'test_latencystats.c', 'test_link_bonding.c', - 'test_link_bonding_mode4.c', 'test_link_bonding_rssconf.c', 'test_logs.c', 'test_lpm.c', @@ -88,11 +83,8 @@ test_sources = files('commands.c', 'test_metrics.c', 'test_mcslock.c', 'test_mp_secondary.c', - 'test_pdump.c', 'test_per_lcore.c', 'test_pmd_perf.c', - 'test_pmd_ring.c', - 'test_pmd_ring_perf.c', 'test_power.c', 'test_power_cpufreq.c', 'test_power_kvm_vm.c', @@ -212,7 +204,6 @@ fast_test_names = [ 'rib_autotest', 'rib6_autotest', 'ring_autotest', - 'ring_pmd_autotest', 'rwlock_test1_autotest', 'rwlock_rda_autotest', 'rwlock_rds_wrm_autotest', @@ -227,7 +218,6 @@ fast_test_names = [ 'timer_autotest', 'user_delay_us', 'version_autotest', - 'bitratestats_autotest', 'crc_autotest', 'delay_us_sleep_autotest', 'distributor_autotest', @@ -237,10 +227,8 @@ fast_test_names = [ 'ipsec_autotest', 'kni_autotest', 'kvargs_autotest', - 'latencystats_autotest', 'member_autotest', 'metrics_autotest', - 'pdump_autotest', 'power_cpufreq_autotest', 'power_autotest', 'power_kvm_vm_autotest', @@ -276,7 +264,6 @@ perf_test_names = [ 'rcu_qsbr_perf_autotest', 'red_perf', 'distributor_perf_autotest', - 'ring_pmd_perf_autotest', 'pmd_perf_autotest', 'stack_perf_autotest', 'stack_lf_perf_autotest', @@ -303,7 +290,6 @@ driver_test_names = [ 'eventdev_selftest_octeontx', 'eventdev_selftest_sw', 'link_bonding_autotest', - 'link_bonding_mode4_autotest', 'link_bonding_rssconf_autotest', 'rawdev_autotest', ] @@ -340,6 +326,21 @@ if dpdk_conf.has('RTE_LIBRTE_BOND_PMD') endif if dpdk_conf.has('RTE_LIBRTE_RING_PMD') test_deps += 'pmd_ring' + test_sources += 'test_pmd_ring_perf.c' + test_sources += 'test_pmd_ring.c' + test_sources += 'test_event_eth_tx_adapter.c' + test_sources += 'test_bitratestats.c' + test_sources += 'test_latencystats.c' + test_sources += 'test_link_bonding_mode4.c' + test_sources += 'sample_packet_forward.c' + test_sources += 'test_pdump.c' + fast_test_names += 'ring_pmd_autotest' + perf_test_names += 'ring_pmd_perf_autotest' + fast_test_names += 'event_eth_tx_adapter_autotest' + fast_test_names += 'bitratestats_autotest' + fast_test_names += 'latencystats_autotest' + driver_test_names += 'link_bonding_mode4_autotest' + fast_test_names += 'pdump_autotest' endif if dpdk_conf.has('RTE_LIBRTE_POWER') @@ -403,7 +404,14 @@ get_coremask = find_program('get-coremask.sh') num_cores_arg = '-l ' + run_command(get_coremask).stdout().strip() test_args = [num_cores_arg] + foreach arg : fast_test_names + if (get_option('default_library') == 'shared' and + arg == 'event_eth_tx_adapter_autotest') + foreach drv:dpdk_drivers + test_args += ['-d', drv.full_path().split('.a')[0] + '.so'] + endforeach + endif if host_machine.system() == 'linux' test(arg, dpdk_test, env : ['DPDK_TEST=' + arg], diff --git a/app/test/process.h b/app/test/process.h index 191d2796a9..c3b3780337 100644 --- a/app/test/process.h +++ b/app/test/process.h @@ -25,10 +25,12 @@ #endif #ifdef RTE_LIBRTE_PDUMP +#ifdef RTE_LIBRTE_RING_PMD #include extern void *send_pkts(void *empty); extern uint16_t flag_for_send_pkts; #endif +#endif /* * launches a second copy of the test process using the given argv parameters, @@ -44,7 +46,9 @@ process_dup(const char *const argv[], int numargs, const char *env_value) int i, status; char path[32]; #ifdef RTE_LIBRTE_PDUMP +#ifdef RTE_LIBRTE_RING_PMD pthread_t thread; +#endif #endif pid_t pid = fork(); @@ -121,17 +125,21 @@ process_dup(const char *const argv[], int numargs, const char *env_value) } /* parent process does a wait */ #ifdef RTE_LIBRTE_PDUMP +#ifdef RTE_LIBRTE_RING_PMD if ((strcmp(env_value, "run_pdump_server_tests") == 0)) pthread_create(&thread, NULL, &send_pkts, NULL); +#endif #endif while (wait(&status) != pid) ; #ifdef RTE_LIBRTE_PDUMP +#ifdef RTE_LIBRTE_RING_PMD if ((strcmp(env_value, "run_pdump_server_tests") == 0)) { flag_for_send_pkts = 0; pthread_join(thread, NULL); } +#endif #endif return status; } diff --git a/app/test/test.c b/app/test/test.c index 7845350957..94d26ab1f6 100644 --- a/app/test/test.c +++ b/app/test/test.c @@ -53,7 +53,9 @@ do_recursive_call(void) } actions[] = { { "run_secondary_instances", test_mp_secondary }, #ifdef RTE_LIBRTE_PDUMP +#ifdef RTE_LIBRTE_RING_PMD { "run_pdump_server_tests", test_pdump }, +#endif #endif { "test_missing_c_flag", no_action }, { "test_master_lcore_flag", no_action }, -- 2.20.1