Hello,
As a continued effort towards improving Derby quality, I wish to
contribute some long running system tests for Derby. Here is
a brief description of each:
- Single Table -- This test run with a maximum of 250 connections and
the database has only one table with all supported data types and
corresponding indices.
Duration of the test is 2 weeks and is usable for checking issues
regarding memory, locking and concurrency
- Scenario Test - This test is a mail client application where derby is
used as the client database. It is a multi threaded test with 4 threads
that mimics doing tasks like
user activity, purging, backup and refresh(syncing). Duration of each
transaction is calculated and can be run in both embedded and n/w server
mode. The run time is configurable.
- Network Server Test - similar to Single table using Network
Server/Client and all possible data types in a single table and IUD
transactions
along with triggers, online back-up/restore, re-encryption. The run
time is configurable
- Optimizer tests - An assortment of test scenarios using multi-level
views, aggregated views, complex joins, etc that verifies the
recent DERBY-805/DERBY-1205 optimizer fixes for push-down predicates.
Typical runtime is approximately 2 days (depends upon the derby
performance)
I don't think these tests can be run as functional tests on a nightly
basis. Some of these could be run for weeks and would be
useful to test release candidates. I suggest
org.apache.derbyTesting.system.tests.<name of the test> as a location
for these tests.
I would also suggest a new ant target to build these classes. So that
the simple ant command do not have to
compile these test classes everytime. If any one wants them, they could
run it as ant <target name>.
Also, I was considering opening a JIRA issue for contributing each of of
them, but am open to suggestions.
Do let me know if there are any other comments.
Thanks,
Manjula.