packages feed

Takusen-0.8.4: Database/Test/MultiConnect.lhs

|
Module      :  Database.Test.MultiConnect
Copyright   :  (c) 2004 Oleg Kiselyov, Alistair Bayley
License     :  BSD-style
Maintainer  :  oleg@pobox.com, alistair@abayley.org
Stability   :  experimental
Portability :  non-portable

Tests Database.Enumerator code in the context of multiple
database connections to different DBMS products.
We should add tests to shift data between databases, too.


> {-# LANGUAGE OverlappingInstances #-}

> module Database.Test.MultiConnect (runTest) where

> import qualified Database.Sqlite.Enumerator as Sqlite
> import qualified Database.PostgreSQL.Enumerator as PG
> import Database.Sqlite.Test.Enumerator as SqlTest
> import Database.PostgreSQL.Test.Enumerator as PGTest
> import Database.Test.Performance as Perf
> import Database.Enumerator
> import System.Environment (getArgs)


> runTest :: Perf.ShouldRunTests -> [String] -> IO ()
> runTest runPerf args = catchDB ( do
>     let [ user, pswd, dbname ] = args
>     withSession (PG.connect user pswd dbname) $ \sessPG -> do
>     withSession (Sqlite.connect user pswd dbname) $ \sessSql -> do
>       SqlTest.runTest runPerf args
>       PGTest.runTest runPerf args
>   ) basicDBExceptionReporter