{-# LANGUAGE BangPatterns, NamedFieldPuns #-} {- Example build: ghc --make Test.hs -o Test.exe -rtsopts -fforce-recomp -} module Main where import Test.Framework (defaultMain) import Test.Framework.Providers.HUnit (hUnitTestToTests) import Data.Concurrent.Deque.Tests (tests_fifo, numElems, getNumAgents) import System.Environment (getArgs, withArgs) import Test.HUnit -- import Data.Concurrent.Queue.MichaelScott (newQ) import Data.Concurrent.Queue.MichaelScott (LinkedQueue) import Data.Concurrent.Deque.Class (newQ) import Data.Concurrent.Deque.Debugger main = do numAgents <- getNumAgents putStrLn$ "Running with numElems "++show numElems++" and numAgents "++ show numAgents putStrLn "Use NUMELEMS and +RTS to control the size of this benchmark." args <- getArgs -- Don't allow concurent tests (the tests are concurrent!): withArgs (args ++ ["-j1","--jxml=test-results.xml"]) $ defaultMain$ hUnitTestToTests$ TestList [ TestLabel "MichaelScott" $ tests_fifo (newQ :: IO (LinkedQueue a)) , TestLabel "MichaelScott(DbgWrapper)" $ tests_fifo (newQ :: IO (DebugDeque LinkedQueue a)) ]