packages feed

tmp-postgres 0.1.2.1 → 0.1.2.2

raw patch · 3 files changed

+14/−8 lines, 3 files

Files

src/Database/Postgres/Temp/Internal.hs view
@@ -15,7 +15,7 @@ import System.Posix.Signals import qualified Database.PostgreSQL.Simple as PG import qualified Data.ByteString.Char8 as BSC-import Control.Monad (void)+import Control.Monad (void, forever) import Network.Socket.Free (openFreePort) import Data.Foldable import Control.Concurrent.Async(race_)@@ -183,7 +183,8 @@             traverse_ (throwIO . StartPostgresFailed postgresOptions)      logger WaitForDB-    waitForDB (makeConnectionString "template1") `race_` checkForCrash+    waitForDB (makeConnectionString "template1") `race_`+      forever (checkForCrash >> threadDelay 100000)      logger CreateDB     let createDBHostArgs = case socketType of
test/Database/Postgres/Temp/InternalSpec.hs view
@@ -59,9 +59,14 @@       doesDirectoryExist mainFilePath `shouldReturn` False       countPostgresProcesses `shouldReturn` beforePostgresCount -    it "can override settings" $ \_ -> do+    it "can override settings" $ \mainFilePath -> do       let expectedDuration = "100ms"-      bracket (start [("log_min_duration_statement", expectedDuration)])+      stdOut <- mkDevNull+      stdErr <- mkDevNull+      bracket (startWithLogger (const $ pure ()) Unix+                [("log_min_duration_statement", expectedDuration)]+                mainFilePath stdOut stdErr+                )               (either (\_ -> return ()) (void . stop)) $ \result -> do         db <- case result of                 Right x  -> return x@@ -73,7 +78,7 @@     it "dies promptly when a bad setting is passed" $ \mainFilePath -> do       stdOut <- mkDevNull       stdErr <- mkDevNull-      r <- timeout 5000000 $ startWithLogger print Unix +      r <- timeout 5000000 $ startWithLogger (const $ pure ()) Unix             [ ("log_directory", "/this/does/not/exist")             , ("logging_collector", "true")             ] mainFilePath stdOut stdErr@@ -94,11 +99,11 @@       stdOut <- mkDevNull       stdErr <- mkDevNull       bracket (fromRight (error "failed to start db") <$> startWithLogger (\_ -> return ()) Unix [] mainFilePath stdOut stdErr) stop $ \db -> do-        bracket (connectPostgreSQL $ BSC.pack $ connectionString db) close $ \_ -> +        bracket (connectPostgreSQL $ BSC.pack $ connectionString db) close $ \_ ->           bracket (connectPostgreSQL $ BSC.pack $ connectionString db) close $ \conn2 -> do             query_ conn2 "SELECT COUNT(*) FROM pg_stat_activity" `shouldReturn` [Only (2 :: Int)]              terminateConnections db -            bracket (connectPostgreSQL $ BSC.pack $ connectionString db) close $ \conn3 -> +            bracket (connectPostgreSQL $ BSC.pack $ connectionString db) close $ \conn3 ->               query_ conn3 "SELECT COUNT(*) FROM  pg_stat_activity" `shouldReturn` [Only (1 :: Int)]
tmp-postgres.cabal view
@@ -1,5 +1,5 @@ name:                tmp-postgres-version:             0.1.2.1+version:             0.1.2.2 synopsis: Start and stop a temporary postgres for testing description:  This module provides functions creating a temporary postgres instance on a random port for testing.