[libgudev/wip/hadess/dont-skip-tests: 1/3] ci: Fail CI if a test is skipped




commit ffd452c1b76efa65682b159f96bad802fef95143
Author: Bastien Nocera <hadess hadess net>
Date:   Tue Sep 7 16:22:21 2021 +0200

    ci: Fail CI if a test is skipped

 .ci/fail_skipped_tests.py | 25 +++++++++++++++++++++++++
 .gitlab-ci.yml            |  1 +
 2 files changed, 26 insertions(+)
---
diff --git a/.ci/fail_skipped_tests.py b/.ci/fail_skipped_tests.py
new file mode 100755
index 0000000..6349921
--- /dev/null
+++ b/.ci/fail_skipped_tests.py
@@ -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)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 96f16a4..ac34959 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -37,6 +37,7 @@ build-fedora:
     - ninja -C build/ install
     - .ci/check-abi ${LAST_ABI_BREAK} $(git rev-parse HEAD)
     - ninja -C build/ test
+    - .ci/fail_skipped_tests.py build/meson-logs/testlog.junit.xml
     - ninja -C build/ dist
 
 reference:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]