{-# 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