Thanks, looks OK for me. Reviewed-by: Radoslaw Biernacki <r <ferruh.yi...@intel.com> adoslaw.bierna...@linaro.com>
On 26 January 2018 at 18:40, Anatoly Burakov <anatoly.bura...@intel.com> wrote: > Currently, memzone autotest expects there to be no memzones > present by the time the test is run. Some hardware drivers > will allocate memzones for internal use during initialization, > resulting in tests failing due to unexpected memzones being > allocated before the test was run. > > Fix this by making callback increment a counter instead. This > also doubles as a test for correct operation of memzone_walk(). > > Fixes: 71330483a193 ("test/memzone: fix memory leak") > Cc: radoslaw.bierna...@linaro.org > Cc: sta...@dpdk.org > > Signed-off-by: Anatoly Burakov <anatoly.bura...@intel.com> > --- > test/test/test_memzone.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/test/test/test_memzone.c b/test/test/test_memzone.c > index 00d340f..5428b35 100644 > --- a/test/test/test_memzone.c > +++ b/test/test/test_memzone.c > @@ -953,16 +953,19 @@ test_memzone_basic(void) > return 0; > } > > -static int memzone_walk_called; > +static int memzone_walk_cnt; > static void memzone_walk_clb(const struct rte_memzone *mz __rte_unused, > void *arg __rte_unused) > { > - memzone_walk_called = 1; > + memzone_walk_cnt++; > } > > static int > test_memzone(void) > { > + /* take note of how many memzones were allocated before running */ > + int memzone_cnt = rte_eal_get_configuration()-> > mem_config->memzone_cnt; > + > printf("test basic memzone API\n"); > if (test_memzone_basic() < 0) > return -1; > @@ -1000,8 +1003,9 @@ test_memzone(void) > return -1; > > printf("check memzone cleanup\n"); > + memzone_walk_cnt = 0; > rte_memzone_walk(memzone_walk_clb, NULL); > - if (memzone_walk_called) { > + if (memzone_walk_cnt != memzone_cnt) { > printf("there are some memzones left after test\n"); > rte_memzone_dump(stdout); > return -1; > -- > 2.7.4 >