Cover Detail
Show a cover letter.
GET /api/covers/50367/?format=api
http://patches.dpdk.org/api/covers/50367/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/cover/20190219145308.65668-1-bruce.richardson@intel.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20190219145308.65668-1-bruce.richardson@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20190219145308.65668-1-bruce.richardson@intel.com", "date": "2019-02-19T14:53:03", "name": "[v2,0/5] consolidate testing apps to app dir", "submitter": { "id": 20, "url": "http://patches.dpdk.org/api/people/20/?format=api", "name": "Bruce Richardson", "email": "bruce.richardson@intel.com" }, "mbox": "http://patches.dpdk.org/project/dpdk/cover/20190219145308.65668-1-bruce.richardson@intel.com/mbox/", "series": [ { "id": 3483, "url": "http://patches.dpdk.org/api/series/3483/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=3483", "date": "2019-02-19T14:53:03", "name": "consolidate testing apps to app dir", "version": 2, "mbox": "http://patches.dpdk.org/series/3483/mbox/" } ], "comments": "http://patches.dpdk.org/api/covers/50367/comments/", "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 4C57A58CB;\n\tTue, 19 Feb 2019 15:53:23 +0100 (CET)", "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n\tby dpdk.org (Postfix) with ESMTP id 613285689\n\tfor <dev@dpdk.org>; Tue, 19 Feb 2019 15:53:21 +0100 (CET)", "from fmsmga005.fm.intel.com ([10.253.24.32])\n\tby fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t19 Feb 2019 06:53:20 -0800", "from silpixa00399126.ir.intel.com (HELO\n\tsilpixa00399126.ger.corp.intel.com) ([10.237.222.236])\n\tby fmsmga005.fm.intel.com with ESMTP; 19 Feb 2019 06:53:18 -0800" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.58,388,1544515200\"; d=\"scan'208\";a=\"321589034\"", "From": "Bruce Richardson <bruce.richardson@intel.com>", "To": "dev@dpdk.org,\n\tthomas@monjalon.net", "Cc": "Bruce Richardson <bruce.richardson@intel.com>", "Date": "Tue, 19 Feb 2019 14:53:03 +0000", "Message-Id": "<20190219145308.65668-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", "Content-Transfer-Encoding": "8bit", "Subject": "[dpdk-dev] [PATCH v2 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 <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "The apps for testing are split between the \"test\" and \"app\" directories,\nwith a not-very-clear distinction between the two (at least to my mind).\n\nGiven how the apps are being built, the easiest path to having\ncmdline_test, test-acl and test-pipeline build using meson is to\nconsolidate all these apps back into the app folder and use the logic\nthere. The bpf folder doesn't contain an actual application, but\nrather example bpf code which can be loaded into testpmd. That is\npossibly best moved to the examples folder, but I'm open to feedback\non the best place for it.\n\nWith these changes, the \"test\" folder then becomes the location for\nunit tests only. However, we can simplify things a little by moving\nthat too to the app folder, eliminating the need for the separate\n\"test-build\" make target, and aligning the output folder for the\nbinary from \"make test-build\" with the source file location in app.\n\n---\nV2: * Following some discussion with Thomas, moved the autotests to the\n app folder too.\n * Updated maintainers file appropriately in each patch.\n\nBruce Richardson (5):\n test/cmdline_test: move to app directory\n test/test-acl: move to app directory\n test/test-pipeline: move to app directory\n test/bpf: move to examples folder\n test/test: move to app folder\n\n GNUmakefile | 1 -\n MAINTAINERS | 190 +++++++++---------\n app/Makefile | 4 +\n {test => app}/cmdline_test/Makefile | 0\n {test => app}/cmdline_test/cmdline_test.c | 0\n {test => app}/cmdline_test/cmdline_test.h | 0\n {test => app}/cmdline_test/cmdline_test.py | 0\n .../cmdline_test/cmdline_test_data.py | 0\n {test => app}/cmdline_test/commands.c | 0\n app/cmdline_test/meson.build | 5 +\n app/meson.build | 8 +-\n {test => app}/test-acl/Makefile | 0\n {test => app}/test-acl/main.c | 0\n app/test-acl/meson.build | 5 +\n {test => app}/test-pipeline/Makefile | 0\n {test => app}/test-pipeline/config.c | 0\n {test => app}/test-pipeline/init.c | 0\n {test => app}/test-pipeline/main.c | 0\n {test => app}/test-pipeline/main.h | 0\n app/test-pipeline/meson.build | 14 ++\n {test => app}/test-pipeline/pipeline_acl.c | 0\n {test => app}/test-pipeline/pipeline_hash.c | 0\n {test => app}/test-pipeline/pipeline_lpm.c | 0\n .../test-pipeline/pipeline_lpm_ipv6.c | 0\n {test => app}/test-pipeline/pipeline_stub.c | 0\n {test => app}/test-pipeline/runtime.c | 0\n {test => app}/test/Makefile | 0\n {test => app}/test/autotest.py | 0\n {test => app}/test/autotest_data.py | 0\n {test => app}/test/autotest_runner.py | 0\n {test => app}/test/autotest_test_funcs.py | 0\n {test => app}/test/commands.c | 0\n {test => app}/test/meson.build | 0\n {test => app}/test/packet_burst_generator.c | 0\n {test => app}/test/packet_burst_generator.h | 0\n {test => app}/test/process.h | 0\n {test => app}/test/resource.c | 0\n {test => app}/test/resource.h | 0\n {test => app}/test/sample_packet_forward.c | 0\n {test => app}/test/sample_packet_forward.h | 0\n {test => app}/test/test.c | 0\n {test => app}/test/test.h | 0\n {test => app}/test/test_acl.c | 0\n {test => app}/test/test_acl.h | 0\n {test => app}/test/test_alarm.c | 0\n {test => app}/test/test_atomic.c | 0\n {test => app}/test/test_barrier.c | 0\n {test => app}/test/test_bitmap.c | 0\n {test => app}/test/test_bitratestats.c | 0\n {test => app}/test/test_bpf.c | 0\n {test => app}/test/test_byteorder.c | 0\n {test => app}/test/test_cfgfile.c | 0\n .../test/test_cfgfiles/etc/empty.ini | 0\n .../test_cfgfiles/etc/empty_key_value.ini | 0\n .../test_cfgfiles/etc/invalid_section.ini | 0\n .../test/test_cfgfiles/etc/line_too_long.ini | 0\n .../test_cfgfiles/etc/missing_section.ini | 0\n .../test_cfgfiles/etc/realloc_sections.ini | 0\n .../test/test_cfgfiles/etc/sample1.ini | 0\n .../test/test_cfgfiles/etc/sample2.ini | 0\n {test => app}/test/test_cmdline.c | 0\n {test => app}/test/test_cmdline.h | 0\n {test => app}/test/test_cmdline_cirbuf.c | 0\n {test => app}/test/test_cmdline_etheraddr.c | 0\n {test => app}/test/test_cmdline_ipaddr.c | 0\n {test => app}/test/test_cmdline_lib.c | 0\n {test => app}/test/test_cmdline_num.c | 0\n {test => app}/test/test_cmdline_portlist.c | 0\n {test => app}/test/test_cmdline_string.c | 0\n {test => app}/test/test_common.c | 0\n {test => app}/test/test_compressdev.c | 0\n .../test/test_compressdev_test_buffer.h | 0\n {test => app}/test/test_cpuflags.c | 0\n {test => app}/test/test_crc.c | 0\n {test => app}/test/test_cryptodev.c | 0\n {test => app}/test/test_cryptodev.h | 0\n .../test/test_cryptodev_aead_test_vectors.h | 0\n .../test/test_cryptodev_aes_test_vectors.h | 0\n {test => app}/test/test_cryptodev_asym.c | 0\n {test => app}/test/test_cryptodev_asym_util.h | 0\n .../test/test_cryptodev_blockcipher.c | 0\n .../test/test_cryptodev_blockcipher.h | 0\n .../test/test_cryptodev_des_test_vectors.h | 0\n .../test/test_cryptodev_dh_test_vectors.h | 0\n .../test/test_cryptodev_dsa_test_vectors.h | 0\n .../test/test_cryptodev_hash_test_vectors.h | 0\n .../test/test_cryptodev_hmac_test_vectors.h | 0\n .../test_cryptodev_kasumi_hash_test_vectors.h | 0\n .../test/test_cryptodev_kasumi_test_vectors.h | 0\n .../test/test_cryptodev_mod_test_vectors.h | 0\n .../test/test_cryptodev_rsa_test_vectors.h | 0\n .../test_cryptodev_snow3g_hash_test_vectors.h | 0\n .../test/test_cryptodev_snow3g_test_vectors.h | 0\n .../test/test_cryptodev_zuc_test_vectors.h | 0\n {test => app}/test/test_cycles.c | 0\n {test => app}/test/test_debug.c | 0\n {test => app}/test/test_distributor.c | 0\n {test => app}/test/test_distributor_perf.c | 0\n {test => app}/test/test_eal_flags.c | 0\n {test => app}/test/test_eal_fs.c | 0\n {test => app}/test/test_efd.c | 0\n {test => app}/test/test_efd_perf.c | 0\n {test => app}/test/test_errno.c | 0\n .../test/test_event_crypto_adapter.c | 0\n .../test/test_event_eth_rx_adapter.c | 0\n .../test/test_event_eth_tx_adapter.c | 0\n {test => app}/test/test_event_ring.c | 0\n {test => app}/test/test_event_timer_adapter.c | 0\n {test => app}/test/test_eventdev.c | 0\n {test => app}/test/test_external_mem.c | 0\n {test => app}/test/test_fbarray.c | 0\n {test => app}/test/test_flow_classify.c | 0\n {test => app}/test/test_flow_classify.h | 0\n {test => app}/test/test_func_reentrancy.c | 0\n {test => app}/test/test_hash.c | 0\n {test => app}/test/test_hash_functions.c | 0\n {test => app}/test/test_hash_multiwriter.c | 0\n {test => app}/test/test_hash_perf.c | 0\n {test => app}/test/test_hash_readwrite.c | 0\n {test => app}/test/test_hash_readwrite_lf.c | 0\n {test => app}/test/test_interrupts.c | 0\n {test => app}/test/test_ipsec.c | 0\n {test => app}/test/test_kni.c | 0\n {test => app}/test/test_kvargs.c | 0\n {test => app}/test/test_latencystats.c | 0\n {test => app}/test/test_link_bonding.c | 0\n {test => app}/test/test_link_bonding_mode4.c | 0\n .../test/test_link_bonding_rssconf.c | 0\n {test => app}/test/test_logs.c | 0\n {test => app}/test/test_lpm.c | 0\n {test => app}/test/test_lpm6.c | 0\n {test => app}/test/test_lpm6_data.h | 0\n {test => app}/test/test_lpm6_perf.c | 0\n {test => app}/test/test_lpm_perf.c | 0\n {test => app}/test/test_malloc.c | 0\n {test => app}/test/test_mbuf.c | 0\n {test => app}/test/test_member.c | 0\n {test => app}/test/test_member_perf.c | 0\n {test => app}/test/test_memcpy.c | 0\n {test => app}/test/test_memcpy_perf.c | 0\n {test => app}/test/test_memory.c | 0\n {test => app}/test/test_mempool.c | 0\n {test => app}/test/test_mempool_perf.c | 0\n {test => app}/test/test_memzone.c | 0\n {test => app}/test/test_meter.c | 0\n {test => app}/test/test_metrics.c | 0\n {test => app}/test/test_mp_secondary.c | 0\n {test => app}/test/test_pdump.c | 0\n {test => app}/test/test_pdump.h | 0\n {test => app}/test/test_per_lcore.c | 0\n {test => app}/test/test_pmd_perf.c | 0\n {test => app}/test/test_pmd_ring.c | 0\n {test => app}/test/test_pmd_ring_perf.c | 0\n {test => app}/test/test_power.c | 0\n {test => app}/test/test_power_acpi_cpufreq.c | 0\n {test => app}/test/test_power_kvm_vm.c | 0\n {test => app}/test/test_prefetch.c | 0\n {test => app}/test/test_rawdev.c | 0\n {test => app}/test/test_reciprocal_division.c | 0\n .../test/test_reciprocal_division_perf.c | 0\n {test => app}/test/test_red.c | 0\n {test => app}/test/test_reorder.c | 0\n {test => app}/test/test_resource.c | 0\n {test => app}/test/test_ring.c | 0\n {test => app}/test/test_ring_perf.c | 0\n {test => app}/test/test_rwlock.c | 0\n {test => app}/test/test_sched.c | 0\n {test => app}/test/test_service_cores.c | 0\n {test => app}/test/test_spinlock.c | 0\n {test => app}/test/test_string_fns.c | 0\n {test => app}/test/test_table.c | 0\n {test => app}/test/test_table.h | 0\n {test => app}/test/test_table_acl.c | 0\n {test => app}/test/test_table_acl.h | 0\n {test => app}/test/test_table_combined.c | 0\n {test => app}/test/test_table_combined.h | 0\n {test => app}/test/test_table_pipeline.c | 0\n {test => app}/test/test_table_pipeline.h | 0\n {test => app}/test/test_table_ports.c | 0\n {test => app}/test/test_table_ports.h | 0\n {test => app}/test/test_table_tables.c | 0\n {test => app}/test/test_table_tables.h | 0\n {test => app}/test/test_tailq.c | 0\n {test => app}/test/test_thash.c | 0\n {test => app}/test/test_timer.c | 0\n {test => app}/test/test_timer_perf.c | 0\n {test => app}/test/test_timer_racecond.c | 0\n {test => app}/test/test_version.c | 0\n {test => app}/test/test_xmmt_ops.h | 0\n {test => app}/test/virtual_pmd.c | 0\n {test => app}/test/virtual_pmd.h | 0\n devtools/test-build.sh | 3 -\n doc/guides/compressdevs/octeontx.rst | 2 +-\n doc/guides/cryptodevs/qat.rst | 4 +-\n doc/guides/cryptodevs/virtio.rst | 2 +-\n doc/guides/mempool/octeontx.rst | 2 +-\n doc/guides/prog_guide/compressdev.rst | 2 +-\n doc/guides/sample_app_ug/test_pipeline.rst | 2 +-\n doc/guides/testpmd_app_ug/testpmd_funcs.rst | 8 +-\n examples/bpf/README | 8 +\n {test => examples}/bpf/dummy.c | 0\n {test => examples}/bpf/mbuf.h | 0\n examples/bpf/meson.build | 6 +\n {test => examples}/bpf/t1.c | 0\n {test => examples}/bpf/t2.c | 0\n {test => examples}/bpf/t3.c | 0\n meson.build | 1 -\n mk/rte.sdkbuild.mk | 3 -\n mk/rte.sdkroot.mk | 6 +-\n mk/rte.sdktest.mk | 8 +-\n test/Makefile | 11 -\n test/meson.build | 4 -\n 212 files changed, 161 insertions(+), 138 deletions(-)\n rename {test => app}/cmdline_test/Makefile (100%)\n rename {test => app}/cmdline_test/cmdline_test.c (100%)\n rename {test => app}/cmdline_test/cmdline_test.h (100%)\n rename {test => app}/cmdline_test/cmdline_test.py (100%)\n rename {test => app}/cmdline_test/cmdline_test_data.py (100%)\n rename {test => app}/cmdline_test/commands.c (100%)\n create mode 100644 app/cmdline_test/meson.build\n rename {test => app}/test-acl/Makefile (100%)\n rename {test => app}/test-acl/main.c (100%)\n create mode 100644 app/test-acl/meson.build\n rename {test => app}/test-pipeline/Makefile (100%)\n rename {test => app}/test-pipeline/config.c (100%)\n rename {test => app}/test-pipeline/init.c (100%)\n rename {test => app}/test-pipeline/main.c (100%)\n rename {test => app}/test-pipeline/main.h (100%)\n create mode 100644 app/test-pipeline/meson.build\n rename {test => app}/test-pipeline/pipeline_acl.c (100%)\n rename {test => app}/test-pipeline/pipeline_hash.c (100%)\n rename {test => app}/test-pipeline/pipeline_lpm.c (100%)\n rename {test => app}/test-pipeline/pipeline_lpm_ipv6.c (100%)\n rename {test => app}/test-pipeline/pipeline_stub.c (100%)\n rename {test => app}/test-pipeline/runtime.c (100%)\n rename {test => app}/test/Makefile (100%)\n rename {test => app}/test/autotest.py (100%)\n rename {test => app}/test/autotest_data.py (100%)\n rename {test => app}/test/autotest_runner.py (100%)\n rename {test => app}/test/autotest_test_funcs.py (100%)\n rename {test => app}/test/commands.c (100%)\n rename {test => app}/test/meson.build (100%)\n rename {test => app}/test/packet_burst_generator.c (100%)\n rename {test => app}/test/packet_burst_generator.h (100%)\n rename {test => app}/test/process.h (100%)\n rename {test => app}/test/resource.c (100%)\n rename {test => app}/test/resource.h (100%)\n rename {test => app}/test/sample_packet_forward.c (100%)\n rename {test => app}/test/sample_packet_forward.h (100%)\n rename {test => app}/test/test.c (100%)\n rename {test => app}/test/test.h (100%)\n rename {test => app}/test/test_acl.c (100%)\n rename {test => app}/test/test_acl.h (100%)\n rename {test => app}/test/test_alarm.c (100%)\n rename {test => app}/test/test_atomic.c (100%)\n rename {test => app}/test/test_barrier.c (100%)\n rename {test => app}/test/test_bitmap.c (100%)\n rename {test => app}/test/test_bitratestats.c (100%)\n rename {test => app}/test/test_bpf.c (100%)\n rename {test => app}/test/test_byteorder.c (100%)\n rename {test => app}/test/test_cfgfile.c (100%)\n rename {test => app}/test/test_cfgfiles/etc/empty.ini (100%)\n rename {test => app}/test/test_cfgfiles/etc/empty_key_value.ini (100%)\n rename {test => app}/test/test_cfgfiles/etc/invalid_section.ini (100%)\n rename {test => app}/test/test_cfgfiles/etc/line_too_long.ini (100%)\n rename {test => app}/test/test_cfgfiles/etc/missing_section.ini (100%)\n rename {test => app}/test/test_cfgfiles/etc/realloc_sections.ini (100%)\n rename {test => app}/test/test_cfgfiles/etc/sample1.ini (100%)\n rename {test => app}/test/test_cfgfiles/etc/sample2.ini (100%)\n rename {test => app}/test/test_cmdline.c (100%)\n rename {test => app}/test/test_cmdline.h (100%)\n rename {test => app}/test/test_cmdline_cirbuf.c (100%)\n rename {test => app}/test/test_cmdline_etheraddr.c (100%)\n rename {test => app}/test/test_cmdline_ipaddr.c (100%)\n rename {test => app}/test/test_cmdline_lib.c (100%)\n rename {test => app}/test/test_cmdline_num.c (100%)\n rename {test => app}/test/test_cmdline_portlist.c (100%)\n rename {test => app}/test/test_cmdline_string.c (100%)\n rename {test => app}/test/test_common.c (100%)\n rename {test => app}/test/test_compressdev.c (100%)\n rename {test => app}/test/test_compressdev_test_buffer.h (100%)\n rename {test => app}/test/test_cpuflags.c (100%)\n rename {test => app}/test/test_crc.c (100%)\n rename {test => app}/test/test_cryptodev.c (100%)\n rename {test => app}/test/test_cryptodev.h (100%)\n rename {test => app}/test/test_cryptodev_aead_test_vectors.h (100%)\n rename {test => app}/test/test_cryptodev_aes_test_vectors.h (100%)\n rename {test => app}/test/test_cryptodev_asym.c (100%)\n rename {test => app}/test/test_cryptodev_asym_util.h (100%)\n rename {test => app}/test/test_cryptodev_blockcipher.c (100%)\n rename {test => app}/test/test_cryptodev_blockcipher.h (100%)\n rename {test => app}/test/test_cryptodev_des_test_vectors.h (100%)\n rename {test => app}/test/test_cryptodev_dh_test_vectors.h (100%)\n rename {test => app}/test/test_cryptodev_dsa_test_vectors.h (100%)\n rename {test => app}/test/test_cryptodev_hash_test_vectors.h (100%)\n rename {test => app}/test/test_cryptodev_hmac_test_vectors.h (100%)\n rename {test => app}/test/test_cryptodev_kasumi_hash_test_vectors.h (100%)\n rename {test => app}/test/test_cryptodev_kasumi_test_vectors.h (100%)\n rename {test => app}/test/test_cryptodev_mod_test_vectors.h (100%)\n rename {test => app}/test/test_cryptodev_rsa_test_vectors.h (100%)\n rename {test => app}/test/test_cryptodev_snow3g_hash_test_vectors.h (100%)\n rename {test => app}/test/test_cryptodev_snow3g_test_vectors.h (100%)\n rename {test => app}/test/test_cryptodev_zuc_test_vectors.h (100%)\n rename {test => app}/test/test_cycles.c (100%)\n rename {test => app}/test/test_debug.c (100%)\n rename {test => app}/test/test_distributor.c (100%)\n rename {test => app}/test/test_distributor_perf.c (100%)\n rename {test => app}/test/test_eal_flags.c (100%)\n rename {test => app}/test/test_eal_fs.c (100%)\n rename {test => app}/test/test_efd.c (100%)\n rename {test => app}/test/test_efd_perf.c (100%)\n rename {test => app}/test/test_errno.c (100%)\n rename {test => app}/test/test_event_crypto_adapter.c (100%)\n rename {test => app}/test/test_event_eth_rx_adapter.c (100%)\n rename {test => app}/test/test_event_eth_tx_adapter.c (100%)\n rename {test => app}/test/test_event_ring.c (100%)\n rename {test => app}/test/test_event_timer_adapter.c (100%)\n rename {test => app}/test/test_eventdev.c (100%)\n rename {test => app}/test/test_external_mem.c (100%)\n rename {test => app}/test/test_fbarray.c (100%)\n rename {test => app}/test/test_flow_classify.c (100%)\n rename {test => app}/test/test_flow_classify.h (100%)\n rename {test => app}/test/test_func_reentrancy.c (100%)\n rename {test => app}/test/test_hash.c (100%)\n rename {test => app}/test/test_hash_functions.c (100%)\n rename {test => app}/test/test_hash_multiwriter.c (100%)\n rename {test => app}/test/test_hash_perf.c (100%)\n rename {test => app}/test/test_hash_readwrite.c (100%)\n rename {test => app}/test/test_hash_readwrite_lf.c (100%)\n rename {test => app}/test/test_interrupts.c (100%)\n rename {test => app}/test/test_ipsec.c (100%)\n rename {test => app}/test/test_kni.c (100%)\n rename {test => app}/test/test_kvargs.c (100%)\n rename {test => app}/test/test_latencystats.c (100%)\n rename {test => app}/test/test_link_bonding.c (100%)\n rename {test => app}/test/test_link_bonding_mode4.c (100%)\n rename {test => app}/test/test_link_bonding_rssconf.c (100%)\n rename {test => app}/test/test_logs.c (100%)\n rename {test => app}/test/test_lpm.c (100%)\n rename {test => app}/test/test_lpm6.c (100%)\n rename {test => app}/test/test_lpm6_data.h (100%)\n rename {test => app}/test/test_lpm6_perf.c (100%)\n rename {test => app}/test/test_lpm_perf.c (100%)\n rename {test => app}/test/test_malloc.c (100%)\n rename {test => app}/test/test_mbuf.c (100%)\n rename {test => app}/test/test_member.c (100%)\n rename {test => app}/test/test_member_perf.c (100%)\n rename {test => app}/test/test_memcpy.c (100%)\n rename {test => app}/test/test_memcpy_perf.c (100%)\n rename {test => app}/test/test_memory.c (100%)\n rename {test => app}/test/test_mempool.c (100%)\n rename {test => app}/test/test_mempool_perf.c (100%)\n rename {test => app}/test/test_memzone.c (100%)\n rename {test => app}/test/test_meter.c (100%)\n rename {test => app}/test/test_metrics.c (100%)\n rename {test => app}/test/test_mp_secondary.c (100%)\n rename {test => app}/test/test_pdump.c (100%)\n rename {test => app}/test/test_pdump.h (100%)\n rename {test => app}/test/test_per_lcore.c (100%)\n rename {test => app}/test/test_pmd_perf.c (100%)\n rename {test => app}/test/test_pmd_ring.c (100%)\n rename {test => app}/test/test_pmd_ring_perf.c (100%)\n rename {test => app}/test/test_power.c (100%)\n rename {test => app}/test/test_power_acpi_cpufreq.c (100%)\n rename {test => app}/test/test_power_kvm_vm.c (100%)\n rename {test => app}/test/test_prefetch.c (100%)\n rename {test => app}/test/test_rawdev.c (100%)\n rename {test => app}/test/test_reciprocal_division.c (100%)\n rename {test => app}/test/test_reciprocal_division_perf.c (100%)\n rename {test => app}/test/test_red.c (100%)\n rename {test => app}/test/test_reorder.c (100%)\n rename {test => app}/test/test_resource.c (100%)\n rename {test => app}/test/test_ring.c (100%)\n rename {test => app}/test/test_ring_perf.c (100%)\n rename {test => app}/test/test_rwlock.c (100%)\n rename {test => app}/test/test_sched.c (100%)\n rename {test => app}/test/test_service_cores.c (100%)\n rename {test => app}/test/test_spinlock.c (100%)\n rename {test => app}/test/test_string_fns.c (100%)\n rename {test => app}/test/test_table.c (100%)\n rename {test => app}/test/test_table.h (100%)\n rename {test => app}/test/test_table_acl.c (100%)\n rename {test => app}/test/test_table_acl.h (100%)\n rename {test => app}/test/test_table_combined.c (100%)\n rename {test => app}/test/test_table_combined.h (100%)\n rename {test => app}/test/test_table_pipeline.c (100%)\n rename {test => app}/test/test_table_pipeline.h (100%)\n rename {test => app}/test/test_table_ports.c (100%)\n rename {test => app}/test/test_table_ports.h (100%)\n rename {test => app}/test/test_table_tables.c (100%)\n rename {test => app}/test/test_table_tables.h (100%)\n rename {test => app}/test/test_tailq.c (100%)\n rename {test => app}/test/test_thash.c (100%)\n rename {test => app}/test/test_timer.c (100%)\n rename {test => app}/test/test_timer_perf.c (100%)\n rename {test => app}/test/test_timer_racecond.c (100%)\n rename {test => app}/test/test_version.c (100%)\n rename {test => app}/test/test_xmmt_ops.h (100%)\n rename {test => app}/test/virtual_pmd.c (100%)\n rename {test => app}/test/virtual_pmd.h (100%)\n create mode 100644 examples/bpf/README\n rename {test => examples}/bpf/dummy.c (100%)\n rename {test => examples}/bpf/mbuf.h (100%)\n create mode 100644 examples/bpf/meson.build\n rename {test => examples}/bpf/t1.c (100%)\n rename {test => examples}/bpf/t2.c (100%)\n rename {test => examples}/bpf/t3.c (100%)\n delete mode 100644 test/Makefile\n delete mode 100644 test/meson.build" }{ "id": 50367, "url": "