mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-02-20 20:09:11 +00:00
config: fixing an issue introduced by previous config fix...
When the merging logic was updated to preserve duplicates within the same list, it inadvertently broke the logic that removed items marked for removal with a '~'. This commit rectifies that. Note to self: merging functions are doing *way* to much; they should be refactored into several individual function and config should be resolved in distinct stages.
This commit is contained in:
parent
799558d201
commit
8b606dd5f9
@ -167,6 +167,13 @@ class ConfigTest(TestCase):
|
||||
self.config.finalize()
|
||||
assert_equal(self.config.instrumentation['list_params']['param'], [0.1, 0.1, 0.1])
|
||||
|
||||
def test_remove_instrument(self):
|
||||
self.config.load_config({'instrumentation': ['list_params']})
|
||||
a = Agenda('{config: {instrumentation: [~list_params] }}')
|
||||
self.config.set_agenda(a)
|
||||
self.config.finalize()
|
||||
assert_equal(self.config.instrumentation, {})
|
||||
|
||||
def test_global_instrumentation(self):
|
||||
self.config.load_config({'instrumentation': ['global_instrument']})
|
||||
ws = AgendaWorkloadEntry(id='a', iterations=1, name='linpack', instrumentation=['local_instrument'])
|
||||
|
@ -339,6 +339,8 @@ def _merge_two_lists(base, other, duplicates='all', dict_type=dict): # pylint:
|
||||
elif duplicates == 'first':
|
||||
base_norm = normalize(base, dict_type)
|
||||
merged_list = normalize(base, dict_type)
|
||||
for v in base_norm:
|
||||
_check_remove_item(merged_list, v)
|
||||
for v in normalize(other, dict_type):
|
||||
if not _check_remove_item(merged_list, v):
|
||||
if v not in base_norm:
|
||||
@ -351,9 +353,12 @@ def _merge_two_lists(base, other, duplicates='all', dict_type=dict): # pylint:
|
||||
if not _check_remove_item(merged_list, v):
|
||||
if v not in other_norm:
|
||||
merged_list.append(v)
|
||||
return merged_list + other_norm
|
||||
for v in other_norm:
|
||||
if not _check_remove_item(merged_list, v):
|
||||
merged_list.append(v)
|
||||
return merged_list
|
||||
else:
|
||||
raise ValueError('Unexpected value for list duplcates argument: {}. '.format(duplicates) +
|
||||
raise ValueError('Unexpected value for list duplicates argument: {}. '.format(duplicates) +
|
||||
'Must be in {"all", "first", "last"}.')
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user