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
40 changes: 28 additions & 12 deletions src/send_kcidb.py
Original file line number Diff line number Diff line change
Expand Up @@ -412,9 +412,21 @@ def _parse_node_path(self, path, is_checkout_child):
return formatted_path_str if formatted_path_str else None
return None

def _parse_node_result(self, test_node):
def _parse_node_result(self, test_node, error_metadata=None):
error_code = test_node["data"].get("error_code")
inherited_error_code = None
if not error_code and error_metadata:
inherited_error_code = error_metadata.get("error_code")
if (
error_code == "Infrastructure"
or inherited_error_code == "Infrastructure"
):
return "ERROR"
Comment thread
nuclearcat marked this conversation as resolved.

if test_node["result"] == "incomplete":
error_code = test_node["data"].get("error_code")
# Only the node's own error_code decides ERROR/MISS
# classification here, inherited error codes are only
# used above to detect Infrastructure errors.
if error_code in ERRORED_TEST_CODES:
return "ERROR"
if error_code in MISSED_TEST_CODES:
Expand Down Expand Up @@ -554,8 +566,14 @@ def _parse_test_node(self, origin, test_node):
},
}

error_metadata = None
if test_node["result"] not in ("pass", "skip"):
error_metadata = self._get_error_metadata(test_node)

if test_node["result"]:
parsed_test_node["status"] = self._parse_node_result(test_node)
parsed_test_node["status"] = self._parse_node_result(
test_node, error_metadata
)
if parsed_test_node["status"] == "SKIP":
# No artifacts and metadata will be available for skipped tests
return parsed_test_node, dummy_build
Expand Down Expand Up @@ -590,15 +608,13 @@ def _parse_test_node(self, origin, test_node):
if log_url:
parsed_test_node["log_excerpt"] = self._get_log_excerpt(log_url)

if test_node["result"] != "pass":
error_metadata = self._get_error_metadata(test_node)
if error_metadata:
parsed_test_node["misc"]["error_code"] = error_metadata.get(
"error_code"
)
parsed_test_node["misc"]["error_msg"] = error_metadata.get(
"error_msg"
)
if error_metadata:
parsed_test_node["misc"]["error_code"] = error_metadata.get(
"error_code"
)
parsed_test_node["misc"]["error_msg"] = error_metadata.get(
"error_msg"
)

return parsed_test_node, dummy_build

Expand Down
Loading