From: David Marchand <david.marchand@redhat.com> To: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com> Cc: "dev@dpdk.org" <dev@dpdk.org>, "thomas@monjalon.net" <thomas@monjalon.net>, "aconole@redhat.com" <aconole@redhat.com>, "msantana@redhat.com" <msantana@redhat.com>, Yipeng Wang <yipeng1.wang@intel.com>, nd <nd@arm.com> Subject: Re: [dpdk-dev] [PATCH 14/14] test: skip tests when missing requirements Date: Sat, 8 Jun 2019 10:01:20 +0200 Message-ID: <CAJFAV8y1Jk3Sgtp9Yoi3E3AE0nm4F3N1hT4fh1RMScOG2-XEew@mail.gmail.com> (raw) In-Reply-To: <VE1PR08MB51496DEC99E9989FBADE5D9598100@VE1PR08MB5149.eurprd08.prod.outlook.com> (pruning a little bit of the CC: list...) On Fri, Jun 7, 2019 at 10:55 PM Honnappa Nagarahalli < Honnappa.Nagarahalli@arm.com> wrote: > > > > Let's mark as skipped the tests when they are missing some requirements > like a > > number of used cores or specific hardware availability, like compress, > crypto or > > eventdev devices. > > > > Signed-off-by: David Marchand <david.marchand@redhat.com> > > --- > > app/test/test.c | 24 ++++++++++++++++-------- > > app/test/test_compressdev.c | 4 ++-- > > app/test/test_cryptodev.c | 4 ++-- > > app/test/test_distributor.c | 4 ++-- > > app/test/test_distributor_perf.c | 4 ++-- > > app/test/test_event_timer_adapter.c | 5 +++-- > > app/test/test_eventdev.c | 2 ++ > > app/test/test_func_reentrancy.c | 6 +++--- > > app/test/test_hash_multiwriter.c | 7 +++---- > > app/test/test_hash_readwrite.c | 7 +++---- > > app/test/test_hash_readwrite_lf.c | 8 ++++---- > > app/test/test_ipsec.c | 4 ++-- > > app/test/test_mbuf.c | 13 ++++++------- > > app/test/test_rcu_qsbr.c | 10 +++++----- > > app/test/test_rcu_qsbr_perf.c | 9 +++++---- > > app/test/test_service_cores.c | 14 ++++++++++++++ > > app/test/test_stack.c | 8 +++++--- > > app/test/test_timer.c | 10 +++++----- > > app/test/test_timer_secondary.c | 10 ++++++---- > > 19 files changed, 90 insertions(+), 63 deletions(-) > > > > <snip> > > > > > RTE_LCORE_FOREACH_SLAVE(core_id) { > > diff --git a/app/test/test_hash_readwrite_lf.c > > b/app/test/test_hash_readwrite_lf.c > > index 5644361..2664f51 100644 > > --- a/app/test/test_hash_readwrite_lf.c > > +++ b/app/test/test_hash_readwrite_lf.c > > @@ -1254,10 +1254,10 @@ struct { > > int htm; > > int use_jhash = 0; > > int ext_bkt = 0; > > - if (rte_lcore_count() == 1) { > > - printf("More than one lcore is required " > > - "to do read write lock-free concurrency test\n"); > > - return -1; > > + > > + if (rte_lcore_count() < 2) { > > + printf("Not enough cores for hash_readwrite_lf_autotest, > > expecting at least 2\n"); > > + return TEST_SKIPPED; > > } > Looks good > > > diff --git a/app/test/test_rcu_qsbr.c b/app/test/test_rcu_qsbr.c index > > 92ab0c2..725d27d 100644 > > --- a/app/test/test_rcu_qsbr.c > > +++ b/app/test/test_rcu_qsbr.c > > @@ -949,14 +949,14 @@ > > static int > > test_rcu_qsbr_main(void) > > { > > + if (rte_lcore_count() < 5) { > Should be '4'. 4 cores are enough for the test. > Well, if we make it 4, then there was an issue before. num_cores < 4 means 'at least 4 slave cores', so with the master core, we are at 5. See: static inline int get_enabled_cores_mask(void) { uint16_t core_id; uint32_t max_cores = rte_lcore_count(); if (max_cores > TEST_RCU_MAX_LCORE) { printf("Number of cores exceed %d\n", TEST_RCU_MAX_LCORE); return -1; } core_id = 0; num_cores = 0; RTE_LCORE_FOREACH_SLAVE(core_id) { enabled_core_ids[num_cores] = core_id; num_cores++; } return 0; } > > + printf("Not enough cores for rcu_qsbr_autotest, expecting > at > > least 5\n"); > > + return TEST_SKIPPED; > > + } > > + > > if (get_enabled_cores_mask() != 0) > > return -1; > > > > - if (num_cores < 4) { > > - printf("Test failed! Need 4 or more cores\n"); > > - goto test_fail; > > - } > There is another check in 'get_enabled_cores_mask' function. We should > convert that as well. Suggest pulling the check in 'get_enabled_cores_mask' > to 'test_rcu_qsbr_main' > Already said it before, can't we just shoot this enabled_core_ids[] array? Is there a real need to enumerate per core rank? > > - > > /* Error-checking test cases */ > > if (test_rcu_qsbr_get_memsize() < 0) > > goto test_fail; > > diff --git a/app/test/test_rcu_qsbr_perf.c > b/app/test/test_rcu_qsbr_perf.c > > index 6b1912c..dcdd9da 100644 > > --- a/app/test/test_rcu_qsbr_perf.c > > +++ b/app/test/test_rcu_qsbr_perf.c > > @@ -623,6 +623,11 @@ > > static int > > test_rcu_qsbr_main(void) > > { > > + if (rte_lcore_count() < 3) { > Should be 2. Minimum 2 cores are required. > Idem num_cores < 2. Was the check incorrect before? > > + printf("Not enough cores for rcu_qsbr_perf_autotest, > > expecting at least 3\n"); > > + return TEST_SKIPPED; > > + } > > + > > rte_atomic64_init(&updates); > > rte_atomic64_init(&update_cycles); > > rte_atomic64_init(&checks); > > @@ -632,10 +637,6 @@ > > return -1; > > > > printf("Number of cores provided = %d\n", num_cores); > > - if (num_cores < 2) { > > - printf("Test failed! Need 2 or more cores\n"); > > - goto test_fail; > > - } > > if (num_cores > TEST_RCU_MAX_LCORE) { > Should convert this check as well to return TEST_SKIPPED. > Hum, skipped if there is a real issue at running the test with more than 128 cores (I'd like to hear how this value was chosen). Or, we size this array RTE_MAX_LCORES and there is no check at all. Or, we shoot enabled_core_ids[] array :-) -- David Marchand
next prev parent reply index Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-04 8:59 [dpdk-dev] [PATCH 00/14] Unit tests fixes for CI David Marchand 2019-06-04 8:59 ` [dpdk-dev] [PATCH 01/14] test/bonding: add missing sources for link bonding RSS David Marchand 2019-06-04 12:59 ` Aaron Conole 2019-06-04 8:59 ` [dpdk-dev] [PATCH 02/14] test/crypto: move tests to the driver specific list David Marchand 2019-06-04 13:00 ` Aaron Conole 2019-06-04 8:59 ` [dpdk-dev] [PATCH 03/14] test/eventdev: " David Marchand 2019-06-04 13:04 ` Aaron Conole 2019-06-04 8:59 ` [dpdk-dev] [PATCH 04/14] test/hash: fix off-by-one check on core count David Marchand 2019-06-04 13:05 ` Aaron Conole 2019-06-05 20:02 ` Wang, Yipeng1 2019-06-04 8:59 ` [dpdk-dev] [PATCH 05/14] test/hash: rectify slaveid to point to valid cores David Marchand 2019-06-05 20:02 ` Wang, Yipeng1 2019-06-04 8:59 ` [dpdk-dev] [PATCH 06/14] test/hash: clean remaining trace of scaling autotest David Marchand 2019-06-04 13:31 ` Aaron Conole 2019-06-04 8:59 ` [dpdk-dev] [PATCH 07/14] test/latencystats: fix stack smashing David Marchand 2019-06-04 13:38 ` Aaron Conole 2019-06-04 8:59 ` [dpdk-dev] [PATCH 08/14] test/stack: fix lock-free test name David Marchand 2019-06-04 13:06 ` Aaron Conole 2019-06-04 8:59 ` [dpdk-dev] [PATCH 09/14] test/eal: set memory channel config only in dedicated test David Marchand 2019-06-04 13:11 ` Aaron Conole 2019-06-26 9:44 ` Burakov, Anatoly 2019-06-04 8:59 ` [dpdk-dev] [PATCH 10/14] test/eal: set core mask/list " David Marchand 2019-06-04 13:12 ` Aaron Conole 2019-06-26 9:45 ` Burakov, Anatoly 2019-06-04 8:59 ` [dpdk-dev] [PATCH 11/14] test/eal: check number of cores before running subtests David Marchand 2019-06-04 13:26 ` Aaron Conole 2019-06-26 9:47 ` Burakov, Anatoly 2019-06-04 8:59 ` [dpdk-dev] [PATCH 12/14] test/eal: make the test pass again David Marchand 2019-06-04 13:29 ` Aaron Conole 2019-06-04 13:50 ` David Marchand 2019-06-26 9:49 ` Burakov, Anatoly 2019-06-26 10:03 ` David Marchand 2019-06-04 8:59 ` [dpdk-dev] [PATCH 13/14] test: do not start tests in parallel David Marchand 2019-06-04 8:59 ` [dpdk-dev] [PATCH 14/14] test: skip tests when missing requirements David Marchand 2019-06-07 20:54 ` Honnappa Nagarahalli 2019-06-08 8:01 ` David Marchand [this message] 2019-06-11 4:08 ` Honnappa Nagarahalli 2019-06-04 15:49 ` [dpdk-dev] [PATCH 00/14] Unit tests fixes for CI Michael Santana Francisco 2019-06-27 16:34 ` Thomas Monjalon 2019-07-01 12:17 ` Aaron Conole 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 00/15] " David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 01/15] test/bonding: add missing sources for link bonding RSS David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 02/15] test/crypto: move tests to the driver specific list David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 03/15] test/eventdev: " David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 04/15] test/hash: fix off-by-one check on core count David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 05/15] test/hash: rectify slaveid to point to valid cores David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 06/15] test/hash: clean remaining trace of scaling autotest David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 07/15] test/latencystats: fix stack smashing David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 08/15] test/rcu: remove arbitrary limit on max core count David Marchand 2019-06-28 12:56 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit 2019-06-28 13:32 ` David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 09/15] test/stack: fix lock-free test name David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 10/15] test/eal: set memory channel config only in dedicated test David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 11/15] test/eal: set core mask/list " David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 12/15] test/eal: check number of cores before running subtests David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 13/15] test: split into shorter subtests for CI David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 14/15] test: do not start tests in parallel David Marchand 2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 15/15] test: skip tests when missing requirements David Marchand 2019-06-17 10:00 ` [dpdk-dev] [PATCH v2 00/15] Unit tests fixes for CI Bruce Richardson 2019-06-17 10:46 ` David Marchand 2019-06-17 11:17 ` Bruce Richardson 2019-06-17 11:41 ` David Marchand 2019-06-17 11:56 ` Bruce Richardson 2019-06-17 13:44 ` David Marchand 2019-06-27 20:36 ` Thomas Monjalon 2019-07-01 16:04 ` Aaron Conole 2019-07-01 16:22 ` Thomas Monjalon 2019-07-01 16:45 ` David Marchand 2019-07-01 18:07 ` Michael Santana Francisco 2019-07-09 15:50 ` Michael Santana Francisco 2019-07-10 8:18 ` David Marchand
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CAJFAV8y1Jk3Sgtp9Yoi3E3AE0nm4F3N1hT4fh1RMScOG2-XEew@mail.gmail.com \ --to=david.marchand@redhat.com \ --cc=Honnappa.Nagarahalli@arm.com \ --cc=aconole@redhat.com \ --cc=dev@dpdk.org \ --cc=msantana@redhat.com \ --cc=nd@arm.com \ --cc=thomas@monjalon.net \ --cc=yipeng1.wang@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
DPDK-dev Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/dpdk-dev/0 dpdk-dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dpdk-dev dpdk-dev/ https://lore.kernel.org/dpdk-dev \ dev@dpdk.org public-inbox-index dpdk-dev Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git