I also do not believe running derbyall is a requirement currently.

So far I run derbyall whenever I can. Recently for some patches that are obviously only affecting backup code I have been running storeall, and then paying attention to the tinderbox runs to make sure I didn't
miss anything.

It is obvious from the kinds of issues we have seen over the past few
months that no matter how much you test there may be an issue on a platform that you don't have access to. So a committer should not only worry about how much tests he can run, but should try to help out watching the change in test results after a commit.

I believe the minimum set of tests a commiter should run is what they
believe is the "right" set of tests.  For me I would say most of my
commits I have run derbyall, some I have run just a single suite, and
some test/javadoc changes just that test or javadoc build.

Daniel John Debrunner (JIRA) wrote:
[ http://issues.apache.org/jira/browse/DERBY-1116?page=comments#action_12370592 ]
Daniel John Debrunner commented on DERBY-1116:
----------------------------------------------

Is there any actual requirement to run derbyall at the moment?

I think a goal for everyone is to have derbyall running clean at all times on 
all platforms, which is not quite the same.

I found this thread which talks about what folks do:
http://www.nabble.com/Running-derbyall-before-submitting-patches-t30537.html#a86475

I think I've mentioned before that expecting people to run derbyall on all 
platforms is unrealistic and therefore not a requirement,
and running derbyall on a single common platform/jdk is sufficient, but I'm not 
sure anyone has said it must be done.

If we do have a mandated smaller subset then we would need some guidelines on 
what to do when there are multiple commits,
each that ran the minimal set, but we end up with several derbyall failures. 
How do we (who?)  match failures to commits, how do we decide
which commit to revert? If one of those commits ran derbyall before 
contributing, then is that change blessed and the others suspect?

I've always assumed a model of run tests the contributor thinks are sufficient, 
maybe for some changes it's derbyall, for some it's none, for modifying
a single test it's that test, for xa code it's the xa suite and the jdbcapi 
suite, etc. etc.  Having the great tinderbox and regression testing is a huge 
help here, as you say, to running reduced testing. The downside is when 
multiple failures exist due to reduced contributor testing then it can effect a 
lot of other folks, in different time-zones. If I break derbyall at 5pm pacific 
time then it can effect the Europeans and Tomihito for a complete day until I 
come back the next day and address it, unless someone else has the itch to fix 
my mistake.

I didn't understand your comment about "being tempted to run a smaller set of tests, 
but being blocked by others running derbyall".
Is this because you are sharing test machines or something else?





Define a minimal acceptance test suite for checkins
---------------------------------------------------

        Key: DERBY-1116
        URL: http://issues.apache.org/jira/browse/DERBY-1116
    Project: Derby
       Type: Improvement
 Components: Test
   Reporter: David Van Couvering
   Priority: Minor


Now that we have an excellent notification system for tinderbox/nightly 
regression failures, I would like to suggest that we reduce the size of the 
test suite being run prior to checkin.   I am not sure what should be in such a 
minimal test, but in particular I would like to remove things such as the 
stress test and generally reduce the number of tests being run for each 
subsystem/area of code.
As an example of how derbyall currently affects my productivity, I was running 
derbyall on my machine starting at 2pm, and by evening it was still running.  
At 9pm my machine was accidentally powered down, and this morning I am 
restarting the test run.
I have been tempted (and acted on such temptation) in the past to run a smaller 
set of tests, only to find out that I have blocked others who are running 
derbyall prior to checkin.  For this reason, we need to define a minimal 
acceptance test (MATS) that we all agree to run prior to checkin.
One could argue that you can run your tests on another machine and thus reduce 
productivity, but we can't assume everybody in the community has nice big test 
servers to run their tests on.
If there are no objections, I can take a first pass at defining what this test 
suite should look like, but I suspect many others in the community have strong 
opinions about this and may even wish to volunteer to do this definition 
themselves (for example, some of you who may be working in the QA division in 
some of our Big Companies :) ).



Reply via email to