From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp49.i.mail.ru (smtp49.i.mail.ru [94.100.177.109]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id E942141D0BD for ; Fri, 18 Oct 2019 08:54:39 +0300 (MSK) Date: Fri, 18 Oct 2019 08:54:28 +0300 From: Alexander Turenko Message-ID: <20191018055428.pqiffdfa4lkjjnle@tkn_work_nb> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Subject: Re: [Tarantool-patches] [PATCH v2] Add exclude option List-Id: Tarantool development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Alexander V. Tikhonov" Cc: tarantool-patches@freelists.org, tarantool-patches@dev.tarantool.org Say, we have the following tests: * foo/bar.test.lua * foobar/bar.test.lua * bar/foo.test.lua * bar/foobar.test.lua `./test-run.py foo` includes all of them. We can include only ones that in `foo` test suite using `./test-run.py foo/`. In other words, test-run just match suite/test by a substring. I found this way convenient and propose to use it for --exclude too. BTW, excluding tests is that the issue is requested. Tests are filtered here (for tarantool tests, see app and unittest too): https://github.com/tarantool/test-run/blob/eee42cbdbffe36fc206f4e81688bf1b49586475a/lib/tarantool_server.py#L1108-L1111 WBR, Alexander Turenko. On Fri, Oct 18, 2019 at 08:25:35AM +0300, Alexander V. Tikhonov wrote: > Added exclude option to be able to exclude the suites > from testing, it means that exclude option even excludes > the suites given with option suite. > > Close #54 > --- > > Github: https://github.com/tarantool/test-run/tree/avtikhon/gh-54-exclude-option > Issue: https://github.com/tarantool/test-run/issues/54 > > lib/options.py | 9 +++++++++ > lib/worker.py | 7 +++++-- > 2 files changed, 14 insertions(+), 2 deletions(-) > > diff --git a/lib/options.py b/lib/options.py > index 94dbd17..5270232 100644 > --- a/lib/options.py > +++ b/lib/options.py > @@ -58,6 +58,15 @@ class Options: > help="""List of test suites to look for tests in. Default: "" - > means find all available.""") > > + parser.add_argument( > + "--exclude", > + dest = 'exclude', > + metavar = "exclude", > + nargs="*", > + default = [], > + help = """List of test suites to exclude from testing. Default: "" - > + means no suites to exclude""") > + > parser.add_argument( > "--verbose", > dest='is_verbose', > diff --git a/lib/worker.py b/lib/worker.py > index 86852fa..db3dea7 100644 > --- a/lib/worker.py > +++ b/lib/worker.py > @@ -25,8 +25,11 @@ def find_suites(): > if "suite.ini" in names: > suite_names.append(os.path.basename(root)) > > - suites = [TestSuite(suite_name, lib.Options().args) > - for suite_name in sorted(suite_names)] > + exclude_names = lib.Options().args.exclude > + suites = [] > + for suite_name in sorted(suite_names): > + if suite_name not in exclude_names: > + suites.append(TestSuite(suite_name, lib.Options().args)) > return suites > > > -- > 2.17.1 >