module Main where import System.Directory (removeDirectoryRecursive) import System.Environment (setEnv) import System.IO.Temp (createTempDirectory, getCanonicalTemporaryDirectory) import Test.Tasty (TestTree, defaultMain, testGroup, withResource) import Streamly.External.LMDB (Database, ReadWrite, defaultLimits, getDatabase, mapSize, openEnvironment, tebibyte) import qualified Streamly.External.LMDB.Tests (tests) main :: IO () main = do setEnv "TASTY_NUM_THREADS" "1" -- Multiple tests use the same LMDB database. defaultMain $ withResource (do tmpParent <- getCanonicalTemporaryDirectory tmpDir <- createTempDirectory tmpParent "streamly-lmdb-tests" env <- openEnvironment tmpDir $ defaultLimits { mapSize = tebibyte } db <- getDatabase env Nothing return (tmpDir, db)) (\(tmpDir, _) -> removeDirectoryRecursive tmpDir) (\io -> tests $ snd <$> io) tests :: IO (Database ReadWrite) -> TestTree tests res = testGroup "Tests" [ testGroup "Streamly.External.LMDB.Tests" $ Streamly.External.LMDB.Tests.tests res ]