# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

jdo.tck.description = All pm tests with standard mapping, no testdata. 
jdo.tck.mapping.companyfactory =
jdo.tck.testdata = 
jdo.tck.standarddata = 
jdo.tck.mapping = 0
jdo.tck.requiredOptions =
jdo.tck.classes = \
org.apache.jdo.tck.api.persistencemanager.ChangingObjectIdHasNoEffectOnInstance \
org.apache.jdo.tck.api.persistencemanager.ConcurrentPersistenceManagers \
org.apache.jdo.tck.api.persistencemanager.ConcurrentPersistenceManagersSameClasses \
org.apache.jdo.tck.api.persistencemanager.CurrentTransaction \
org.apache.jdo.tck.api.persistencemanager.DataStoreCacheTest \
org.apache.jdo.tck.api.persistencemanager.DataStoreConnection \
org.apache.jdo.tck.api.persistencemanager.DataStoreConnectionThrows \
org.apache.jdo.tck.api.persistencemanager.DatastoreTimeout \
org.apache.jdo.tck.api.persistencemanager.DeletePersistent \
org.apache.jdo.tck.api.persistencemanager.DeletePersistentAllFails \
org.apache.jdo.tck.api.persistencemanager.DeletePersistentFailsIfInstanceIsTransient \
org.apache.jdo.tck.api.persistencemanager.DeletePersistentFailsIfInstanceManagedByAnotherPersistenceManager \
org.apache.jdo.tck.api.persistencemanager.DeletePersistentHasNoEffectOnDeletedInstances \
org.apache.jdo.tck.api.persistencemanager.GetPersistenceManagerFactory \
org.apache.jdo.tck.api.persistencemanager.GetProperties \
org.apache.jdo.tck.api.persistencemanager.GetSetUserObject \
org.apache.jdo.tck.api.persistencemanager.GetTransactionalObjectIdWhenObjectIdBeingChanged \
org.apache.jdo.tck.api.persistencemanager.GetTransactionalObjectIdWithNoTransaction \
org.apache.jdo.tck.api.persistencemanager.NewInstance \
org.apache.jdo.tck.api.persistencemanager.NoPersistenceManagerIfTransient \
org.apache.jdo.tck.api.persistencemanager.ObjectIdUniqueAmongInstances \
org.apache.jdo.tck.api.persistencemanager.OneInstanceOfObjectPerPersistenceManager \
org.apache.jdo.tck.api.persistencemanager.OnePersistenceManagerIfPersistentOrTransactional \
org.apache.jdo.tck.api.persistencemanager.OptimisticFailure \
org.apache.jdo.tck.api.persistencemanager.SameTransactionInstanceForAllCallsToCurrentTransaction \
org.apache.jdo.tck.api.persistencemanager.ThreadSafe \
org.apache.jdo.tck.api.persistencemanager.TransientTransactionalInstanceRetainsValuesAtCommit \
org.apache.jdo.tck.api.persistencemanager.cache.CallingEvictAllWithCollectionContainingNulls \
org.apache.jdo.tck.api.persistencemanager.cache.CallingRefreshAllWithCollectionContainingNulls \
org.apache.jdo.tck.api.persistencemanager.cache.EvictAllWithNoParameters \
org.apache.jdo.tck.api.persistencemanager.cache.EvictingCollectionOfInstancesSideEffects \
org.apache.jdo.tck.api.persistencemanager.cache.EvictingWithRestoreValuesFalse \
org.apache.jdo.tck.api.persistencemanager.cache.EvictingWithRetainValuesFalse \
org.apache.jdo.tck.api.persistencemanager.cache.PassingNullToEvictAllThrowsException \
org.apache.jdo.tck.api.persistencemanager.cache.PassingNullToEvictHasNoEffect \
org.apache.jdo.tck.api.persistencemanager.cache.PassingNullToRefreshAllThrowsException \
org.apache.jdo.tck.api.persistencemanager.cache.PassingNullToRefreshHasNoEffect \
org.apache.jdo.tck.api.persistencemanager.cache.RefreshAllNoParameterSideEffects \
org.apache.jdo.tck.api.persistencemanager.cache.RefreshAllSideEffects \
org.apache.jdo.tck.api.persistencemanager.cache.RefreshAllWithNoParameters \
org.apache.jdo.tck.api.persistencemanager.cache.RefreshSideEffects \
org.apache.jdo.tck.api.persistencemanager.cache.Retrieve \
org.apache.jdo.tck.api.persistencemanager.close.AfterCloseAllMethodsThrowException \
org.apache.jdo.tck.api.persistencemanager.close.IsClosedIsFalseUponConstruction \
org.apache.jdo.tck.api.persistencemanager.close.IsClosedIsFalseUponRetrievalFromPool \
org.apache.jdo.tck.api.persistencemanager.close.IsClosedIsTrueAfterClose \
org.apache.jdo.tck.api.persistencemanager.close.CloseWithActiveTxRollsBack \
org.apache.jdo.tck.api.persistencemanager.close.AutoCloseable \
org.apache.jdo.tck.api.persistencemanager.extent.GetExtentWithInstancesMadePersistentViaReachability \
org.apache.jdo.tck.api.persistencemanager.extent.GetExtentWithNoSubclasses \
org.apache.jdo.tck.api.persistencemanager.extent.GetExtentWithSubclasses \
org.apache.jdo.tck.api.persistencemanager.flags.GetIgnoreCache \
org.apache.jdo.tck.api.persistencemanager.flags.SetIgnoreCacheToFalse \
org.apache.jdo.tck.api.persistencemanager.flags.SetIgnoreCacheToTrue \
org.apache.jdo.tck.api.persistencemanager.flags.SetMultithreadedFalse \
org.apache.jdo.tck.api.persistencemanager.flags.SetMultithreadedTrue \
org.apache.jdo.tck.api.persistencemanager.flags.SettingFlagsWithTransactionInstance \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectById \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectByIdExactClass \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectByIdNoValidationInstanceInCache \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectByIdNoValidationInstanceInCacheNoStateChange \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectByIdNoValidationInstanceNotInCache \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectByIdNoValidationInstanceNotInCacheNoTx \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectByIdNoValidationInstanceNotInDatastore \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectByIdNotResolved \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectByIdWithValidationInstanceInCache \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectByIdWithValidationInstanceInCacheNotInDatastore \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectByIdWithValidationInstanceNotInCacheNotInDatastore \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectsById \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectId \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectIdClass \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectIdClassForAbstractOrNonPersistenceCapableClass \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectIdForNullOrNotPersistent \
org.apache.jdo.tck.api.persistencemanager.getobject.GetObjectIdWithApplicationModifyingIdentity \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeNontransactionalAllFails \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeNontransactionalDirtyInstance \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeNontransactionalIsImmediate \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeNontransactionalPersistentCleanInstance \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeNontransactionalTransientCleanInstance \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistent \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistentAllFails \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistentAndInstancesNotReachable \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistentAssignsObjectId \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistentFailsIfInstanceManagedByAnotherPersistenceManager \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistentHasNoEffectOnPersistentInstances \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeTransactional \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeTransactionalANontransactionalPersistentInstance \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeTransactionalAllFails \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeTransactionalIsImmediate \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeTransactionalPriorToTransactionRolledback \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeTransactionalWithinTransactionRolledback \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeTransient \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeTransientAllFails \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeTransientCausesLossOfIdentity \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeTransientFailsWithDirtyInstance \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeTransientFieldsPreservedUnchanged \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeTransientHasNoEffectOnTransientInstances \
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakeTransientNotSubjectToRollback \
org.apache.jdo.tck.api.persistencemanager.nullargs.MakePersistentNullArgs \
org.apache.jdo.tck.api.persistencemanager.nullargs.DeletePersistentNullArgs \
org.apache.jdo.tck.api.persistencemanager.nullargs.DetachCopyNullArgs \
org.apache.jdo.tck.api.persistencemanager.nullargs.MakeTransientNullArgs \
org.apache.jdo.tck.api.persistencemanager.nullargs.EvictNullArgs \
org.apache.jdo.tck.api.persistencemanager.nullargs.MakeNontransactionalNullArgs \
org.apache.jdo.tck.api.persistencemanager.nullargs.MakeTransactionalNullArgs \
org.apache.jdo.tck.api.persistencemanager.nullargs.RefreshNullArgs \
org.apache.jdo.tck.api.persistencemanager.nullargs.RetrieveNullArgs \
org.apache.jdo.tck.api.persistencemanager.nullargs.RetrieveWithFetchPlanNullArgs

