Testing
{-# LANGUAGE OverloadedStrings #-}
module Tests where
import T1QuerySerialization (t1)
1. Builds queries like
SELECT CAST(5, 'UInt8') as testSample;
via ToQueryPart type class for every supported type
2. Executes select
3. Parses the result
4. Checks if result equals initial value
import T2WriteReadEquality (t2)
1. Runs insertInto of a sample into the all supported types table
2. Runs selectFrom from the same table
3. Checks if result equals sample value
import T3Multithreading (t3)
1. Runs 10000 concurrent queries via single connection
import T4MissmatchErrors (t4)
1. Runs queries with types and names missmatch and handles error
How to run
You can manually run database and tests:
nix run .#testing
Main function
import ClickHaskell (openConnection, defaultConnectionArgs)
main :: IO ()
main = do
connection <- openConnection defaultConnectionArgs
mapM_
(\runner -> runner connection)
[t1,t2,t3,t4]