[Piglit] [PATCH 1/2] framework: fix wflinfo issues in opengl module
Dylan Baker
dylan at pnwbakers.com
Fri Nov 10 00:16:58 UTC 2017
Quoting Brian Paul (2017-11-09 15:16:32)
> 1. If the PIGLIT_PLATFORM string is 'mixed_glx_egl' we need to convert
> it to 'glx' so that wflinfo understands it.
>
> 2. Look in the piglit bin/ directory for the wflinfo.exe program.
> When we build piglit, we copy wflinfo.exe into the bin/ directory for
> packaging to avoid having to install waffle on target machines. If
> it's not found there, assume it's in our PATH just like before.
>
> v2: Pass env argument to subprocess.check_output() instead of using
> the find_wflinfo() function, per Dylan.
> ---
> framework/wflinfo.py | 31 +++++++++++++++++++++++++------
> 1 file changed, 25 insertions(+), 6 deletions(-)
>
> diff --git a/framework/wflinfo.py b/framework/wflinfo.py
> index b9a05f8..3849838 100644
> --- a/framework/wflinfo.py
> +++ b/framework/wflinfo.py
> @@ -24,11 +24,13 @@ from __future__ import (
> import errno
> import os
> import subprocess
> +import sys
>
> import six
>
> from framework import exceptions, core
> from framework.options import OPTIONS
> +from framework.test import piglit_test
>
>
> class StopWflinfo(exceptions.PiglitException):
> @@ -77,16 +79,34 @@ class WflInfo(object):
> """
> with open(os.devnull, 'w') as d:
> try:
> - raw = subprocess.check_output(
> - ['wflinfo',
> - '--platform', OPTIONS.env['PIGLIT_PLATFORM']] + opts,
> - stderr=d)
> + # Get the piglit platform string and, if needed, convert it
> + # to something that wflinfo understands.
> + platform = OPTIONS.env['PIGLIT_PLATFORM']
> + if platform == "mixed_glx_egl":
> + platform = "glx"
> +
> + if sys.platform in ['windows', 'cygwin']:
> + bin = 'wflinfo.exe'
> + else:
> + bin = 'wflinfo'
> +
> + cmd = [bin, '--platform', platform] + opts
> +
> + # setup execution environment where we extend the PATH env var
> + # to include the piglit TEST_BIN_DIR
> + new_env = os.environ
> + new_env['PATH'] = ':'.join([piglit_test.TEST_BIN_DIR,
> + os.environ['PATH']])
> +
> + raw = subprocess.check_output(cmd, env=new_env, stderr=d)
> +
> except subprocess.CalledProcessError:
> # When we hit this error it usually going to be because we have
> # an incompatible platform/profile combination
> raise StopWflinfo('Called')
> except OSError as e:
> # If we get a 'no wflinfo' warning then just return
> + print("wflinfo utility not found.")
maybe send this to stderr:
print("...", file=sys.stderr)
> if e.errno == errno.ENOENT:
> raise StopWflinfo('OSError')
> raise
> @@ -122,8 +142,7 @@ class WflInfo(object):
> try:
> ret = self.__call_wflinfo(const + [var])
> except StopWflinfo as e:
> - # This means tat the particular api or profile is
> - # unsupported
> + # This means the particular api or profile is unsupported
> if e.reason == 'Called':
> continue
> else:
> --
> 1.9.1
>
Either way,
Reviewed-by: Dylan Baker <dylan at pnwbakers.com>
-------------- 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/piglit/attachments/20171109/c3cf20cd/attachment.sig>
More information about the Piglit
mailing list