summary refs log tree commit diff
path: root/.buildkite
diff options
context:
space:
mode:
authorBrendan Abolivier <babolivier@matrix.org>2019-10-18 14:52:57 +0100
committerBrendan Abolivier <babolivier@matrix.org>2019-10-18 14:52:57 +0100
commitc3c1add9f30102b0c2b2f47abcd64fe705de7c2d (patch)
treeef7d165a887d4546dbc33f5f36ddcb9a9b6429a1 /.buildkite
parentAdd workers to buildkite (diff)
downloadsynapse-c3c1add9f30102b0c2b2f47abcd64fe705de7c2d.tar.xz
Add TAP formatting script
Diffstat (limited to '.buildkite')
-rw-r--r--.buildkite/format_tap.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/.buildkite/format_tap.py b/.buildkite/format_tap.py
new file mode 100644
index 0000000000..f153ffb661
--- /dev/null
+++ b/.buildkite/format_tap.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+# Copyright 2019 The Matrix.org Foundation C.I.C.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import sys
+from tap.parser import Parser
+from tap.line import Result, Unknown, Diagnostic
+
+out = ["### TAP Output for " + sys.argv[2]]
+
+p = Parser()
+
+in_error = False
+
+for line in p.parse_file(sys.argv[1]):
+    if isinstance(line, Result):
+        if in_error:
+            out.append("")
+            out.append("</pre></code></details>")
+            out.append("")
+            out.append("----")
+            out.append("")
+        in_error = False
+
+        if not line.ok and not line.todo:
+            in_error = True
+
+            out.append("FAILURE Test #%d: ``%s``" % (line.number, line.description))
+            out.append("")
+            out.append("<details><summary>Show log</summary><code><pre>")
+
+    elif isinstance(line, Diagnostic) and in_error:
+        out.append(line.text)
+
+if out:
+    for line in out[:-3]:
+        print(line)
\ No newline at end of file