summaryrefslogtreecommitdiff
path: root/test.hs
diff options
context:
space:
mode:
Diffstat (limited to 'test.hs')
-rw-r--r--test.hs21
1 files changed, 13 insertions, 8 deletions
diff --git a/test.hs b/test.hs
index a8780ff..b0574a1 100644
--- a/test.hs
+++ b/test.hs
@@ -10,6 +10,7 @@ import Data.Function
import qualified Streamly.Data.Fold as F
import qualified Streamly.Data.Stream as S
import qualified Streamly.Data.Unfold as U
+import System.IO.Temp
import Test.QuickCheck
import Test.QuickCheck.Arbitrary
import Test.QuickCheck.Monadic
@@ -19,15 +20,19 @@ instance Arbitrary Read where
arbitrary = Read <$> genStr <*> genStr <*> genStr
where
genBS = fmap B.pack . listOf . elements
- genStr = genBS $ [' ' .. '*'] ++ [',' .. '?'] ++ ['A' .. '~']
+ genStr = genBS $ [' ' .. '~']
main :: IO ()
main = quickCheckWith stdArgs {maxSuccess = 10000} $ \rp -> monadicIO $ do
- rp' <- run $ do
- S.unfold U.fromList rp & unparse "a" "b"
- cnt <- B.readFile "a"
- B.writeFile "a" $ cnt <> cnt
- cnt <- B.readFile "b"
- B.writeFile "b" $ cnt <> cnt
- parse "a" "b" & S.fold F.toList
+ rp' <- run $ withSystemTempDirectory "dedumi-test" $ \root -> do
+ let a = root <> "/a"
+ b = root <> "/b"
+ a' = root <> "/a2"
+ b' = root <> "/b2"
+ S.unfold U.fromList rp & unparse a b
+ cnt <- B.readFile a
+ B.writeFile a' $ cnt <> cnt
+ cnt <- B.readFile b
+ B.writeFile b' $ cnt <> cnt
+ parse a' b' & S.fold F.toList
assert $ rp <> rp == rp'