[Piglit] [PATCH] framework: Remove 'abort' and 'trap' results in favor of 'crash'.
Marek Olšák
maraeo at gmail.com
Fri Apr 20 14:14:26 PDT 2012
Sounds good to me.
Acked-by: Marek Olšák <maraeo at gmail.com>
Marek
On Fri, Apr 20, 2012 at 11:08 PM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> While distinguishing between 'fail' and 'crash' in extremely useful,
> I've never encountered a situation where 'abort' or 'trap' offers more
> insight than simply calling it a 'crash'.
>
> We may as well simplify things a bit.
>
> Cc: Marek Olšák <maraeo at gmail.com>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
> framework/exectest.py | 28 +++++++++++++++-------------
> framework/summary.py | 20 +++++++-------------
> piglit-summary-html.py | 10 ++--------
> templates/index.css | 8 ++++----
> 4 files changed, 28 insertions(+), 38 deletions(-)
>
> That said, I don't think I've ever actually seen 'trap' or 'abort' on i965.
> Is this a more useful distinction for the Radeon or Nouveau developers?
>
> diff --git a/framework/exectest.py b/framework/exectest.py
> index 7877adb..2052a4c 100644
> --- a/framework/exectest.py
> +++ b/framework/exectest.py
> @@ -85,19 +85,21 @@ class ExecTest(Test):
> results['result'] = 'fail'
> out = self.interpretResult(out, results)
>
> - if proc.returncode == -5:
> - results['result'] = 'trap'
> - elif proc.returncode == -6:
> - results['result'] = 'abort'
> - elif proc.returncode in (-8, -10, -11):
> - results['result'] = 'crash'
> - elif proc.returncode == -1073741819:
> - # 0xc0000005
> - # Windows EXCEPTION_ACCESS_VIOLATION
> - results['result'] = 'crash'
> - elif proc.returncode == -1073741676:
> - # 0xc0000094
> - # Windows EXCEPTION_INT_DIVIDE_BY_ZERO
> + crash_codes = [
> + # Unix: terminated by a signal
> + -5, # SIGTRAP
> + -6, # SIGABRT
> + -8, # SIGFPE (Floating point exception)
> + -10, # SIGUSR1
> + -11, # SIGSEGV (Segmentation fault)
> + # Windows:
> + # EXCEPTION_ACCESS_VIOLATION (0xc0000005):
> + -1073741819,
> + # EXCEPTION_INT_DIVIDE_BY_ZERO (0xc0000094):
> + -1073741676
> + ]
> +
> + if proc.returncode in crash_codes:
> results['result'] = 'crash'
> elif proc.returncode != 0:
> results['note'] = 'Returncode was %d' % (proc.returncode)
> diff --git a/framework/summary.py b/framework/summary.py
> index c97ae9f..50ba58b 100644
> --- a/framework/summary.py
> +++ b/framework/summary.py
> @@ -27,13 +27,11 @@ import core
> ##### Vector indicating the number of subtests that have passed/failed/etc.
> #############################################################################
> class PassVector:
> - def __init__(self, p, w, f, s, t, a, c):
> + def __init__(self, p, w, f, s, c):
> self.passnr = p
> self.warnnr = w
> self.failnr = f
> self.skipnr = s
> - self.trapnr = t
> - self.abortnr = a
> self.crashnr = c
>
> def add(self, o):
> @@ -41,8 +39,6 @@ class PassVector:
> self.warnnr += o.warnnr
> self.failnr += o.failnr
> self.skipnr += o.skipnr
> - self.trapnr += o.trapnr
> - self.abortnr += o.abortnr
> self.crashnr += o.crashnr
>
>
> @@ -82,13 +78,11 @@ results is an array of TestResult instances, one per testrun
> result.status = result['result']
>
> vectormap = {
> - 'pass': PassVector(1,0,0,0,0,0,0),
> - 'warn': PassVector(0,1,0,0,0,0,0),
> - 'fail': PassVector(0,0,1,0,0,0,0),
> - 'skip': PassVector(0,0,0,1,0,0,0),
> - 'trap': PassVector(0,0,0,0,1,0,0),
> - 'abort': PassVector(0,0,0,0,0,1,0),
> - 'crash': PassVector(0,0,0,0,0,0,1)
> + 'pass': PassVector(1,0,0,0,0),
> + 'warn': PassVector(0,1,0,0,0),
> + 'fail': PassVector(0,0,1,0,0),
> + 'skip': PassVector(0,0,0,1,0),
> + 'crash': PassVector(0,0,0,0,1)
> }
>
> if result.status not in vectormap:
> @@ -131,7 +125,7 @@ results is an array of GroupResult instances, one per testrun
> # Perform some initial annotations
> for j in range(len(self.results)):
> result = self.results[j]
> - result.passvector = PassVector(0, 0, 0, 0, 0, 0, 0)
> + result.passvector = PassVector(0, 0, 0, 0, 0)
> result.testrun = self.summary.testruns[j]
>
> # Collect, create and annotate children
> diff --git a/piglit-summary-html.py b/piglit-summary-html.py
> index d5ec0e5..d0e49f3 100755
> --- a/piglit-summary-html.py
> +++ b/piglit-summary-html.py
> @@ -173,16 +173,10 @@ def buildGroupSummaryTestrun(groupresult):
> warnnr = groupresult.passvector.warnnr
> failnr = groupresult.passvector.failnr
> skipnr = groupresult.passvector.skipnr
> - trapnr = groupresult.passvector.trapnr
> - abortnr = groupresult.passvector.abortnr
> crashnr = groupresult.passvector.crashnr
> - totalnr = passnr + warnnr + failnr + trapnr + abortnr + crashnr # do not count skips
> + totalnr = passnr + warnnr + failnr + crashnr # do not count skips
>
> - if trapnr > 0:
> - status = 'trap'
> - elif abortnr > 0:
> - status = 'abort'
> - elif crashnr > 0:
> + if crashnr > 0:
> status = 'crash'
> elif failnr > 0:
> status = 'fail'
> diff --git a/templates/index.css b/templates/index.css
> index a89bd1e..207465e 100644
> --- a/templates/index.css
> +++ b/templates/index.css
> @@ -48,7 +48,7 @@ td {
> background-color: #20ff20;
> }
>
> -.trap, .abort, .crash {
> +.crash {
> text-align: right;
> background-color: #000000;
> color: #ffffff;
> @@ -74,7 +74,7 @@ td {
> background-color: #50ff50;
> }
>
> -.trapa, .aborta, .crasha {
> +.crasha {
> text-align: right;
> background-color: #141414;
> color: #ffffff;
> @@ -100,12 +100,12 @@ td {
> background-color: #40ff40;
> }
>
> -.trapb, .abortb, .crashb {
> +.crashb {
> text-align: right;
> background-color: #0a0a0a;
> color: #ffffff;
> }
>
> -td.trapa a, td.trapb a, td.aborta a, td.abortb a, td.crasha a, td.crashb a {
> +td.crasha a, td.crashb a {
> color: #ffffff;
> }
> --
> 1.7.10
>
More information about the Piglit
mailing list