packages feed

sport-1.0.0.0: test/Main.hs

module Main (main) where

import Control.Concurrent.Async
import Control.Concurrent.STM
import qualified Data.ByteString.Lazy as BS
import Sport
import System.IO

main :: IO ()
main = do
  hSetBuffering stdout NoBuffering
  putStrLn "SPORT TEST"
  s <- newSportIO
  race_ (runSport s) $ do
    putStr "OPENING..."
    openSport s defSportCfg{speed=B19200}
    putStrLn "DONE"
    let bs = BS.replicate 256 0xDC
    putStr "XFERING..."
    bs' <- fst <$> concurrently (readSport s 10) (writeSport s bs)
    putStrLn "DONE"
    putStr "COMPARING..."
    putStrLn $ if BS.take 10 bs == bs' then "PASS" else "FAIL"
    putStr "CLOSING..."
    closeSport s
    putStrLn "DONE"