Update: Thanks for Sian's original patch.
Here is an updated patch for derby on which Harmony passes 97%. derby.patch
It focuses on:
- Add a Harmony support class to identify the Harmony VME.
2. Add a j9_23 support class that is required for Harmony IBM VME.(drlvm needs jdk112, which should override setSecurityProps like j9 series. Or else with security manager installed, drlvm will also crash during test.)
3.Modification in RunTest,RunSuite and SysInfoLog, which prevents to treat Harmony IBM VME as "j9" VM but like normal RI VM.
4.Modification in dbManagerLimits_app.properties,wisconsin_app.properties and triggerStream_app.properties to delete currently not acceptable VM options.
Result:
467 Tests Run
97% Pass (454 tests passed)
3% Fail (13 tests failed)
5 Suites skipped
Currently Fails:
derbyall/derbyall.fail:lang/dcl.sql derbyall/derbyall.fail:tools/dblook_test.java derbyall/derbyall.fail:tools/iepnegativetests.sql derbyall/derbyall.fail:i18n/iepnegativetests_ES.sql derbyall/encryptionAll/encryptionAll.fail:store/aes.sql derbyall/encryptionAll/storemats.fail:store/streamingColumn.java derbyall/storeall/storeall.fail:store/BootAllTest.junit derbyall/storeall/storemats.fail:store/streamingColumn.java /derbyall.fail:nist/dml022.sql /derbyall.fail:nist/dml090.sql /derbyall.fail:nist/dml014.sql /derbyall.fail:nist/dml104.sql /derbyall.fail:nist/dml160.sql
Besides, some testcase fails even on RI. I exclude a "derbynetclientmats" test suit since it will hang both RI and Harmony.
How to test: 1.Download source code from Derby svn http://svn.apache.org/repos/asf/db/derby/code/trunk
2.Apply the derby.patch to it.
3.Refer to Derby's instructions to build source code as well as tests. (ant/ant testing)
http://db.apache.org/derby/derby_downloads.html#How+to+build+Derby
4.Set CLASSPATH to DERBY_ROOT/classes, jakarta-oro-2.0.8.jar and junit.jar.
The simplest test is
java org.apache.derbyTesting.functionTests.harness.RunTest lang/supersimple.sql
If it passes, you will get supersimple.pass file in the directory of running.
To run all test:
java org.apache.derbyTesting.functionTests.harness.RunSuite derbyall
You will get derbyall.report, derbyall.fail, derbyall.pass which include information about tests.