{-# LANGUAGE CPP #-}
{-# LANGUAGE ScopedTypeVariables #-}
import qualified CompositeTest
import qualified CustomPersistFieldTest
import qualified CustomPrimaryKeyReferenceTest
import qualified DataTypeTest
import qualified EmbedOrderTest
import qualified EmbedTest
import qualified EmptyEntityTest
import qualified HtmlTest
import Init
import qualified LargeNumberTest
import qualified MaxLenTest
import qualified MigrationOnlyTest
import qualified PersistentTest
import qualified PersistUniqueTest
import qualified PrimaryTest
import qualified Recursive
import qualified RenameTest
import qualified SumTypeTest
import qualified InsertDuplicateUpdate
import qualified UniqueTest
import qualified MigrationColumnLengthTest
import qualified EquivalentTypeTest
#ifndef WITH_NOSQL
# ifdef WITH_SQLITE
import Control.Exception (handle, IOException)
import Filesystem (removeFile)
import Filesystem.Path.CurrentOS (fromText)
import qualified MigrationTest
# endif
#endif
#ifdef WITH_MYSQL
import qualified MigrationIdempotencyTest
#endif
#ifdef WITH_NOSQL
#else
setup :: MonadIO m => Migration -> ReaderT SqlBackend m ()
setup migration = do
printMigration migration
runMigrationUnsafe migration
#endif
main :: IO ()
main = do
#ifndef WITH_NOSQL
# ifdef WITH_SQLITE
handle (\(_ :: IOException) -> return ())
$ removeFile $ fromText sqlite_database_file
# endif
runConn $ do
mapM_ setup
[ PersistentTest.testMigrate
, PersistentTest.noPrefixMigrate
, EmbedTest.embedMigrate
, EmbedOrderTest.embedOrderMigrate
, LargeNumberTest.numberMigrate
, UniqueTest.uniqueMigrate
, MaxLenTest.maxlenMigrate
, Recursive.recursiveMigrate
, CompositeTest.compositeMigrate
# ifdef WITH_SQLITE
, MigrationTest.migrationMigrate
# endif
, PersistUniqueTest.migration
, RenameTest.migration
, CustomPersistFieldTest.customFieldMigrate
# ifndef WITH_MYSQL
, PrimaryTest.migration
# endif
# ifdef WITH_MYSQL
, InsertDuplicateUpdate.duplicateMigrate
, MigrationIdempotencyTest.migration
# endif
, CustomPrimaryKeyReferenceTest.migration
, MigrationColumnLengthTest.migration
]
PersistentTest.cleanDB
#endif
hspec $ do
RenameTest.specs
DataTypeTest.specs
HtmlTest.specs
EmbedTest.specs
EmbedOrderTest.specs
LargeNumberTest.specs
UniqueTest.specs
MaxLenTest.specs
Recursive.specs
SumTypeTest.specs
MigrationOnlyTest.specs
PersistentTest.specs
EmptyEntityTest.specs
CompositeTest.specs
PersistUniqueTest.specs
PrimaryTest.specs
CustomPersistFieldTest.specs
CustomPrimaryKeyReferenceTest.specs
InsertDuplicateUpdate.specs
MigrationColumnLengthTest.specs
EquivalentTypeTest.specs
#ifdef WITH_SQLITE
MigrationTest.specs
#endif
#ifdef WITH_MYSQL
MigrationIdempotencyTest.specs
#endif