ghc-events-0.14.0: test/Roundtrip.hs
import Control.Monad
import System.Exit
import GHC.RTS.Events
import GHC.RTS.Events.Incremental
import Utils (files)
-- | Check that an eventlog round-trips through encoding/decoding.
checkRoundtrip :: FilePath -> IO Bool
checkRoundtrip logFile = do
putStrLn logFile
Right eventlog <- readEventLogFromFile logFile
let Right (roundtripped, _) = readEventLog $ serialiseEventLog eventlog
if show roundtripped == show eventlog
then return True
else putStrLn "bad" >> return False
main :: IO ()
main = do
successes <- mapM checkRoundtrip files
unless (and successes) exitFailure