packages feed

synthesizer-llvm-1.1.0.1: testsuite/Test/Main.hs

module Main where

import qualified Test.Synthesizer.LLVM.RingBufferForward as RingBufferForward
import qualified Test.Synthesizer.LLVM.Helix as Helix
import qualified Test.Synthesizer.LLVM.Filter as Filter
import qualified Test.Synthesizer.LLVM.Packed as Packed

import qualified LLVM.Core as LLVM

import Control.Monad.IO.Class (liftIO)

import Data.Tuple.HT (mapFst)

import qualified Test.DocTest.Driver as DocTest


prefix :: String -> [(String, prop)] -> [(String, prop)]
prefix msg =
   map (mapFst (\str -> msg ++ "." ++ str))

main :: IO ()
main = do
   LLVM.initializeNativeTarget
   DocTest.run $ mapM_
      (\(name,prop) -> do
         DocTest.printPrefix (name++": ")
         DocTest.property =<< liftIO prop) $
      prefix "Helix" Helix.tests ++
      prefix "RingBufferForward" RingBufferForward.tests ++
      prefix "Filter" Filter.tests ++
      prefix "Packed" Packed.tests ++
      []