# Testing environment properties
# Set your target database properties here or give it by -Dtest.properties=file option


# jdbc.driver.jar=../../../extension.oracle.lib.external/ojdbc6.jar
# db.driver=oracle.jdbc.OracleDriver
# db.url=jdbc:oracle:thin:@localhost:1521:DB
# db.user=user
# db.pwd=password
# db.platform=org.eclipse.persistence.platform.database.OraclePlatform

## Symfoware
#jdbc.driver.jar=${extensions.depend.dir}/fjsymjdbc4.jar
#db.driver=com.fujitsu.symfoware.jdbc.SYMDriver
#db.url=jdbc:symford://symfodb:56001/TESTDB01;ctuneparam='CLI_ISOLATION_WAIT=(REJECT)'
#db.user=symfouser
#db.pwd=symfopwd
#db.platform=org.eclipse.persistence.platform.database.SymfowarePlatform
#additional.jvmargs=-Declipselink.test.toggle-fast-table-creator=true

# Logging option for debugging
logging.level=info
# logging.level=finest
# logging.level=off
# This is used to translate the 9.0.4 format sessions.xml resources.
logging.boolvalue=false

# Security manager options, switch from ignore to use a security manager
test.security-manager=-Dignore
# test.security-manager=-Djava.security.manager
test.security-manager.policy=-Dignore
# test.security-manager.policy=-Djava.security.policy=./java.policy.allpermissions

# Test class to be run.
test.class=org.eclipse.persistence.testing.tests.TestRunModel
# test.class=org.eclipse.persistence.testing.tests.feature.FeatureTestModel
# test.class=org.eclipse.persistence.testing.tests.simultaneous.SimultaneousTestsModel
# test.class=org.eclipse.persistence.testing.tests.SRGTestModel

# Test runner properties.
run.dir=run
report.dir=report

# A property specifying if PromptTestRunner should save the test results to the database
should.save.results=false

# The baseline version that the performance tests will compare this version with.
# By default, it is the version that the last success runs were against.
# To this version as a baseline, you can specify a non-existing baseline version and run the performance tests.
# performance.baseline.version=1.0_:SNAPSHOT_-_20080403