{-# LANGUAGE OverloadedStrings #-} module Main where import Prelude hiding (splitAt,lines,words) import Data.Char import Data.String hiding (lines,words) import Data.Monoid import Data.Bifunctor import qualified Data.List (intersperse,splitAt) import Test.Tasty import Test.Tasty.HUnit import Control.Concurrent (threadDelay) import Pipes import Pipes.Transduce import qualified Pipes.Transduce.Text as PT import qualified Data.Text as T import qualified Data.Text.Lazy as TL import qualified Control.Foldl as L main :: IO () main = defaultMain tests tests :: TestTree tests = testGroup "Tests" [ testMissingDataInCombined ] testMissingDataInCombined :: TestTree testMissingDataInCombined = testCase "collectStdoutStderrAsByteString" $ do r <- fold2 combinedLines producer1 producer2 case r of ("aa\nbb\ncc\ndd\n",_,_) -> return () _ -> assertFailure $ "did not expect" ++ show r where producer1 = do yield "aa\nbb\n" producer2 = do liftIO $ threadDelay 300000 yield "cc\ndd\n" combinedLines = combined (PT.lines PT.utf8x) (PT.lines PT.utf8x) PT.intoLazyText