[Mesa-dev] Piglit on windows

Dylan Baker dylan at pnwbakers.com
Tue Oct 10 18:23:30 UTC 2017


Quoting Kyriazis, George (2017-10-10 11:02:26)
> 
> > On Oct 10, 2017, at 12:46 PM, Dylan Baker <dylan at pnwbakers.com> wrote:
> > 
> > Quoting Jose Fonseca (2017-10-10 08:41:49)
> >> On 10/10/17 16:31, Kyriazis, George wrote:
> >>> Hello…
> >>> 
> >>> Piglit on windows prints out a message saying “Timeout are not implemented on Windows.”.  These timeouts are the test timeouts in case a test hangs.
> >>> 
> >>> What do people do when running piglit on windows and they hit a timeout?  I would imagine there would be a non-zero number of people running piglit on windows on a regular basis, as a regression tool...
> >>> 
> >>> Thank you!
> >>> 
> >>> George
> >> 
> >> I haven't been involved into piglit Windows testing lately, so my
> >> understanding might be dated.
> >> 
> >> I believe that we have timeouts when we test piglit on Windows. It's not
> >> implemented on piglit python framework itself, but rather on VMware
> >> testing framework (that driver piglit, and a bunch of other tests.)
> >> 
> >> That said, I believe it would be better long term if piglit framework
> >> had timeouts on Windows, as it can probably track that with finer
> >> granularity than we do now by putting a timeout on whole piglit or
> >> subsets of piglit tests.
> >> 
> >> python3's subprocess module has timeout options, so it should be
> >> relatively easy to implement on top of it, in a cross-platform manner.
> >> 
> >> Jose
> >> _______________________________________________
> >> mesa-dev mailing list
> >> mesa-dev at lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> > 
> > Since I added that warning message...
> > 
> > There are no timeouts in python 2 on windows, even with 3rd party packages.
> > 
> > For python 3 to properly handle timeouts you need to kill the process that
> > exceeds the expected timeout. Basically when timeout expires the sub-process
> > communicate call stops blocking, but doesn't actually kill the process. On Linux
> > we ask the process to terminate, wait 3 seconds and then SIGKILL it.
> > 
> > I don't know how to do that on windows, so I didn't implement it and instead
> > windows users get a warning. If someone with a basic grasp of how to kill a
> > process on windows wanted that functionality it probably wouldn't be too hard to
> > implement.
> > 
> > Alternatively there are constructs that are only in python 3 that do the killing
> > for you, on both Windows and Linux, but they don't have a python 2 equivalent.
> > 
> Hmm..  Since the current code has special cases between python 2/3 and windows/linux, finding a cross-platform method for both OSes seems like a “nice to have” at this point, although desirable.
> 
> I’ll see if I can find a quick fix for this.
> 
> Thank you!
> 
> George
> 
> > Dylan
> 

You could have a look at framework/test/base.py, the logic is in there. I don't
think it would really be that much code to add to that mess, and we could always
delete it whenever we finally decide that we don't care about python 2 anymore.

Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20171010/57425957/attachment.sig>


More information about the mesa-dev mailing list