-- | -- Module : Main -- Copyright : (c) 2004 Oleg Kiselyov, Alistair Bayley -- License : BSD-style -- Maintainer : oleg@pobox.com, alistair@abayley.org -- Stability : experimental -- Portability : non-portable -- -- Simple driver module, mainly for testing. -- Imports test modules and runs test suites. -- -- This project is now hosted at haskell.org: -- -- @darcs get @ -- -- Invoke main like this (assuming the compiled executable is called @takusen@): -- -- > takusen stub noperf -- > takusen sqlite noperf "" "" dbname -- > takusen oracle noperf "" "" dbname -- no username, so os-authenticated -- > takusen mssql noperf user paswd dbname module Main (main) where -- import Database.Sqlite.Test.Enumerator as Sqlite import Database.Oracle.Test.Enumerator as Oracle --import Database.Test.MultiConnect as Multi -- import Database.ODBC.Test.Enumerator as ODBC import Database.Stub.Test.Enumerator as Stub --import Database.MSSqlServer.Test.Enumerator as MSSql --import Database.PostgreSQL.Test.Enumerator as PGSql import System.Environment (getArgs) import Database.Test.Performance as Perf import Database.Test.Util as Util import Foreign.C.Test.UTF8 as UTF8 main :: IO () main = do args <- getArgs if (length args < 2) then showUsage else do let (impl:perf:as) = args doTests impl perf as showUsage = do putStrLn "usage: takusen backend {no}perf user pswd database" doTests impl perf args = do let runPerf = if perf == "perf" then Perf.RunTests else Perf.Don'tRunTests case lookup impl backendTests of Nothing -> putStrLn $ "No backend for " ++ impl ++ "." Just test -> test runPerf args backendTests :: [(String, Perf.ShouldRunTests -> [String] -> IO ())] backendTests = [ ("sqlite", Sqlite.runTest) , ("pgsql", PGSql.runTest) , ("odbc", ODBC.runTest) --, ("mssql", MSSql.runTest) , ("oracle", Oracle.runTest) --, ("multi", Multi.runTest) , ("stub", Stub.runTest) , ("utf8", UTF8.runTest) , ("util", Util.runTest) ]