Hi,

We could emulate the same thing (the repeating beaster) with pure Ant:

Just repeat the "test" target, which can be done using ant-contrib's "for" task 
or (much simplier) a groovy script using antcall on the test target.
Should we provide this "beaster" in common-build?

"ant beast-tests -Dbeast.iter=100 -Dtestcase=..."

Very easy to implement and makes it easier to use for the python haters - and 
comes embedded...

Uwe

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: u...@thetaphi.de


> -----Original Message-----
> From: Michael McCandless [mailto:luc...@mikemccandless.com]
> Sent: Friday, August 08, 2014 3:48 PM
> To: Lucene/Solr dev
> Subject: Re: Test iterations
> 
> On Fri, Aug 8, 2014 at 9:35 AM, Uwe Schindler <u...@thetaphi.de> wrote:
> > Hi Dawid,
> >
> > Thanks for the very good explanation! Indeed the main problem with
> tests.iters is the static initializers. Maybe put that explanation into the 
> Wiki! I
> sometimes also need to remember it, so it should be documented.
> >
> > One (only theoretical) way to solve the whole thing could be:
> > Load the class(es) in a separate classloader for every repeated
> > execution,... but of course this will very fast blow up your permgen
> > (java 6, 7) or anything else we don't know about (java 8). In fact the
> > separate classloader approach is not different from Mike's scripts,
> > just that Mike's script creates a new classloader by forking a new
> > JVM. In fact I don't think the separate classloader approach would be
> > much faster, because the class clones will all have separate
> > compilation paths in Hotspot, so Hotspot cannot share the same
> > assembler code. So except the JVM startup time, you gain nothing. Just
> > permgen issues :-)
> 
> The big thing the python beasting scripts avoids is all the ant overhead to 
> just
> get to the point where it actually spawns the JVM to run the test.  Really,
> that's all the beasting script does: directly spawn the JVM on the test runner
> (after running "ant test-compile" up
> front) and then parse its output/events.
> 
> The distributed test runner, which uses rsync/ssh to run tests on N machines,
> is very different from the beasting script: it runs all Lucene's tests 
> (instead of
> a single test over and over) across N JVMs on M machines.  It "cheats" by
> taking the union of all CLASSPATHs ...
> but this is a huge win because it means all testing is fully concurrent, not 
> just
> concurrent within one module.  This script can also repeat, which means once
> all lucene tests finish, re-en-queue all of them again.
> 
> Mike McCandless
> 
> http://blog.mikemccandless.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional
> commands, e-mail: dev-h...@lucene.apache.org


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

Reply via email to