mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-11-07 01:53:24 +09:00
33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
# MobileGL - scripts/ci/census_junit.py
|
|
# Copyright (c) 2025-2026 MobileGL-Dev
|
|
# Licensed under the GNU Lesser General Public License v3.0:
|
|
# https://www.gnu.org/licenses/gpl-3.0.txt
|
|
# https://www.gnu.org/licenses/lgpl-3.0.txt
|
|
# SPDX-License-Identifier: LGPL-3.0-only
|
|
# End of Source File Header
|
|
|
|
"""Summarize the indebted broad lane without turning debt into a hard gate."""
|
|
import collections
|
|
import sys
|
|
import xml.etree.ElementTree as ET
|
|
|
|
cases = ET.parse(sys.argv[1]).getroot().findall('.//testcase')
|
|
if not cases:
|
|
sys.exit('Census FAILED: no executed test records')
|
|
counts = collections.Counter()
|
|
for case in cases:
|
|
failure = case.find('failure')
|
|
if failure is not None:
|
|
reason = failure.get('message', '')
|
|
status = 'aborted' if 'aborted' in reason.lower() else 'failed'
|
|
elif case.find('skipped') is not None:
|
|
status = 'skipped'
|
|
else:
|
|
status = 'passed'
|
|
counts[status] += 1
|
|
print('### Broad inproc census (ID-65: recorded debt, not a gate)')
|
|
print(f'CTest exit: {sys.argv[2]}; total: {len(cases)}')
|
|
print('\n| passed | skipped | aborted | failed |\n|---:|---:|---:|---:|')
|
|
print('| ' + ' | '.join(str(counts[k]) for k in ('passed', 'skipped', 'aborted', 'failed')) + ' |')
|