summaryrefslogtreecommitdiffstats
path: root/.github/scripts/tests/mute_utils.py
diff options
context:
space:
mode:
authornkozlovskiy <[email protected]>2023-09-15 14:39:18 +0300
committernkozlovskiy <[email protected]>2023-09-15 15:18:54 +0300
commit1abde13dddc7a5ba0f30953cac2a722ae4ec8dee (patch)
tree6dbae81cda3be54521db11d5a8ab62da65c61f46 /.github/scripts/tests/mute_utils.py
parentee6c5eea2589b245c9ab882000ba6f2b0473fa4a (diff)
ci: remove all failures for muted tests
Diffstat (limited to '.github/scripts/tests/mute_utils.py')
-rw-r--r--.github/scripts/tests/mute_utils.py54
1 files changed, 33 insertions, 21 deletions
diff --git a/.github/scripts/tests/mute_utils.py b/.github/scripts/tests/mute_utils.py
index a096b407a63..8c53cc74d4f 100644
--- a/.github/scripts/tests/mute_utils.py
+++ b/.github/scripts/tests/mute_utils.py
@@ -37,41 +37,53 @@ class MuteTestCheck:
return False
-def mute_target(node):
+def mute_target(testcase):
+ err_text = []
+ err_msg = None
+ found = False
+
for node_name in ('failure', 'error'):
- failure = node.find(node_name)
- # print('failure', node_name, node, failure)
+ while 1:
+ err_node = testcase.find(node_name)
+ if err_node is None:
+ break
- if failure is not None:
- break
- else:
- return False
+ msg = err_node.get('message')
+ if msg:
+ if err_msg is None:
+ err_msg = msg
+ else:
+ err_text.append(msg)
- msg = failure.get("message")
+ if err_node.text:
+ err_text.append(err_node.text)
- skipped = ET.Element("skipped")
+ found = True
+ testcase.remove(err_node)
+
+ if not found:
+ return False
- if msg:
- skipped.set('message', msg)
+ skipped = ET.Element("skipped")
- skipped.text = failure.text
+ if err_msg:
+ skipped.set('message', err_msg)
- node.remove(failure)
- node.append(skipped)
+ if err_text:
+ skipped.text = '\n'.join(err_text)
+ testcase.append(skipped)
- add_junit_property(node, "mute", "automatically muted based on rules")
+ add_junit_property(testcase, "mute", "automatically muted based on rules")
return True
def remove_failure(node):
- failure = node.find("failure")
-
- if failure is not None:
+ while 1:
+ failure = node.find("failure")
+ if failure is None:
+ break
node.remove(failure)
- return True
-
- return False
def op_attr(node, attr, op, value):