On 5/26/05, Daniel John Debrunner <[EMAIL PROTECTED]> 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...)
