[racket-dev] DrDr Feature Request

From: Vincent St-Amour (stamourv at ccs.neu.edu)
Date: Mon Aug 8 11:56:43 EDT 2011

I love DrDr, but there's a small thing that annoys me about it.

Some tests are prone to intermittent failures. For example, some
benchmarks need to create a file, and several benchmarks share the
same file, which leads to race conditions. Similarly, some DrRacket
tests sometimes fail for focus reasons.

So, whenever someone pushes, they may get failures from these tests,
then have go look at the actual errors, and try to figure out if they
actually broke something or not.

(Or, they ignore these failures, which is bad.)

Here are two potential solutions. Let's assume that I just pushed
something, and a test started failing.

- Have DrDr send me email for every push about the broken test for as
  long as it fails. If I get email more than once, it's likely that I
  actually broke something. If I only get email once, the problem went
  away on its own, and was likely an intermittent failure.

- Have the possiblity to flag some tests as intermittent (something
  like `drdr:random'), and only report failures for these tests if
  they fail twice in a row. This would reduce the amount of noise,
  since I expect most of these tests to pass most of the time. Actual
  breakage would still be detected, since it's unlikely that such
  failures would go away on their own. Detection would happen one push
  late, but that shouldn't be too much of an issue.

  Or, maybe only notify the pusher after two failures in a row, but
  notify the responsible person right away.

Any thoughts?

Vincent


Posted on the dev mailing list.