ci: Fail CI on skipped tests

Parse the junit results and check whether there are any skipped tests.
This commit is contained in:
Bastien Nocera 2021-09-07 14:34:51 +02:00
parent 9e9e7dc857
commit 69a7cc39db
2 changed files with 26 additions and 0 deletions

25
.ci/fail_skipped_tests.py Executable file
View file

@ -0,0 +1,25 @@
#!/usr/bin/python3
from lxml import etree
import sys
def format_title(title):
"""Put title in a box"""
box = {
'tl': '', 'tr': '', 'bl': '', 'br': '', 'h': '', 'v': '',
}
hline = box['h'] * (len(title) + 2)
return '\n'.join([
f"{box['tl']}{hline}{box['tr']}",
f"{box['v']} {title} {box['v']}",
f"{box['bl']}{hline}{box['br']}",
])
tree = etree.parse(sys.argv[1])
for suite in tree.xpath('/testsuites/testsuite'):
skipped = suite.get('skipped')
if int(skipped) != 0:
print(format_title('Tests were skipped when they should not have been. All the tests must be run in the CI'),
end='\n\n', flush=True)
sys.exit(1)

View file

@ -40,6 +40,7 @@ build_stable:
script:
- meson _build
- meson test -C _build --print-errorlogs --no-stdsplit
- .ci/fail_skipped_tests.py _build/meson-logs/testlog.junit.xml
artifacts:
when: on_success
name: "upower-${CI_COMMIT_REF_NAME}"