[Piglit] [PATCH] junit.py: Escape `api`/`search` in test's classname too.
Jose Fonseca
jfonseca at vmware.com
Mon Apr 27 07:44:19 PDT 2015
If `api` appears in the middle of the test classname, like it happens
with all `spec/glsl-1.20/api/getactiveattrib *` tests, then Jenkins will
intercept it making it impossible to see individual tests results.
Therefore, just like the testname, it must be escaped.
This escaping will affect the expected failure/crash test matching. I
can't think of another solution though...
---
framework/backends/junit.py | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/framework/backends/junit.py b/framework/backends/junit.py
index 3602f9e..c6219e2 100644
--- a/framework/backends/junit.py
+++ b/framework/backends/junit.py
@@ -40,6 +40,15 @@ __all__ = [
]
+junitSpecialNames = ('api', 'search')
+
+def junitEscape(name):
+ name = name.replace('.', '_')
+ if name in junitSpecialNames:
+ name += '_'
+ return name
+
+
class JUnitBackend(FileBackend):
""" Backend that produces ANT JUnit XML
@@ -161,8 +170,9 @@ class JUnitBackend(FileBackend):
# classname), and replace piglits '/' separated groups with '.', after
# replacing any '.' with '_' (so we don't get false groups).
classname, testname = grouptools.splitname(name)
- classname = classname.replace('.', '_')
- classname = classname.replace(grouptools.SEPARATOR, '.')
+ classname = classname.split(grouptools.SEPARATOR)
+ classname = map(junitEscape, classname)
+ classname = '.'.join(classname)
# Add the test to the piglit group rather than directly to the root
# group, this allows piglit junit to be used in conjunction with other
@@ -177,7 +187,7 @@ class JUnitBackend(FileBackend):
# The testname variable is used in the calculate_result
# closure, and must not have the suffix appended.
full_test_name = testname + self._test_suffix
- if full_test_name in ('api', 'search'):
+ if full_test_name in junitSpecialNames:
testname += '_'
full_test_name = testname + self._test_suffix
--
2.1.0
More information about the Piglit
mailing list