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 
test.
 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. 
org.apache.derbyTesting.functionTests.lang.closed).
 The worst trouble in passing on properties is often between RunSuite and 
RunList...
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...)

Mime
View raw message