On 05/31/10 10:24, Stephan Bergmann wrote:
Just a reminder.  As announced
(<http://www.openoffice.org/servlets/ReadMsg?list=interface-announce&msgNo=1266>
"cwscheckapi replaced with subsequenttests"), subsequenttests is the new
tool to run all kinds of OOo developer tests (that require a complete
installation set to test against), particularly replacing cwscheckapi.

With CWS sb120 integrated in DEV300_m80, the framework and tests will
hopefully be reliable enough for actual use, see
<http://tools.openoffice.org/servlets/ReadMsg?list=tinderbox&msgNo=360>
"new step for buildbots."

Developers are encouraged to run subsequenttests now, similarly to how
they ran cwscheckapi in the past. See the first link above for details.

Due to a code change in CWS sb120, Gregor's buildbot framework will no
longer patch away the subsequenttests step in DEV300_m80, so most of the
buildbots (those running on Gregor's framework) will automatically start
to include that step. There are apparently problems with X11 on some of
the bots (see the second link above), and there might still be sporadic
failures (see
<http://wiki.services.openoffice.org/w/index.php?title=Test_Cleanup#unoapi_Tests_2>),
potentially causing buildbot builds to go red. I leave it up to Gregor
to disable any test steps again that turn out to cause trouble; please
inform him about problems you encounter. (Due to vacation schedules, we
probably won't be able to track down those X11 problems for the next two
weeks.)

Unfortunately it seems impossible to stabilize the old test code and, even more so, OOo itself to the point that subsequenttests would be reliable enough to routinely run during every build. Experiments (with local machines on CWS sb123 and with buildbots at <http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Id=9754&OpenOnly=false&Section=Tests>) show that even if individual machines manage to successfully run subsequenttests 50, 60, times in a row, they all do fail sooner or later, without pattern (see the lengthy lists at <http://wiki.services.openoffice.org/wiki/Test_Cleanup#unoapi_Tests_2>).

The old, existing tests are definitely not useless (they do find errors in new code, occasionally). But they are obviously too fragile to tie the decision whether a build succeeded or failed to the random outcome of whether the tests succeeded or failed.

Therefore, I propose the following two things:

1 Keep the old tests for manual developer execution. With CWS sb123, they should be in a shape where they mostly work, so that a developer could run them to see whether they unearth any problems in newly written code. But, of course, this would occasionally need manual interpretation of the test results: If they fail just once, and re-running them succeeds, you probably hit one of those spurious failures unrelated to your new code. If they fail repeatedly, maybe even on multiple platforms, it smells like you broke something. There will be a Mechanism A to (manually) execute those tests.

2 Urge developers to write new, solid tests for new code or code under maintenance. These should typically be unit tests (i.e., should not require a complete OOo instance), which would have (at least) three a advantages over the old, qadevOOo based tests: They would run quickly, they would not suffer from OOo's fragility, and they could be run directly within the build process. There will be a Mechanism B to (automatically) execute those tests.

For the Mechanisms A and B: As long as those new tests are indeed all unit tests, Mechanism B is simply to build and execute the tests unconditionally from within the build system (as is, for example, already done in basegfx/test/). And that implies that Mechanism A can for now simply be the existing subsequenttests tool (which should then no longer be included in buildbot scripts, of course; and note that CWS sb129 adds a -k switch to subsequenttests, a la make, making it more useful with our sporadically failing tests).

If there ever crop up new tests that do require a complete OOo installation, we could then shift things as follows: Use plain subsequenttests as (part of) Mechanism B (and add it back to the buildbots) and add a switch like --extra to subsequenttests as Mechanism A, to run the old tests (whose makefiles would need to be adapted to only trigger on something like "$(OOO_SUBSEQUENT_TESTS)"=="extra" instead of "$(OOO_SUBSEQUENT_TESTS)"!="").

So, action items:

- Gregor, please remove the subsequenttests step from the buildbots again.

- All developers, write new tests.

-Stephan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.org
For additional commands, e-mail: dev-h...@openoffice.org

Reply via email to