From bd16b76e3a4af7bf2d472dc7535bbd18e03c650e Mon Sep 17 00:00:00 2001 From: Vasileios Karakasis Date: Thu, 13 Jan 2022 23:48:10 +0100 Subject: [PATCH] Fix pattern for matching node lists --- reframe/utility/__init__.py | 2 +- unittests/test_utility.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/reframe/utility/__init__.py b/reframe/utility/__init__.py index 577a0b364f..e4fb29c398 100644 --- a/reframe/utility/__init__.py +++ b/reframe/utility/__init__.py @@ -765,7 +765,7 @@ def _rl_encode(seq): def _parse_node(nodename): - m = re.search(r'(^\D+)(\d+)', nodename) + m = re.search(r'(.*\D)(\d+)', nodename) if m is None: basename = nodename width = 0 diff --git a/unittests/test_utility.py b/unittests/test_utility.py index e85c1bdd6e..b0e997b8bc 100644 --- a/unittests/test_utility.py +++ b/unittests/test_utility.py @@ -1784,6 +1784,10 @@ def test_nodelist_abbrev(): assert nodelist([]) == '' assert nodelist(['nid001']) == 'nid001' + # Test host names with numbers in their basename (see GH #2357) + nodes = [f'c2-01-{n:02}' for n in range(100)] + assert nodelist(nodes) == 'c2-01-[00-99]' + # Test node duplicates assert nodelist(['nid001', 'nid001', 'nid002']) == 'nid001,nid00[1-2]'