Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/Development/Incubator/Extensions/DatabasePlatformPromotion"

(New page: == Database Platform Promotion == ''under construction'' For a contributed DatabasePlatform to be included in EclipseLink it should pass some basic tests and provide detailed documentati...)
 
(Test Suite)
Line 95: Line 95:
 
===Test Suite===
 
===Test Suite===
  
We would like to set up a way of building a regression test suite for each database platform that contains just the tests that are expected to pass.
+
The end goal of this exercise is to build up the list of tests that is expected to pass on a particular database and create a test suite that includes all those tests so the suite for a particular platform can be easily run.  This goal will likely be deferred until we have added some contributed database platforms and have accumulated some knowledge about what works for best for the community.

Revision as of 15:10, 22 December 2009

Database Platform Promotion

under construction

For a contributed DatabasePlatform to be included in EclipseLink it should pass some basic tests and provide detailed documentation about what can be expected to work on the contributed database platform.

Basic Test Suites required for inclusion

In order to be included in the product it must be possible to run our SRG tests without failures. Failures can be avoided by either making tests pass, or assessing failures and determining that a test cannot be made to pass because of limitations on the platform and altering the tests not to run for that platform.

The following suites must run without failures.

  • Core SRG
  • JPA SRG

Functionality Check List

In addition to passing SRG testing, a platform must be accompanied by documentation of what is expected to work. A check list of features must be included in the class comment that indicates that testing status of the following EclipseLink functionality. Testing Status could be one of the following - Succeeds, Succeds with Limitations, Fails, Untested

The following is the list of features and the tests that should be run to test the functionality. To say the feature works, the accompanying test should run successfully.

  • DDL Generation
    • Default runs of Core SRG and LRG cover actual DDL SQL
    • JPA - DDLGenerationJUnitTestSuite to test DDL generation in JPA
  • Outer Join - test list under construction
  • Subquery - test list under construction
  • Stored Procedure Calls - test list under construction
  • Stored Procedure Generation - test list under construction
  • Native Sequences/Identitier fields - test list under construction
  • JPA Bulk Update/Delete - test list under construction
  • Batch Reading - test list under construction
  • Batch Writing - test list under construction
  • Pessimistic Locking - test list under construction
  • First Result/Limit - test list under construction
  • Expression Framework - test list under construction
  • Delimiters - test list under construction
  • Auto Detection - test list under construction

Note: If a contributed DatabasePlatform replaces an existing DatabasePlatform, it must have a better success rate in our testing than the existing DatabasePlatform and pass all the tests the previous DataasePlatform passed

The following is a template for the class comment for a contributed platform:

/**
 *  FooPlatform
 *  Contributed and supported by: FooCompany
 *  Contributed under bug: xxxxxxxx
 *  @author authorName
 *  @since EclipseLink 1.0
 *
 *  Developed on FooDB version 1.0
 *  SRG Passes on FoodDB version 1.1, 1.2, 2.0
 *  
 *  Feature Testing
 *  ---------------
 * - DDL Generation - Succeeds
 * - Outer Join - Succeeds
 * - Subquery - Succeeds with Limitations
 * - Stored Procedure Calls - Untested
 * - Stored Procedure Generation - Untested
 * - Native Sequences/Identitier fields - Succeeds with Limitations
 * - JPA Bulk Update/Delete - Succeeds
 * - Batch Reading - Succeeds
 * - Batch Writing - Fails
 * - Pessimistic Locking - Succeeds with Limitations
 * - First Result/Limit - Succeeds
 * - Expression Framework - Succeeds with Limitations
 * - Delimiters - Succeeds
 * - Auto Detection - Succeeds
 *
 * Additional Functionality
 * ------------------------
 * - Additional Expression Operators: operator1, operator2
 * 
 * Limitations
 * -----------
 * - Subqueries with joins to the outer query are not supported
 * - Identity fields are not supported
 * - Pessimistic Locking with WAIT is not supported
 * - JPQL Simple Case is not supported
 * - Date Arithmetic is not supported in expressions
 */

Certification

Certification of a DatabasePlatform for a particular release requires that our full suite of tests is run successfully against that DatabasePlatform with the bits for that release. Generally, that means the following tests run without errors:

  • Core LRG
  • JPA LRG
  • Server testing on at least one Java EE server


Test Suite

The end goal of this exercise is to build up the list of tests that is expected to pass on a particular database and create a test suite that includes all those tests so the suite for a particular platform can be easily run. This goal will likely be deferred until we have added some contributed database platforms and have accumulated some knowledge about what works for best for the community.

Back to the top