Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 36 additions & 6 deletions cwltest/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,18 @@ def arg_parser(): # type: () -> argparse.ArgumentParser
default=None,
help="Run specific tests using their short names separated by comma",
)
parser.add_argument(
"-N",
type=str,
default=None,
help="Exclude specific tests by number, format is 1,3-6,9",
)
parser.add_argument(
"-S",
type=str,
default=None,
help="Exclude specific tests by short names separated by comma",
)
parser.add_argument(
"--tool",
type=str,
Expand Down Expand Up @@ -340,6 +352,15 @@ def arg_parser(): # type: () -> argparse.ArgumentParser

return parser

def expand_number_range(nr: str) -> List[int]:
ans: List[int] = []
for s in nr.split(","):
sp = s.split("-")
if len(sp) == 2:
ans.extend(range(int(sp[0]) - 1, int(sp[1])))
else:
ans.append(int(s) - 1)
return ans

def main(): # type: () -> int

Expand Down Expand Up @@ -430,12 +451,7 @@ def main(): # type: () -> int
if args.n is not None or args.s is not None:
ntest = []
if args.n is not None:
for s in args.n.split(","):
sp = s.split("-")
if len(sp) == 2:
ntest.extend(list(range(int(sp[0]) - 1, int(sp[1]))))
else:
ntest.append(int(s) - 1)
ntest = expand_number_range(args.n)
if args.s is not None:
for s in args.s.split(","):
test_number = get_test_number_by_key(tests, "short_name", s)
Expand All @@ -447,6 +463,20 @@ def main(): # type: () -> int
else:
ntest = list(range(0, len(tests)))

exclude_n = []
if args.N is not None:
exclude_n = expand_number_range(args.N)
if args.S is not None:
for s in args.S.split(","):
test_number = get_test_number_by_key(tests, "short_name", s)
if test_number:
exclude_n.append(test_number)
else:
_logger.error('Test with short name "%s" not found ', s)
return 1

ntest = list(filter(lambda x: x not in exclude_n, ntest))

total = 0
with ThreadPoolExecutor(max_workers=args.j) as executor:
jobs = [
Expand Down