Patrick Steinhardt <ps@xxxxxx> writes: > Our unit tests that don't yet use the clar unit testing framework ignore > any option that they do not understand. It is thus fine to just pass > test options we set up globally to those unit tests as they are simply > ignored. This makes our life easier because we don't have to special > case those options with Meson, where test options are set up globally > via `meson test --test-args=`. > > But our clar-based unit testing framework is way stricter here and will > fail in case it is passed an unknown option. Stub out these options with > no-ops to make our life a bit easier. > > Signed-off-by: Patrick Steinhardt <ps@xxxxxx> > --- > parse-options.h | 12 ++++++++++++ > t/unit-tests/unit-test.c | 19 ++++++++++++++++++- > 2 files changed, 30 insertions(+), 1 deletion(-) > > diff --git a/parse-options.h b/parse-options.h > index f0801d4532a175b65783689f2a68fb56da2c8e87..d01361ca97fd7227a0005b5c447d954fea472ca0 100644 > --- a/parse-options.h > +++ b/parse-options.h > @@ -353,6 +353,18 @@ struct option { > .callback = parse_opt_noop_cb, \ > } > > +static char *parse_options_noop_ignored_value MAYBE_UNUSED; > +#define OPT_NOOP_ARG(s, l) { \ > + .type = OPTION_CALLBACK, \ > + .short_name = (s), \ > + .long_name = (l), \ > + .value = &parse_options_noop_ignored_value, \ > + .argh = "ignored", \ > + .help = N_("no-op (backward compatibility)"), \ > + .flags = PARSE_OPT_HIDDEN, \ > + .callback = parse_opt_noop_cb, \ > +} > + > #define OPT_ALIAS(s, l, source_long_name) { \ > .type = OPTION_ALIAS, \ > .short_name = (s), \ > diff --git a/t/unit-tests/unit-test.c b/t/unit-tests/unit-test.c > index a474cdcfd351d9d624178a769329252237f951b7..fa8818842a42478c7a8fa6f6ecbee0777bdf472f 100644 > --- a/t/unit-tests/unit-test.c > +++ b/t/unit-tests/unit-test.c > @@ -18,8 +18,25 @@ int cmd_main(int argc, const char **argv) > N_("immediately exit upon the first failed test")), > OPT_STRING_LIST('r', "run", &run_args, N_("suite[::test]"), > N_("run only test suite or individual test <suite[::test]>")), > - OPT_STRING_LIST('x', "exclude", &exclude_args, N_("suite"), > + OPT_STRING_LIST(0, "exclude", &exclude_args, N_("suite"), Could you please explain in the commit message why it's safe to unassign `-x` from `--exclude`? -- Toon