Messages in this thread | | | Subject | Re: [RFC PATCH 02/10] perf tests: add test for workqueue | From | Riccardo Mancini <> | Date | Thu, 15 Jul 2021 18:33:29 +0200 |
| |
Hi Arnaldo,
On Wed, 2021-07-14 at 12:10 -0300, Arnaldo Carvalho de Melo wrote: > Em Tue, Jul 13, 2021 at 02:11:13PM +0200, Riccardo Mancini escreveu: > > It will have subtests testing threadpool and workqueue separately. > > This patch only introduces the first subtest, checking that the > > threadpool is correctly created and destructed. > > This test will be expanded when new functions are added in next > > patches. > > > > Signed-off-by: Riccardo Mancini <rickyman7@gmail.com> <SNIP> > > + > > + > > +static int __test__threadpool(void *_args) > > +{ > > + struct threadpool_test_args_t *args = _args; > > + struct threadpool_struct *pool; > > + int ret; > > + > > + ret = __threadpool__prepare(&pool, args->pool_size); > > Turn the last three lines into one;
ok
> > int ret = __threadpool__prepare(&pool, args->pool_size); > > > + if (ret) > > + return ret; > > + > > + ret = __threadpool__teardown(pool); > > + if (ret) > > + return ret; > > + > > + return 0; > > Humm, will you add something here in the following csets? Otherwise turn > these 5 lines into one: > > return __threadpool__teardown(pool);
ok, it was just copy-paste from above.
Thanks, Riccardo
> > > +} > > + > > +static const struct threadpool_test_args_t threadpool_test_args[] = { > > + { > > + .pool_size = 1 > > + }, > > + { > > + .pool_size = 2 > > + }, > > + { > > + .pool_size = 4 > > + }, > > + { > > + .pool_size = 8 > > + }, > > + { > > + .pool_size = 16 > > + } > > +}; > > + > > +struct test_case { > > + const char *desc; > > + int (*func)(void *args); > > + void *args; > > + int n_args; > > + int arg_size; > > +}; > > + > > +static struct test_case workqueue_testcase_table[] = { > > + { > > + .desc = "Threadpool", > > + .func = __test__threadpool, > > + .args = (void *) threadpool_test_args, > > + .n_args = (int)ARRAY_SIZE(threadpool_test_args), > > + .arg_size = sizeof(struct threadpool_test_args_t) > > + } > > +}; > > + > > + > > +int test__workqueue(struct test *test __maybe_unused, int i) > > +{ > > + int j, ret = 0; > > + struct test_case *tc; > > + > > + if (i < 0 || i >= (int)ARRAY_SIZE(workqueue_testcase_table)) > > + return -1; > > + > > + tc = &workqueue_testcase_table[i]; > > + > > + for (j = 0; j < tc->n_args; j++) { > > + ret = tc->func(tc->args + (j*tc->arg_size)); > > + if (ret) > > + return ret; > > + } > > + > > + return 0; > > +} > > + > > + > > +int test__workqueue_subtest_get_nr(void) > > +{ > > + return (int)ARRAY_SIZE(workqueue_testcase_table); > > +} > > + > > +const char *test__workqueue_subtest_get_desc(int i) > > +{ > > + if (i < 0 || i >= (int)ARRAY_SIZE(workqueue_testcase_table)) > > + return NULL; > > + return workqueue_testcase_table[i].desc; > > +} > > -- > > 2.31.1 > > >
| |