{-# LANGUAGE CPP #-}
{-# LANGUAGE DeriveGeneric #-}
#if defined(mingw32_HOST_OS)
{-# LANGUAGE RecordWildCards #-}
#endif
module Test.Main.Internal where
import qualified Data.ByteString.Char8 as B
import           GHC.Generics (Generic)
import           System.Exit (ExitCode)
data ProcessResult =
  ProcessResult
    { prStdout :: !B.ByteString
    , prStderr :: !B.ByteString
    , prExitCode :: !ExitCode
    } deriving (Eq, Show, Generic)
normalizeNewLines :: ProcessResult -> ProcessResult
#if defined(mingw32_HOST_OS)
normalizeNewLines ProcessResult {..} =
  ProcessResult (nl prStdout) (nl prStderr) (prExitCode)
  where
    nl = B.concat . B.split '\r'
#else
normalizeNewLines = id
#endif