From patchwork Tue Feb 26 12:18:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 50507 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5ECFE2C30; Tue, 26 Feb 2019 13:19:16 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 17059235 for ; Tue, 26 Feb 2019 13:19:13 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Feb 2019 04:19:12 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,415,1544515200"; d="scan'208";a="150086067" Received: from silpixa00399126.ir.intel.com (HELO silpixa00399126.ger.corp.intel.com) ([10.237.222.236]) by fmsmga001.fm.intel.com with ESMTP; 26 Feb 2019 04:19:11 -0800 From: Bruce Richardson To: thomas@monjalon.net Cc: dev@dpdk.org, Bruce Richardson Date: Tue, 26 Feb 2019 12:18:58 +0000 Message-Id: <20190226121903.5499-1-bruce.richardson@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190125202642.66559-1-bruce.richardson@intel.com> References: <20190125202642.66559-1-bruce.richardson@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3 0/5] consolidate testing apps to app dir 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The apps for testing are split between the "test" and "app" directories, with a not-very-clear distinction between the two (at least to my mind). Given how the apps are being built, the easiest path to having cmdline_test, test-acl and test-pipeline build using meson is to consolidate all these apps back into the app folder and use the logic there. The bpf folder doesn't contain an actual application, but rather example bpf code which can be loaded into testpmd. That is possibly best moved to the examples folder, but I'm open to feedback on the best place for it. With these changes, the "test" folder then becomes the location for unit tests only. However, we can simplify things a little by moving that too to the app folder, eliminating the need for the separate "test-build" make target, and aligning the output folder for the binary from "make test-build" with the source file location in app. --- V3: * Renamed the cmdline_test subdirectory to test-cmdline as part of the move. V2: * Following some discussion with Thomas, moved the autotests to the app folder too. * Updated maintainers file appropriately in each patch. Bruce Richardson (5): test/cmdline_test: move to app directory test/test-acl: move to app directory test/test-pipeline: move to app directory test/bpf: move to examples folder test/test: move to app folder GNUmakefile | 1 - MAINTAINERS | 190 +++++++++--------- app/Makefile | 4 + app/meson.build | 9 +- {test => app}/test-acl/Makefile | 0 {test => app}/test-acl/main.c | 0 app/test-acl/meson.build | 5 + .../test-cmdline}/Makefile | 0 .../test-cmdline}/cmdline_test.c | 0 .../test-cmdline}/cmdline_test.h | 0 .../test-cmdline}/cmdline_test.py | 0 .../test-cmdline}/cmdline_test_data.py | 0 .../test-cmdline}/commands.c | 0 app/test-cmdline/meson.build | 5 + {test => app}/test-pipeline/Makefile | 0 {test => app}/test-pipeline/config.c | 0 {test => app}/test-pipeline/init.c | 0 {test => app}/test-pipeline/main.c | 0 {test => app}/test-pipeline/main.h | 0 app/test-pipeline/meson.build | 14 ++ {test => app}/test-pipeline/pipeline_acl.c | 0 {test => app}/test-pipeline/pipeline_hash.c | 0 {test => app}/test-pipeline/pipeline_lpm.c | 0 .../test-pipeline/pipeline_lpm_ipv6.c | 0 {test => app}/test-pipeline/pipeline_stub.c | 0 {test => app}/test-pipeline/runtime.c | 0 {test => app}/test/Makefile | 0 {test => app}/test/autotest.py | 0 {test => app}/test/autotest_data.py | 0 {test => app}/test/autotest_runner.py | 0 {test => app}/test/autotest_test_funcs.py | 0 {test => app}/test/commands.c | 0 {test => app}/test/meson.build | 0 {test => app}/test/packet_burst_generator.c | 0 {test => app}/test/packet_burst_generator.h | 0 {test => app}/test/process.h | 0 {test => app}/test/resource.c | 0 {test => app}/test/resource.h | 0 {test => app}/test/sample_packet_forward.c | 0 {test => app}/test/sample_packet_forward.h | 0 {test => app}/test/test.c | 0 {test => app}/test/test.h | 0 {test => app}/test/test_acl.c | 0 {test => app}/test/test_acl.h | 0 {test => app}/test/test_alarm.c | 0 {test => app}/test/test_atomic.c | 0 {test => app}/test/test_barrier.c | 0 {test => app}/test/test_bitmap.c | 0 {test => app}/test/test_bitratestats.c | 0 {test => app}/test/test_bpf.c | 0 {test => app}/test/test_byteorder.c | 0 {test => app}/test/test_cfgfile.c | 0 .../test/test_cfgfiles/etc/empty.ini | 0 .../test_cfgfiles/etc/empty_key_value.ini | 0 .../test_cfgfiles/etc/invalid_section.ini | 0 .../test/test_cfgfiles/etc/line_too_long.ini | 0 .../test_cfgfiles/etc/missing_section.ini | 0 .../test_cfgfiles/etc/realloc_sections.ini | 0 .../test/test_cfgfiles/etc/sample1.ini | 0 .../test/test_cfgfiles/etc/sample2.ini | 0 {test => app}/test/test_cmdline.c | 0 {test => app}/test/test_cmdline.h | 0 {test => app}/test/test_cmdline_cirbuf.c | 0 {test => app}/test/test_cmdline_etheraddr.c | 0 {test => app}/test/test_cmdline_ipaddr.c | 0 {test => app}/test/test_cmdline_lib.c | 0 {test => app}/test/test_cmdline_num.c | 0 {test => app}/test/test_cmdline_portlist.c | 0 {test => app}/test/test_cmdline_string.c | 0 {test => app}/test/test_common.c | 0 {test => app}/test/test_compressdev.c | 0 .../test/test_compressdev_test_buffer.h | 0 {test => app}/test/test_cpuflags.c | 0 {test => app}/test/test_crc.c | 0 {test => app}/test/test_cryptodev.c | 0 {test => app}/test/test_cryptodev.h | 0 .../test/test_cryptodev_aead_test_vectors.h | 0 .../test/test_cryptodev_aes_test_vectors.h | 0 {test => app}/test/test_cryptodev_asym.c | 0 {test => app}/test/test_cryptodev_asym_util.h | 0 .../test/test_cryptodev_blockcipher.c | 0 .../test/test_cryptodev_blockcipher.h | 0 .../test/test_cryptodev_des_test_vectors.h | 0 .../test/test_cryptodev_dh_test_vectors.h | 0 .../test/test_cryptodev_dsa_test_vectors.h | 0 .../test/test_cryptodev_hash_test_vectors.h | 0 .../test/test_cryptodev_hmac_test_vectors.h | 0 .../test_cryptodev_kasumi_hash_test_vectors.h | 0 .../test/test_cryptodev_kasumi_test_vectors.h | 0 .../test/test_cryptodev_mod_test_vectors.h | 0 .../test/test_cryptodev_rsa_test_vectors.h | 0 .../test_cryptodev_snow3g_hash_test_vectors.h | 0 .../test/test_cryptodev_snow3g_test_vectors.h | 0 .../test/test_cryptodev_zuc_test_vectors.h | 0 {test => app}/test/test_cycles.c | 0 {test => app}/test/test_debug.c | 0 {test => app}/test/test_distributor.c | 0 {test => app}/test/test_distributor_perf.c | 0 {test => app}/test/test_eal_flags.c | 0 {test => app}/test/test_eal_fs.c | 0 {test => app}/test/test_efd.c | 0 {test => app}/test/test_efd_perf.c | 0 {test => app}/test/test_errno.c | 0 .../test/test_event_crypto_adapter.c | 0 .../test/test_event_eth_rx_adapter.c | 0 .../test/test_event_eth_tx_adapter.c | 0 {test => app}/test/test_event_ring.c | 0 {test => app}/test/test_event_timer_adapter.c | 0 {test => app}/test/test_eventdev.c | 0 {test => app}/test/test_external_mem.c | 0 {test => app}/test/test_fbarray.c | 0 {test => app}/test/test_flow_classify.c | 0 {test => app}/test/test_flow_classify.h | 0 {test => app}/test/test_func_reentrancy.c | 0 {test => app}/test/test_hash.c | 0 {test => app}/test/test_hash_functions.c | 0 {test => app}/test/test_hash_multiwriter.c | 0 {test => app}/test/test_hash_perf.c | 0 {test => app}/test/test_hash_readwrite.c | 0 {test => app}/test/test_hash_readwrite_lf.c | 0 {test => app}/test/test_interrupts.c | 0 {test => app}/test/test_ipsec.c | 0 {test => app}/test/test_kni.c | 0 {test => app}/test/test_kvargs.c | 0 {test => app}/test/test_latencystats.c | 0 {test => app}/test/test_link_bonding.c | 0 {test => app}/test/test_link_bonding_mode4.c | 0 .../test/test_link_bonding_rssconf.c | 0 {test => app}/test/test_logs.c | 0 {test => app}/test/test_lpm.c | 0 {test => app}/test/test_lpm6.c | 0 {test => app}/test/test_lpm6_data.h | 0 {test => app}/test/test_lpm6_perf.c | 0 {test => app}/test/test_lpm_perf.c | 0 {test => app}/test/test_malloc.c | 0 {test => app}/test/test_mbuf.c | 0 {test => app}/test/test_member.c | 0 {test => app}/test/test_member_perf.c | 0 {test => app}/test/test_memcpy.c | 0 {test => app}/test/test_memcpy_perf.c | 0 {test => app}/test/test_memory.c | 0 {test => app}/test/test_mempool.c | 0 {test => app}/test/test_mempool_perf.c | 0 {test => app}/test/test_memzone.c | 0 {test => app}/test/test_meter.c | 0 {test => app}/test/test_metrics.c | 0 {test => app}/test/test_mp_secondary.c | 0 {test => app}/test/test_pdump.c | 0 {test => app}/test/test_pdump.h | 0 {test => app}/test/test_per_lcore.c | 0 {test => app}/test/test_pmd_perf.c | 0 {test => app}/test/test_pmd_ring.c | 0 {test => app}/test/test_pmd_ring_perf.c | 0 {test => app}/test/test_power.c | 0 {test => app}/test/test_power_acpi_cpufreq.c | 0 {test => app}/test/test_power_kvm_vm.c | 0 {test => app}/test/test_prefetch.c | 0 {test => app}/test/test_rawdev.c | 0 {test => app}/test/test_reciprocal_division.c | 0 .../test/test_reciprocal_division_perf.c | 0 {test => app}/test/test_red.c | 0 {test => app}/test/test_reorder.c | 0 {test => app}/test/test_resource.c | 0 {test => app}/test/test_ring.c | 0 {test => app}/test/test_ring_perf.c | 0 {test => app}/test/test_rwlock.c | 0 {test => app}/test/test_sched.c | 0 {test => app}/test/test_service_cores.c | 0 {test => app}/test/test_spinlock.c | 0 {test => app}/test/test_string_fns.c | 0 {test => app}/test/test_table.c | 0 {test => app}/test/test_table.h | 0 {test => app}/test/test_table_acl.c | 0 {test => app}/test/test_table_acl.h | 0 {test => app}/test/test_table_combined.c | 0 {test => app}/test/test_table_combined.h | 0 {test => app}/test/test_table_pipeline.c | 0 {test => app}/test/test_table_pipeline.h | 0 {test => app}/test/test_table_ports.c | 0 {test => app}/test/test_table_ports.h | 0 {test => app}/test/test_table_tables.c | 0 {test => app}/test/test_table_tables.h | 0 {test => app}/test/test_tailq.c | 0 {test => app}/test/test_thash.c | 0 {test => app}/test/test_timer.c | 0 {test => app}/test/test_timer_perf.c | 0 {test => app}/test/test_timer_racecond.c | 0 {test => app}/test/test_version.c | 0 {test => app}/test/test_xmmt_ops.h | 0 {test => app}/test/virtual_pmd.c | 0 {test => app}/test/virtual_pmd.h | 0 devtools/test-build.sh | 3 - doc/guides/compressdevs/octeontx.rst | 2 +- doc/guides/cryptodevs/qat.rst | 4 +- doc/guides/cryptodevs/virtio.rst | 2 +- doc/guides/mempool/octeontx.rst | 2 +- doc/guides/prog_guide/compressdev.rst | 2 +- doc/guides/sample_app_ug/test_pipeline.rst | 2 +- doc/guides/testpmd_app_ug/testpmd_funcs.rst | 8 +- examples/bpf/README | 8 + {test => examples}/bpf/dummy.c | 0 {test => examples}/bpf/mbuf.h | 0 examples/bpf/meson.build | 6 + {test => examples}/bpf/t1.c | 0 {test => examples}/bpf/t2.c | 0 {test => examples}/bpf/t3.c | 0 meson.build | 1 - mk/rte.sdkbuild.mk | 3 - mk/rte.sdkroot.mk | 6 +- mk/rte.sdktest.mk | 8 +- test/Makefile | 11 - test/meson.build | 4 - 212 files changed, 162 insertions(+), 138 deletions(-) rename {test => app}/test-acl/Makefile (100%) rename {test => app}/test-acl/main.c (100%) create mode 100644 app/test-acl/meson.build rename {test/cmdline_test => app/test-cmdline}/Makefile (100%) rename {test/cmdline_test => app/test-cmdline}/cmdline_test.c (100%) rename {test/cmdline_test => app/test-cmdline}/cmdline_test.h (100%) rename {test/cmdline_test => app/test-cmdline}/cmdline_test.py (100%) rename {test/cmdline_test => app/test-cmdline}/cmdline_test_data.py (100%) rename {test/cmdline_test => app/test-cmdline}/commands.c (100%) create mode 100644 app/test-cmdline/meson.build rename {test => app}/test-pipeline/Makefile (100%) rename {test => app}/test-pipeline/config.c (100%) rename {test => app}/test-pipeline/init.c (100%) rename {test => app}/test-pipeline/main.c (100%) rename {test => app}/test-pipeline/main.h (100%) create mode 100644 app/test-pipeline/meson.build rename {test => app}/test-pipeline/pipeline_acl.c (100%) rename {test => app}/test-pipeline/pipeline_hash.c (100%) rename {test => app}/test-pipeline/pipeline_lpm.c (100%) rename {test => app}/test-pipeline/pipeline_lpm_ipv6.c (100%) rename {test => app}/test-pipeline/pipeline_stub.c (100%) rename {test => app}/test-pipeline/runtime.c (100%) rename {test => app}/test/Makefile (100%) rename {test => app}/test/autotest.py (100%) rename {test => app}/test/autotest_data.py (100%) rename {test => app}/test/autotest_runner.py (100%) rename {test => app}/test/autotest_test_funcs.py (100%) rename {test => app}/test/commands.c (100%) rename {test => app}/test/meson.build (100%) rename {test => app}/test/packet_burst_generator.c (100%) rename {test => app}/test/packet_burst_generator.h (100%) rename {test => app}/test/process.h (100%) rename {test => app}/test/resource.c (100%) rename {test => app}/test/resource.h (100%) rename {test => app}/test/sample_packet_forward.c (100%) rename {test => app}/test/sample_packet_forward.h (100%) rename {test => app}/test/test.c (100%) rename {test => app}/test/test.h (100%) rename {test => app}/test/test_acl.c (100%) rename {test => app}/test/test_acl.h (100%) rename {test => app}/test/test_alarm.c (100%) rename {test => app}/test/test_atomic.c (100%) rename {test => app}/test/test_barrier.c (100%) rename {test => app}/test/test_bitmap.c (100%) rename {test => app}/test/test_bitratestats.c (100%) rename {test => app}/test/test_bpf.c (100%) rename {test => app}/test/test_byteorder.c (100%) rename {test => app}/test/test_cfgfile.c (100%) rename {test => app}/test/test_cfgfiles/etc/empty.ini (100%) rename {test => app}/test/test_cfgfiles/etc/empty_key_value.ini (100%) rename {test => app}/test/test_cfgfiles/etc/invalid_section.ini (100%) rename {test => app}/test/test_cfgfiles/etc/line_too_long.ini (100%) rename {test => app}/test/test_cfgfiles/etc/missing_section.ini (100%) rename {test => app}/test/test_cfgfiles/etc/realloc_sections.ini (100%) rename {test => app}/test/test_cfgfiles/etc/sample1.ini (100%) rename {test => app}/test/test_cfgfiles/etc/sample2.ini (100%) rename {test => app}/test/test_cmdline.c (100%) rename {test => app}/test/test_cmdline.h (100%) rename {test => app}/test/test_cmdline_cirbuf.c (100%) rename {test => app}/test/test_cmdline_etheraddr.c (100%) rename {test => app}/test/test_cmdline_ipaddr.c (100%) rename {test => app}/test/test_cmdline_lib.c (100%) rename {test => app}/test/test_cmdline_num.c (100%) rename {test => app}/test/test_cmdline_portlist.c (100%) rename {test => app}/test/test_cmdline_string.c (100%) rename {test => app}/test/test_common.c (100%) rename {test => app}/test/test_compressdev.c (100%) rename {test => app}/test/test_compressdev_test_buffer.h (100%) rename {test => app}/test/test_cpuflags.c (100%) rename {test => app}/test/test_crc.c (100%) rename {test => app}/test/test_cryptodev.c (100%) rename {test => app}/test/test_cryptodev.h (100%) rename {test => app}/test/test_cryptodev_aead_test_vectors.h (100%) rename {test => app}/test/test_cryptodev_aes_test_vectors.h (100%) rename {test => app}/test/test_cryptodev_asym.c (100%) rename {test => app}/test/test_cryptodev_asym_util.h (100%) rename {test => app}/test/test_cryptodev_blockcipher.c (100%) rename {test => app}/test/test_cryptodev_blockcipher.h (100%) rename {test => app}/test/test_cryptodev_des_test_vectors.h (100%) rename {test => app}/test/test_cryptodev_dh_test_vectors.h (100%) rename {test => app}/test/test_cryptodev_dsa_test_vectors.h (100%) rename {test => app}/test/test_cryptodev_hash_test_vectors.h (100%) rename {test => app}/test/test_cryptodev_hmac_test_vectors.h (100%) rename {test => app}/test/test_cryptodev_kasumi_hash_test_vectors.h (100%) rename {test => app}/test/test_cryptodev_kasumi_test_vectors.h (100%) rename {test => app}/test/test_cryptodev_mod_test_vectors.h (100%) rename {test => app}/test/test_cryptodev_rsa_test_vectors.h (100%) rename {test => app}/test/test_cryptodev_snow3g_hash_test_vectors.h (100%) rename {test => app}/test/test_cryptodev_snow3g_test_vectors.h (100%) rename {test => app}/test/test_cryptodev_zuc_test_vectors.h (100%) rename {test => app}/test/test_cycles.c (100%) rename {test => app}/test/test_debug.c (100%) rename {test => app}/test/test_distributor.c (100%) rename {test => app}/test/test_distributor_perf.c (100%) rename {test => app}/test/test_eal_flags.c (100%) rename {test => app}/test/test_eal_fs.c (100%) rename {test => app}/test/test_efd.c (100%) rename {test => app}/test/test_efd_perf.c (100%) rename {test => app}/test/test_errno.c (100%) rename {test => app}/test/test_event_crypto_adapter.c (100%) rename {test => app}/test/test_event_eth_rx_adapter.c (100%) rename {test => app}/test/test_event_eth_tx_adapter.c (100%) rename {test => app}/test/test_event_ring.c (100%) rename {test => app}/test/test_event_timer_adapter.c (100%) rename {test => app}/test/test_eventdev.c (100%) rename {test => app}/test/test_external_mem.c (100%) rename {test => app}/test/test_fbarray.c (100%) rename {test => app}/test/test_flow_classify.c (100%) rename {test => app}/test/test_flow_classify.h (100%) rename {test => app}/test/test_func_reentrancy.c (100%) rename {test => app}/test/test_hash.c (100%) rename {test => app}/test/test_hash_functions.c (100%) rename {test => app}/test/test_hash_multiwriter.c (100%) rename {test => app}/test/test_hash_perf.c (100%) rename {test => app}/test/test_hash_readwrite.c (100%) rename {test => app}/test/test_hash_readwrite_lf.c (100%) rename {test => app}/test/test_interrupts.c (100%) rename {test => app}/test/test_ipsec.c (100%) rename {test => app}/test/test_kni.c (100%) rename {test => app}/test/test_kvargs.c (100%) rename {test => app}/test/test_latencystats.c (100%) rename {test => app}/test/test_link_bonding.c (100%) rename {test => app}/test/test_link_bonding_mode4.c (100%) rename {test => app}/test/test_link_bonding_rssconf.c (100%) rename {test => app}/test/test_logs.c (100%) rename {test => app}/test/test_lpm.c (100%) rename {test => app}/test/test_lpm6.c (100%) rename {test => app}/test/test_lpm6_data.h (100%) rename {test => app}/test/test_lpm6_perf.c (100%) rename {test => app}/test/test_lpm_perf.c (100%) rename {test => app}/test/test_malloc.c (100%) rename {test => app}/test/test_mbuf.c (100%) rename {test => app}/test/test_member.c (100%) rename {test => app}/test/test_member_perf.c (100%) rename {test => app}/test/test_memcpy.c (100%) rename {test => app}/test/test_memcpy_perf.c (100%) rename {test => app}/test/test_memory.c (100%) rename {test => app}/test/test_mempool.c (100%) rename {test => app}/test/test_mempool_perf.c (100%) rename {test => app}/test/test_memzone.c (100%) rename {test => app}/test/test_meter.c (100%) rename {test => app}/test/test_metrics.c (100%) rename {test => app}/test/test_mp_secondary.c (100%) rename {test => app}/test/test_pdump.c (100%) rename {test => app}/test/test_pdump.h (100%) rename {test => app}/test/test_per_lcore.c (100%) rename {test => app}/test/test_pmd_perf.c (100%) rename {test => app}/test/test_pmd_ring.c (100%) rename {test => app}/test/test_pmd_ring_perf.c (100%) rename {test => app}/test/test_power.c (100%) rename {test => app}/test/test_power_acpi_cpufreq.c (100%) rename {test => app}/test/test_power_kvm_vm.c (100%) rename {test => app}/test/test_prefetch.c (100%) rename {test => app}/test/test_rawdev.c (100%) rename {test => app}/test/test_reciprocal_division.c (100%) rename {test => app}/test/test_reciprocal_division_perf.c (100%) rename {test => app}/test/test_red.c (100%) rename {test => app}/test/test_reorder.c (100%) rename {test => app}/test/test_resource.c (100%) rename {test => app}/test/test_ring.c (100%) rename {test => app}/test/test_ring_perf.c (100%) rename {test => app}/test/test_rwlock.c (100%) rename {test => app}/test/test_sched.c (100%) rename {test => app}/test/test_service_cores.c (100%) rename {test => app}/test/test_spinlock.c (100%) rename {test => app}/test/test_string_fns.c (100%) rename {test => app}/test/test_table.c (100%) rename {test => app}/test/test_table.h (100%) rename {test => app}/test/test_table_acl.c (100%) rename {test => app}/test/test_table_acl.h (100%) rename {test => app}/test/test_table_combined.c (100%) rename {test => app}/test/test_table_combined.h (100%) rename {test => app}/test/test_table_pipeline.c (100%) rename {test => app}/test/test_table_pipeline.h (100%) rename {test => app}/test/test_table_ports.c (100%) rename {test => app}/test/test_table_ports.h (100%) rename {test => app}/test/test_table_tables.c (100%) rename {test => app}/test/test_table_tables.h (100%) rename {test => app}/test/test_tailq.c (100%) rename {test => app}/test/test_thash.c (100%) rename {test => app}/test/test_timer.c (100%) rename {test => app}/test/test_timer_perf.c (100%) rename {test => app}/test/test_timer_racecond.c (100%) rename {test => app}/test/test_version.c (100%) rename {test => app}/test/test_xmmt_ops.h (100%) rename {test => app}/test/virtual_pmd.c (100%) rename {test => app}/test/virtual_pmd.h (100%) create mode 100644 examples/bpf/README rename {test => examples}/bpf/dummy.c (100%) rename {test => examples}/bpf/mbuf.h (100%) create mode 100644 examples/bpf/meson.build rename {test => examples}/bpf/t1.c (100%) rename {test => examples}/bpf/t2.c (100%) rename {test => examples}/bpf/t3.c (100%) delete mode 100644 test/Makefile delete mode 100644 test/meson.build