Marnie McCormack wrote:
Hi All,

I've just been looking at our continuous build failures from last night.
Which has led me to https://issues.apache.org/jira/browse/QPID-1339 and the
commit that went in against it last night.

Failures this end may or not be related (currently looking likely), but at
any rate it's over the line in the sand ....

- it is a monster commit and hits lots of different packages/logical areas
of the code base. The one liner in the JIRA which was created one hour
before the commit doesn't shed light on the work. I'm looking through each
change to work out what's the work really encompasses.
- are there tests for the changes/additions ? The JIRA should state how the
changes can be tested by the reviewer.

Historic precedent dictates that non-documented refactoring results in the
author having to document the purpose and design of the refactoring !

Hey Marnie,

First off apologies for breaking the build. I know how frustrating it can be to have to track down bugs in other people's commits.

Having discussed this particular case a bit on partychat there seem to be some issues with the current set of test profiles. The commit in question makes it through 'ant test -Dprofile=cpp' *and* 'ant test' with no reported failures. The protocol negotiation issue isn't evident until the client attempts to connect to an external (non VM) 0-8 or 0-9 broker, and unfortunately 'ant test' doesn't ever do this.

At the moment, our major test profiles (cpp, default, and java) are split up in terms of functional codepath. The cpp profile tests the 0-10 codepath, the default profile tests the 0-8/9 codepath against the in-VM broker, and the java profile tests the 0-8/9 codepath against an external broker. This means that to get even basic testing for all client codepaths, you need to run all 3 profiles. Unfortunately this takes about 45 minutes for even a reasonably beefy machine to churn through, so it's quite tempting to take shortcuts if you're reasonably confident that your code changes don't touch a particular codepath, and obviously its quite possible to be wrong!

One thing we could do to improve the situation is make the default 'ant test' run at least some tests against each external broker. This would guarantee that *all* the codepaths of the client get at least some basic test coverage from the default set of tests that are easy to run prior to each commit.

I do have some thoughts about your other concerns regarding the dev process, but I'll post separately on that topic.

--Rafael

Reply via email to