Thanks Kenney!

Please make sure to merge that up to the 2.3.x branch - this will close out SUREFIRE-335.

Cheers,
Brett

On 04/06/2007, at 9:43 PM, Kenney Westerhof wrote:



Kenney Westerhof wrote:

Brett Porter wrote:

[snip]

However, I'm rethinking setting it to default (which I did) - seems best to retain it as false. I did it because of another regression where clases in the system classloader weren't found in tests by default any more. I think that's just an omission in creating the isolated classloader that can be fixed differently.

I'm setting it back to false now.

I found the cause of the regression - due to the fact that the default for useSystemClassloader was true,
this bug was made evident.

The combination of forkmode=never and useSystemClassLoader produced illegal classloaders. Surefirebooter itself didn't check wheter it was forking, and just used the system classloader, even if it wasn't forking. Ofcourse, when it uses the system classloader, it can't add the testcases. The usesystemclassloader basically means 'don't construct a classloader for the tests, they
are already present in the system classloader'.

I refactored surefirebooter to include the usesystemclassloader in the forkConfiguration. the 'isUseSystemClassLoader' method checks wheter forking is enabled in addittion to the useSCL flag.

I think this fixes a lot of regressions.

Note: by moving the flag to the fork configuration, i have to construct a new forkconfig in main() otherwise it NPE's. I set the forkmode to never and the useSystemCL flag accordingly. In the runsuitesinprocess
only the forkconfig.useSystemCL is used.
Design-wise, the configuration used in the runSuitesInProcess methods should be different from the global config and ideally the useSystemCL should be present globally, or wrapped in another class. However, having 2 places to look for a flag is error prone. I know this design may not be the best avail, but at least now there's no difference anymore between calling surefirebooter from main() or via run().

I deployed new snapshots of surefire for people to test. I hope this fixes your regressions.

-- Kenney

Reply via email to