[Piglit] [PATCH] add new --ignoreStderr option to piglit-run.py
Brian Paul
brianp at vmware.com
Fri Apr 19 07:22:36 PDT 2013
On 04/19/2013 04:33 AM, Jose Fonseca wrote:
> Yes, assuming stderr messages are driver warnings seems a bit pedantic.
>
> We could do the other way around -- have a whitelist of warning regular expressions that we do known that are worrisome.
Yeah, that's an idea. But I think the only ones that comes to mind
are "Mesa implementation error" from _mesa_problem() and "Mesa
warning" from _mesa_warning().
"Mesa: User error" from _mesa_error() should be ignored since quite a
few piglit tests probe for GL errors and the message is always printed
for debug builds.
I guess I'd like to get some more opinions on this patch vs. just
removing the "stderr=warn" detection code entirely.
-Brian
> ----- Original Message -----
>> Normally, if anything unexpected is printed to stderr we report 'warn'
>> for the test result. The list of expected/allowed stderr message is
>> found at the end of core.py. It's a PITA to update this list and if
>> you've temporarily inserted extra debug code in Mesa/gallium it causes
>> piglit to just report 'warn' instead of the more useful 'pass/fail'.
>>
>> I wonder if anybody depends on stderr output for generating 'warn'
>> results. If not, maybe we should just remove that "feature" entirely.
>> ---
>> framework/core.py | 5 +++--
>> framework/exectest.py | 5 +++--
>> piglit-run.py | 7 ++++++-
>> 3 files changed, 12 insertions(+), 5 deletions(-)
>>
>> diff --git a/framework/core.py b/framework/core.py
>> index 08f442f..8d0d0a6 100644
>> --- a/framework/core.py
>> +++ b/framework/core.py
>> @@ -372,13 +372,14 @@ class TestrunResult:
>>
>> class Environment:
>> def __init__(self, concurrent=True, execute=True, include_filter=[],
>> - exclude_filter=[], valgrind=False):
>> + exclude_filter=[], valgrind=False, ignoreStderr=False):
>> self.concurrent = concurrent
>> self.execute = execute
>> self.filter = []
>> self.exclude_filter = []
>> self.exclude_tests = set()
>> self.valgrind = valgrind
>> + self.ignoreStderr = ignoreStderr
>>
>> """
>> The filter lists that are read in should be a list of string objects,
>> @@ -455,7 +456,7 @@ class Test:
>> try:
>> status("running")
>> time_start = time.time()
>> - result = self.run(env.valgrind)
>> + result = self.run(env.valgrind, env.ignoreStderr)
>> time_end = time.time()
>> if 'time' not in result:
>> result['time'] = time_end - time_start
>> diff --git a/framework/exectest.py b/framework/exectest.py
>> index b8d97b8..007cf49 100644
>> --- a/framework/exectest.py
>> +++ b/framework/exectest.py
>> @@ -55,7 +55,7 @@ class ExecTest(Test):
>> raise NotImplementedError
>> return out
>>
>> - def run(self, valgrind):
>> + def run(self, valgrind, ignoreStderr):
>> """
>> Run a test. The return value will be a dictionary with keys
>> including 'result', 'info', 'returncode' and 'command'.
>> @@ -161,7 +161,8 @@ class ExecTest(Test):
>> results['returncode'] = returncode
>> results['command'] = ' '.join(self.command)
>>
>> - self.handleErr(results, err)
>> + if not ignoreStderr:
>> + self.handleErr(results, err)
>>
>> else:
>> results = TestResult()
>> diff --git a/piglit-run.py b/piglit-run.py
>> index 6d6ec77..d6aadf0 100755
>> --- a/piglit-run.py
>> +++ b/piglit-run.py
>> @@ -94,6 +94,10 @@ def main():
>> parser.add_argument("--valgrind",
>> action = "store_true",
>> help = "Run tests in valgrind's memcheck")
>> + parser.add_argument("--ignoreStderr",
>> + action = "store_true",
>> + help = "Ignore messages printed to stderr (don't report 'warn'"
>> + " for unexpected stderr messages)")
>> parser.add_argument("testProfile",
>> metavar = "<Path to test profile>",
>> help = "Path to testfile to run")
>> @@ -155,7 +159,8 @@ def main():
>> exclude_filter=args.exclude_tests,
>> include_filter=args.include_tests,
>> execute=args.execute,
>> - valgrind=args.valgrind)
>> + valgrind=args.valgrind,
>> + ignoreStderr=args.ignoreStderr)
>>
>> # Change working directory to the root of the piglit directory
>> piglit_dir = path.dirname(path.realpath(sys.argv[0]))
>> --
>> 1.7.3.4
>>
>> _______________________________________________
>> Piglit mailing list
>> Piglit at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/piglit
>>
More information about the Piglit
mailing list