db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Myrna van Lunteren <m.v.lunte...@gmail.com>
Subject Re: J9 Foundation & RunSuite
Date Thu, 26 May 2005 21:24:59 GMT
On 5/26/05, Daniel John Debrunner <djd@debrunners.com> wrote:

> Myrna van Lunteren wrote:
> > Try the attached patch. 
> Thanks that moves me further, now tests that pass when run with RunTest
> directly, fail when run in a suite. I think it's due to the way
> properties are (not) being passed.


 Can you confirm something for me?
> When using RunTest directly another JVM is usually spawned to run the
> actual test. Ie.
> java org.apache.derbyTesting.functionTests.harness.RunTest <test>
> spawns another JVM to run the <test>

 yes. Unless one of the properties you define is -Duseprocess=false, RunTest 
does a Runtime.getRuntime().exec(cmd), which starts a subprocess.
In fact, before actually running that, it quickly do another 
Runtime.getRuntime().exec to run sysinfo.
> From the verbose output of RunSuite, it seems RunSuite spawns a JVM to
> run RunTest which will then spawn a JVM to run the actual test, ie.
> java org.apache.derbyTesting.functionTests.harness.RunSuite <suite>
> spawns for each <test> in <suite>
> java org.apache.derbyTesting.functionTests.harness.RunTest <test>
> spawns another JVM to run the <test>
> Is this correct for RunSuite? I'd just assumed that RunSuite called
> RunTest directly as Java code.

 No, from looking at the code, RunSuite actually calls RunList for every 
subsuite and (unless you've got -Duseprocess=false set) RunList will kick 
off it's own Runtime.getRuntime().exec(cmd) where cmd will be the command to 
do <jvmexecutable> <properties> 
org.apache.derbyTesting.functionTests.harness.RunTest <testname> for every 
 So, without useprocess=false, you'll always have 3 processes running, one 
for RunSuite, one for RunTest, and one for the actual test (e.g. 
org.apache.derby.tools.ij or e.g. 
 The worst trouble in passing on properties is often between RunSuite and 
Which properties aren't being passed on, the bootclasspath? There's the 
-Dbootcp= flag that I hacked in specifically to enable the harness to pass 
on this special j9 jvmflag that do not fall in the -Xmx### format (so does 
not work with the jvmflags properties)...Or are the dataSource properties 
not getting passed on?
Could you possibly run with -Duseprocess=false? (I've not run the entire 
derbyall that way, so there's probably some failures...)

View raw message