1
1
module Main (main ) where
2
2
3
3
import Control.Monad (unless )
4
+ import Test.Tasty (defaultMain , testGroup )
5
+ import Test.Tasty.HUnit (testCaseSteps , assertEqual )
4
6
import Database.PostgreSQL.LibPQ
5
7
import Data.Foldable (toList )
6
8
import System.Environment (getEnvironment )
@@ -11,7 +13,9 @@ import qualified Data.ByteString.Char8 as BS8
11
13
main :: IO ()
12
14
main = do
13
15
libpqVersion >>= print
14
- withConnstring smoke
16
+ withConnstring $ \ connString -> defaultMain $ testGroup " postgresql-libpq"
17
+ [ testCaseSteps " smoke" $ \ info -> smoke info connString
18
+ ]
15
19
16
20
withConnstring :: (BS8. ByteString -> IO () ) -> IO ()
17
21
withConnstring kont = do
@@ -35,21 +39,23 @@ withConnstring kont = do
35
39
, " port=5432"
36
40
]
37
41
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
+
40
46
conn <- connectdb connstring
41
47
42
48
-- 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
51
57
52
58
s <- status conn
53
- unless (s == ConnectionOk ) exitFailure
59
+ assertEqual " connection not ok " s ConnectionOk
54
60
55
61
finish conn
0 commit comments