X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Fmeson.build;h=f8ed9d88e45608860166e3995a1b97c3b5dd9f4a;hb=13fcf8aff77c0667c8c751167fe8129aa4e902fc;hp=7084addaf4de2b4138b790b8e44038ab990f4906;hpb=cae5d9fc485dd9afb16f22d64b203111c91c6ee2;p=dpdk.git diff --git a/app/test/meson.build b/app/test/meson.build index 7084addaf4..f8ed9d88e4 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,29 +41,31 @@ 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', 'test_fbarray.c', 'test_fib.c', + 'test_fib_perf.c', 'test_fib6.c', + 'test_fib6_perf.c', 'test_func_reentrancy.c', 'test_flow_classify.c', + 'test_graph.c', + 'test_graph_perf.c', 'test_hash.c', 'test_hash_functions.c', 'test_hash_multiwriter.c', 'test_hash_readwrite.c', 'test_hash_perf.c', - 'test_hash_readwrite_lf.c', + 'test_hash_readwrite_lf_perf.c', 'test_interrupts.c', + 'test_ipfrag.c', 'test_ipsec.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', @@ -86,11 +86,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', @@ -106,9 +103,15 @@ test_sources = files('commands.c', 'test_rib.c', 'test_rib6.c', 'test_ring.c', + 'test_ring_mpmc_stress.c', + 'test_ring_hts_stress.c', + 'test_ring_peek_stress.c', 'test_ring_perf.c', + 'test_ring_rts_stress.c', + 'test_ring_stress.c', 'test_rwlock.c', 'test_sched.c', + 'test_security.c', 'test_service_cores.c', 'test_spinlock.c', 'test_stack.c', @@ -127,6 +130,9 @@ test_sources = files('commands.c', 'test_timer_racecond.c', 'test_timer_secondary.c', 'test_ticketlock.c', + 'test_trace.c', + 'test_trace_register.c', + 'test_trace_perf.c', 'test_version.c', 'virtual_pmd.c' ) @@ -143,12 +149,14 @@ test_deps = ['acl', 'eventdev', 'fib', 'flow_classify', + 'graph', 'hash', 'ipsec', 'latencystats', 'lpm', 'member', 'metrics', + 'node', 'pipeline', 'port', 'rawdev', @@ -156,96 +164,97 @@ test_deps = ['acl', 'reorder', 'rib', 'ring', + 'security', 'stack', 'timer' ] -fast_test_names = [ - 'acl_autotest', - 'alarm_autotest', - 'atomic_autotest', - 'byteorder_autotest', - 'cmdline_autotest', - 'common_autotest', - 'cpuflags_autotest', - 'cycles_autotest', - 'debug_autotest', - 'eal_flags_c_opt_autotest', - 'eal_flags_master_opt_autotest', - 'eal_flags_n_opt_autotest', - 'eal_flags_hpet_autotest', - 'eal_flags_no_huge_autotest', - 'eal_flags_w_opt_autotest', - 'eal_flags_b_opt_autotest', - 'eal_flags_vdev_opt_autotest', - 'eal_flags_r_opt_autotest', - 'eal_flags_mem_autotest', - 'eal_flags_file_prefix_autotest', - 'eal_flags_misc_autotest', - 'eal_fs_autotest', - 'errno_autotest', - 'event_ring_autotest', - 'fib_autotest', - 'fib6_autotest', - 'func_reentrancy_autotest', - 'flow_classify_autotest', - 'hash_autotest', - 'interrupt_autotest', - 'logs_autotest', - 'lpm_autotest', - 'lpm6_autotest', - 'malloc_autotest', - 'mbuf_autotest', - 'mcslock_autotest', - 'memcpy_autotest', - 'memory_autotest', - 'mempool_autotest', - 'memzone_autotest', - 'meter_autotest', - 'multiprocess_autotest', - 'per_lcore_autotest', - 'prefetch_autotest', - 'rcu_qsbr_autotest', - 'red_autotest', - 'rib_autotest', - 'rib6_autotest', - 'ring_autotest', - 'ring_pmd_autotest', - 'rwlock_test1_autotest', - 'rwlock_rda_autotest', - 'rwlock_rds_wrm_autotest', - 'rwlock_rde_wro_autotest', - 'sched_autotest', - 'spinlock_autotest', - 'stack_autotest', - 'stack_lf_autotest', - 'string_autotest', - 'table_autotest', - 'tailq_autotest', - 'timer_autotest', - 'user_delay_us', - 'version_autotest', - 'bitratestats_autotest', - 'crc_autotest', - 'delay_us_sleep_autotest', - 'distributor_autotest', - 'eventdev_common_autotest', - 'fbarray_autotest', - 'hash_readwrite_autotest', - 'hash_readwrite_lf_autotest', - 'ipsec_autotest', - 'kni_autotest', - 'kvargs_autotest', - 'latencystats_autotest', - 'member_autotest', - 'metrics_autotest', - 'pdump_autotest', - 'power_cpufreq_autotest', - 'power_autotest', - 'power_kvm_vm_autotest', - 'reorder_autotest', - 'service_autotest', - 'thash_autotest', +# Each test is marked with flag true/false +# to indicate whether it can run in no-huge mode. +fast_tests = [ + ['acl_autotest', true], + ['alarm_autotest', false], + ['atomic_autotest', false], + ['byteorder_autotest', true], + ['cmdline_autotest', true], + ['common_autotest', true], + ['cpuflags_autotest', true], + ['cycles_autotest', true], + ['debug_autotest', true], + ['eal_flags_c_opt_autotest', false], + ['eal_flags_master_opt_autotest', false], + ['eal_flags_n_opt_autotest', false], + ['eal_flags_hpet_autotest', false], + ['eal_flags_no_huge_autotest', false], + ['eal_flags_w_opt_autotest', false], + ['eal_flags_b_opt_autotest', false], + ['eal_flags_vdev_opt_autotest', false], + ['eal_flags_r_opt_autotest', false], + ['eal_flags_mem_autotest', false], + ['eal_flags_file_prefix_autotest', false], + ['eal_flags_misc_autotest', false], + ['eal_fs_autotest', true], + ['errno_autotest', true], + ['event_ring_autotest', true], + ['fib_autotest', true], + ['fib6_autotest', true], + ['func_reentrancy_autotest', false], + ['flow_classify_autotest', false], + ['hash_autotest', true], + ['interrupt_autotest', true], + ['ipfrag_autotest', false], + ['logs_autotest', true], + ['lpm_autotest', true], + ['lpm6_autotest', true], + ['malloc_autotest', false], + ['mbuf_autotest', false], + ['mcslock_autotest', false], + ['memcpy_autotest', true], + ['memory_autotest', false], + ['mempool_autotest', false], + ['memzone_autotest', false], + ['meter_autotest', true], + ['multiprocess_autotest', false], + ['per_lcore_autotest', true], + ['prefetch_autotest', true], + ['rcu_qsbr_autotest', true], + ['red_autotest', true], + ['rib_autotest', true], + ['rib6_autotest', true], + ['ring_autotest', true], + ['rwlock_test1_autotest', true], + ['rwlock_rda_autotest', true], + ['rwlock_rds_wrm_autotest', true], + ['rwlock_rde_wro_autotest', true], + ['sched_autotest', true], + ['security_autotest', false], + ['spinlock_autotest', true], + ['stack_autotest', false], + ['stack_lf_autotest', false], + ['string_autotest', true], + ['table_autotest', true], + ['tailq_autotest', true], + ['timer_autotest', false], + ['user_delay_us', true], + ['version_autotest', true], + ['crc_autotest', true], + ['delay_us_sleep_autotest', true], + ['distributor_autotest', false], + ['eventdev_common_autotest', true], + ['fbarray_autotest', true], + ['hash_readwrite_func_autotest', false], + ['ipsec_autotest', true], + ['kni_autotest', false], + ['kvargs_autotest', true], + ['member_autotest', true], + ['metrics_autotest', true], + ['power_cpufreq_autotest', false], + ['power_autotest', true], + ['power_kvm_vm_autotest', false], + ['reorder_autotest', true], + ['service_autotest', true], + ['thash_autotest', true], + ['trace_autotest', true], ] perf_test_names = [ @@ -257,7 +266,9 @@ perf_test_names = [ 'reciprocal_division', 'reciprocal_division_perf', 'lpm_perf_autotest', + 'rib_slow_autotest', 'fib_slow_autotest', + 'fib_perf_autotest', 'red_all', 'barrier_autotest', 'hash_multiwriter_autotest', @@ -267,15 +278,19 @@ perf_test_names = [ 'member_perf_autotest', 'efd_perf_autotest', 'lpm6_perf_autotest', + 'rib6_slow_autotest', 'fib6_slow_autotest', + 'fib6_perf_autotest', 'rcu_qsbr_perf_autotest', 'red_perf', 'distributor_perf_autotest', - 'ring_pmd_perf_autotest', 'pmd_perf_autotest', 'stack_perf_autotest', 'stack_lf_perf_autotest', 'rand_perf_autotest', + 'hash_readwrite_perf_autotest', + 'hash_readwrite_lf_perf_autotest', + 'trace_perf_autotest', ] driver_test_names = [ @@ -296,7 +311,6 @@ driver_test_names = [ 'eventdev_selftest_octeontx', 'eventdev_selftest_sw', 'link_bonding_autotest', - 'link_bonding_mode4_autotest', 'link_bonding_rssconf_autotest', 'rawdev_autotest', ] @@ -333,6 +347,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_tests += [['ring_pmd_autotest', true]] + perf_test_names += 'ring_pmd_perf_autotest' + fast_tests += [['event_eth_tx_adapter_autotest', false]] + fast_tests += [['bitratestats_autotest', true]] + fast_tests += [['latencystats_autotest', true]] + driver_test_names += 'link_bonding_mode4_autotest' + fast_tests += [['pdump_autotest', true]] endif if dpdk_conf.has('RTE_LIBRTE_POWER') @@ -345,13 +374,14 @@ if dpdk_conf.has('RTE_LIBRTE_PDUMP') test_deps += 'pdump' endif -cflags = machine_args if cc.has_argument('-Wno-format-truncation') cflags += '-Wno-format-truncation' endif # specify -D_GNU_SOURCE unconditionally cflags += '-D_GNU_SOURCE' +# Strict-aliasing rules are violated by uint8_t[] to context size casts. +cflags += '-fno-strict-aliasing' test_dep_objs = [] if dpdk_conf.has('RTE_LIBRTE_COMPRESSDEV') @@ -360,7 +390,7 @@ if dpdk_conf.has('RTE_LIBRTE_COMPRESSDEV') test_dep_objs += compress_test_dep test_sources += 'test_compressdev.c' test_deps += 'compressdev' - fast_test_names += 'compressdev_autotest' + fast_tests += [['compressdev_autotest', false]] endif endif @@ -375,62 +405,68 @@ endforeach test_dep_objs += cc.find_library('execinfo', required: false) link_libs = [] +link_nodes = [] if get_option('default_library') == 'static' link_libs = dpdk_drivers + link_nodes = dpdk_graph_nodes endif dpdk_test = executable('dpdk-test', test_sources, - link_whole: link_libs, + link_whole: link_libs + link_nodes, dependencies: test_dep_objs, - c_args: [cflags, '-DALLOW_EXPERIMENTAL_API'], + c_args: cflags, install_rpath: driver_install_path, install: true) +has_hugepage = run_command('has-hugepage.sh').stdout().strip() != '0' +message('hugepage availability: @0@'.format(has_hugepage)) + # some perf tests (eg: memcpy perf autotest)take very long # to complete, so timeout to 10 minutes timeout_seconds = 600 timeout_seconds_fast = 10 -# Retrieve the number of CPU cores, defaulting to 4. -num_cores = '0-3' -if host_machine.system() == 'linux' - num_cores = run_command('cat', - '/sys/devices/system/cpu/present' - ).stdout().strip() -elif host_machine.system() == 'freebsd' - snum_cores = run_command('/sbin/sysctl', '-n', - 'hw.ncpu').stdout().strip() - inum_cores = snum_cores.to_int() - 1 - num_cores = '0-@0@'.format(inum_cores) -endif +get_coremask = find_program('get-coremask.sh') +num_cores_arg = '-l ' + run_command(get_coremask).stdout().strip() -num_cores_arg = '-l ' + num_cores +default_test_args = [num_cores_arg] -test_args = [num_cores_arg] -foreach arg : fast_test_names - if host_machine.system() == 'linux' - test(arg, dpdk_test, - env : ['DPDK_TEST=' + arg], - args : test_args + - ['--file-prefix=@0@'.format(arg)], - timeout : timeout_seconds_fast, - is_parallel : false, - suite : 'fast-tests') - else - test(arg, dpdk_test, - env : ['DPDK_TEST=' + arg], +foreach arg : fast_tests + test_args = default_test_args + run_test = true + if not has_hugepage + if arg[1] + test_args += ['--no-huge', '-m', '2048'] + else + run_test = false + endif + endif + + if (get_option('default_library') == 'shared' and + arg[0] == 'event_eth_tx_adapter_autotest') + foreach drv:dpdk_drivers + test_args += ['-d', drv.full_path().split('.a')[0] + '.so'] + endforeach + endif + if is_linux + test_args += ['--file-prefix=@0@'.format(arg[0])] + endif + + if run_test + test(arg[0], dpdk_test, + env : ['DPDK_TEST=' + arg[0]], args : test_args, - timeout : timeout_seconds_fast, - is_parallel : false, - suite : 'fast-tests') + timeout : timeout_seconds_fast, + is_parallel : false, + suite : 'fast-tests') endif endforeach foreach arg : perf_test_names test(arg, dpdk_test, env : ['DPDK_TEST=' + arg], - args : test_args, + args : default_test_args, timeout : timeout_seconds, is_parallel : false, suite : 'perf-tests') @@ -439,7 +475,7 @@ endforeach foreach arg : driver_test_names test(arg, dpdk_test, env : ['DPDK_TEST=' + arg], - args : test_args, + args : default_test_args, timeout : timeout_seconds, is_parallel : false, suite : 'driver-tests') @@ -448,9 +484,8 @@ endforeach foreach arg : dump_test_names test(arg, dpdk_test, env : ['DPDK_TEST=' + arg], - args : test_args, + args : default_test_args, timeout : timeout_seconds, is_parallel : false, suite : 'debug-tests') endforeach -