From c59457fbbbd89575493855673c0144bca1b349c3 Mon Sep 17 00:00:00 2001 From: Vasileios Karakasis Date: Thu, 24 Nov 2022 23:59:06 +0100 Subject: [PATCH] Fix nodelist compaction for single digitless nodes --- reframe/utility/__init__.py | 6 +++++- unittests/test_utility.py | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/reframe/utility/__init__.py b/reframe/utility/__init__.py index aa678bce4a..f6b7d664e4 100644 --- a/reframe/utility/__init__.py +++ b/reframe/utility/__init__.py @@ -836,6 +836,9 @@ def add(self, nid): self.__nodes.append(nid) def __str__(self): + if not self.__nodes: + return self.__name + abbrev = [] encoded = _rl_encode(_delta_encode(self.nodes)) for unit in encoded: @@ -920,7 +923,8 @@ def nodelist_abbrev(nodes): basename, width, nid = _parse_node(n) ng = _NodeGroup(basename, width) node_groups.setdefault(ng, ng) - node_groups[ng].add(nid) + if nid is not None: + node_groups[ng].add(nid) return ','.join(str(ng) for ng in node_groups) diff --git a/unittests/test_utility.py b/unittests/test_utility.py index 4e9f8fe728..d3392b8dc2 100644 --- a/unittests/test_utility.py +++ b/unittests/test_utility.py @@ -1800,6 +1800,8 @@ def test_nodelist_utilities(): assert nodelist(['nid01', 'nid10', 'nid20']) == 'nid01,nid10,nid20' assert nodelist([]) == '' assert nodelist(['nid001']) == 'nid001' + assert nodelist(['node']) == 'node' + assert nodelist(['nid001', 'node', 'nid002']) == 'nid00[1-2],node' # Test the reverse operation assert expand('nid00[0-4],nid01[0-4],nid02[0-4]') == sorted(nid_nodes)