{-# LANGUAGE OverloadedStrings #-}
module Debug (
testDebugTracing) where
import Control.Concurrent
import Common
-- Simplest SELECT
testDebugTracing :: TestEnv -> Test
testDebugTracing TestEnv{..} = TestCase $ do
chan <- newChan
let logger m = writeChan chan m
setTrace conn (Just logger)
execute_ conn "SELECT null"
msg <- readChan chan
"SELECT null" @=? msg
execute conn "SELECT 1+?" (Only (2 :: Int))
execute conn "SELECT 1+?" (Only (3 :: Int))
msg <- readChan chan
"SELECT 1+2" @=? msg
msg <- readChan chan
"SELECT 1+3" @=? msg
-- Check that disabling works too
setTrace conn Nothing
execute_ conn "SELECT null"
writeChan chan "empty"
msg <- readChan chan
"empty" @=? msg