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 +3/−2
- test/Database/Postgres/Temp/InternalSpec.hs +10/−5
- tmp-postgres.cabal +1/−1
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.