[Piglit] [PATCH] add new --ignoreStderr option to piglit-run.py
Jose Fonseca
jfonseca at vmware.com
Fri Apr 19 03:33:30 PDT 2013
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.
Jose
----- 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