Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Michael Elizabeth Chastain <mec@shout.net>
To: fnasser@redhat.com
Cc: ac131313@cygnus.com, drow@mvista.com,
	gdb-patches@sources.redhat.com, rob@welcomehome.org
Subject: Re: RFC: KFAIL DejaGnu patch
Date: Sun, 07 Apr 2002 18:41:00 -0000	[thread overview]
Message-ID: <200204080140.g381ehg18770@duracef.shout.net> (raw)

More comments ...

gdb.c++/cplusfuncs.exp has a good place for some KFAIL's.  Grep for
hairyfunc5, hairyfunc6, hairyfunc7.  They are associated with PR gdb/19.
I added some setup_kfail's to that and it appears to work okay,
except that the bug id is not printed on xpass.

Okay, here's some proofreading comments.

Michael C

=== Distinction between XFAIL and KFAIL

An XFAIL is:

  A test is expected to fail in some environment(s) due to some
  bug in the environment ...

And a KFAIL is:

  A test is known to fail in some environment(s) due to a known bug
  in the tool being tested (identified by a bug id string).

I like this distinction.  The "K" letter means that it is a known problem
inside the tool, and the "X" letter means that it is an expected problem
outside the tool.

That makes it weird for a KFAIL to turn into an XPASS.  I've got test
results here with XPASS for the gcc v2 compilers and KFAIL for the gcc
v3 compilers.  I really want KFAIL/KPASS, not KFAIL/XPASS.

A specific note: proc record_test has this code:

  XPASS {
      set exit_status 1
      if { $xfail_prms != 0 } {
	  set message [concat $message "\t(PRMS $xfail_prms)"]
      }
  }

In fact that code could use a little refactoring, because
UNRESOLVED/UNSUPPORTD/UNTESTED all have the same code to pick up
kfail_prms and xfail_prms.

So an XPASS that comes from setup_xfail will have a PRMS id,
but an XPASS that comes from setup_kfail will not.

=== KFAIL as a way of hiding problems

Later on in the documentation:

  @item KFAIL
  ...
  This exists so that, after a bug is identified and properly registered
  in a bug tracking database (Gnats, for instance), the count of failures
  can be kept as zero.  Having zero has a baseline in all platforms allow
  the tool developers to immediately detect regressions caused by changes
  (which may affect some platforms and not others).

Conceptually, there is a disconnect here.  To me, KFAIL means: "there
is a problem report associated with this test".  The problem could be
minor, or it could be a showstopper.  But you say that KFAIL means:
"tool developers can ignore this test when they look for regressions".

I think this is fundamentally wrong.  The right way to look for
regressions is to compare before-and-after test runs.  gdb.sum files
are already pretty good for this; you can just diff them.

I see two practical problems that come out of this wrongness:

(1) If I find a showstopper regression, such as PR gdb/379, and I mark
    it with setup_kfail (as I should), then someone who is using the
    "# of FAILs" metric is not going to see the regression.

(2) If the test suite has a significant number of setup_kfail (and
    it should), then a regression bug may manifest as a transition from
    PASS -> KFAIL.  I will see that because my regression reports look
    at all transitions.  But someone looking at "# of FAILs" will not see
    this transition, so they won't see the regression.

I believe we already have this problem with XFAIL.  People conflate
the idea of "this test fails due to an external problem" with the idea
"this failure is not important enough to care about at this time".

=== ChangeLog entry

DejaGnu 1.4.2 has a ChangeLog, so the patch needs a ChangeLog entry.

=== Tests

testsuite/ needs some tests for the new KFAIL feature.

=== lib/dg.exp

lib/dg.exp has a bunch of XFAIL stuff, so it needs KFAIL stuff.


             reply	other threads:[~2002-04-08  1:41 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-04-07 18:41 Michael Elizabeth Chastain [this message]
  -- strict thread matches above, loose matches on Subject: below --
2002-04-09  9:13 Michael Elizabeth Chastain
2002-04-09  9:34 ` Rob Savoye
2002-04-08 11:56 Michael Elizabeth Chastain
2002-04-08 10:34 Michael Elizabeth Chastain
2002-04-08 11:38 ` Daniel Jacobowitz
2002-04-09  7:50 ` Rob Savoye
2002-04-08  9:57 Michael Elizabeth Chastain
2002-04-07  9:10 Michael Elizabeth Chastain
2002-04-06 14:40 Michael Elizabeth Chastain
2002-04-05 17:57 Michael Elizabeth Chastain
2002-04-05 16:51 Michael Elizabeth Chastain
2002-04-05  9:53 RFC: KFAILs [Was: [RFA/mi-testsuite] XFAIL mi*-console.exp] Michael Elizabeth Chastain
2002-04-05 16:32 ` RFC: KFAIL DejaGnu patch Fernando Nasser
2002-04-05 17:05   ` Andrew Cagney
2002-04-07 16:25     ` Rob Savoye
2002-04-05 17:10   ` Daniel Jacobowitz
2002-04-05 17:40     ` Andrew Cagney
2002-04-08  8:37     ` Fernando Nasser
2002-04-07 16:29   ` Rob Savoye
2002-04-07 22:05     ` Eli Zaretskii
2002-04-08  8:22       ` Rob Savoye
2002-04-08  8:52         ` Fernando Nasser
2002-04-08  9:01           ` Rob Savoye
2002-04-08  8:41     ` Fernando Nasser
2002-04-08  9:00       ` Rob Savoye
2002-04-08 13:55         ` Andrew Cagney
2002-04-08 16:21           ` Rob Savoye
2002-04-08 16:34             ` Andrew Cagney
2002-04-08 16:48               ` Rob Savoye
2002-04-08 16:58                 ` Andrew Cagney
2002-04-08 17:09                   ` Rob Savoye
2002-04-08 23:58                     ` Eli Zaretskii
2002-04-09  7:38                       ` Rob Savoye
2002-04-08 23:53               ` Eli Zaretskii
2002-04-09  7:06                 ` Daniel Jacobowitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200204080140.g381ehg18770@duracef.shout.net \
    --to=mec@shout.net \
    --cc=ac131313@cygnus.com \
    --cc=drow@mvista.com \
    --cc=fnasser@redhat.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=rob@welcomehome.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox