[Piglit] [PATCH] junit.py: Avoid special test names.

Jose Fonseca jfonseca at vmware.com
Fri Feb 20 13:39:08 PST 2015


On 20/02/15 20:50, Mark Janes wrote:
> We support using the test names as displayed in jenkins to start bisect
> jobs.  If a test fails, you can copy/paste the name into a job, and it
> will find the commit that broke it.
>
> With this change, special-cased test names can't be used with
> --include-tests anymore.
>

Couldn't the bisect job easily trim trailing underscores to the test 
name that is copy'n'pasted?

 > Instead of adding an underscore, can we change one of the characters to
 > ".", so that the expression matching will still work?

'.' is special for Jenkins -- it's equivalent to / in a path.  So I 
suspect springing dots in the name will cause problems.

Another solution is to would be to dump the pristine name (or even 
better, a properly quoted regex suitable to be passed in 
-include-tests  ) in the junit test result (stdout or stderr). e.g.:

   "....

   To run only this test pass --include-tests '^foo/doo/boo$'"


Jose


>
> -Mark
>
> Dylan Baker <baker.dylan.c at gmail.com> writes:
>
>> This looks fine to me, though I haven't tested it.
>>
>> Mark, does this seem good to you?
>>
>> Reviewed-by: Dylan Baker <baker.dylan.c at gmail.com>
>>
>> On Fri, Feb 20, 2015 at 11:53:50AM +0000, Jose Fonseca wrote:
>>> For example, Jenkins was displaying its REST API page when one navigated
>>> to  .../testReport/piglit.spec/ARB_occlusion_query2/api/ result.
>>> ---
>>>   framework/backends/junit.py | 10 +++++++++-
>>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/framework/backends/junit.py b/framework/backends/junit.py
>>> index 839c99a..ddaf826 100644
>>> --- a/framework/backends/junit.py
>>> +++ b/framework/backends/junit.py
>>> @@ -166,8 +166,16 @@ class JUnitBackend(FileBackend):
>>>           # set different root names.
>>>           classname = 'piglit.' + classname
>>>
>>> +        testname += self._test_suffix
>>> +
>>> +        # Jenkins will display special pages when the test has certain names.
>>> +        # https://urldefense.proofpoint.com/v2/url?u=https-3A__jenkins-2Dci.org_issue_18062&d=AwIBAg&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=zfmBZnnVGHeYde45pMKNnVyzeaZbdIqVLprmZCM2zzE&m=6iqiAc1uzBPZFCypdivM6WaoDheu37Q45KJTMIFulgo&s=3OKSPXH947_Gwt5zZ4v0DIJRLWf5-u6P4a2yc3cY1AU&e=
>>> +        # https://urldefense.proofpoint.com/v2/url?u=https-3A__jenkins-2Dci.org_issue_19810&d=AwIBAg&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=zfmBZnnVGHeYde45pMKNnVyzeaZbdIqVLprmZCM2zzE&m=6iqiAc1uzBPZFCypdivM6WaoDheu37Q45KJTMIFulgo&s=Kr5YcnwFlFnWhiOHklE4CT5QTR7A5PiMJFoNuK4dhaM&e=
>>> +        if testname in ('api', 'search'):
>>> +            testname += '_'
>>> +
>>>           # Create the root element
>>> -        element = etree.Element('testcase', name=testname + self._test_suffix,
>>> +        element = etree.Element('testcase', name=testname,
>>>                                   classname=classname,
>>>                                   time=str(data['time']),
>>>                                   status=str(data['result']))
>>> --
>>> 2.1.0
>>>
>>> _______________________________________________
>>> Piglit mailing list
>>> Piglit at lists.freedesktop.org
>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.freedesktop.org_mailman_listinfo_piglit&d=AwIBAg&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=zfmBZnnVGHeYde45pMKNnVyzeaZbdIqVLprmZCM2zzE&m=6iqiAc1uzBPZFCypdivM6WaoDheu37Q45KJTMIFulgo&s=KdZJAJSf6EP4bKM8xp2zYCOpqQ8WY14LPCxx90LhrdY&e=



More information about the Piglit mailing list