Update: Thanks for Sian's original patch.

Here is an updated patch for derby on which Harmony passes 97%. derby.patch

It focuses on:

  1. 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.

  • No labels