11module Main (main ) where
22
33import Control.Monad (unless )
4+ import Test.Tasty (defaultMain , testGroup )
5+ import Test.Tasty.HUnit (testCaseSteps , assertEqual )
46import Database.PostgreSQL.LibPQ
57import Data.Foldable (toList )
68import System.Environment (getEnvironment )
@@ -11,7 +13,9 @@ import qualified Data.ByteString.Char8 as BS8
1113main :: IO ()
1214main = do
1315 libpqVersion >>= print
14- withConnstring smoke
16+ withConnstring $ \ connString -> defaultMain $ testGroup " postgresql-libpq"
17+ [ testCaseSteps " smoke" $ \ info -> smoke info connString
18+ ]
1519
1620withConnstring :: (BS8. ByteString -> IO () ) -> IO ()
1721withConnstring kont = do
@@ -35,21 +39,23 @@ withConnstring kont = do
3539 , " port=5432"
3640 ]
3741
38- smoke :: BS8. ByteString -> IO ()
39- smoke connstring = do
42+ smoke :: (String -> IO () ) -> BS8. ByteString -> IO ()
43+ smoke info connstring = do
44+ let infoShow x = info (show x)
45+
4046 conn <- connectdb connstring
4147
4248 -- status functions
43- db conn >>= print
44- user conn >>= print
45- host conn >>= print
46- port conn >>= print
47- status conn >>= print
48- transactionStatus conn >>= print
49- protocolVersion conn >>= print
50- serverVersion conn >>= print
49+ db conn >>= infoShow
50+ user conn >>= infoShow
51+ host conn >>= infoShow
52+ port conn >>= infoShow
53+ status conn >>= infoShow
54+ transactionStatus conn >>= infoShow
55+ protocolVersion conn >>= infoShow
56+ serverVersion conn >>= infoShow
5157
5258 s <- status conn
53- unless (s == ConnectionOk ) exitFailure
59+ assertEqual " connection not ok " s ConnectionOk
5460
5561 finish conn
0 commit comments