From 39b3fd7d872153e1eafff38565b1df5d19adbe75 Mon Sep 17 00:00:00 2001 From: Sam Truzjan Date: Sat, 14 Dec 2013 21:27:29 +0400 Subject: Group FileMap tests by function --- tests/System/Torrent/FileMapSpec.hs | 46 ++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 21 deletions(-) (limited to 'tests/System') diff --git a/tests/System/Torrent/FileMapSpec.hs b/tests/System/Torrent/FileMapSpec.hs index 43c99d34..36632b3e 100644 --- a/tests/System/Torrent/FileMapSpec.hs +++ b/tests/System/Torrent/FileMapSpec.hs @@ -24,7 +24,7 @@ layout = spec :: Spec spec = do - describe "FileMap" $ do + describe "mmapFiles" $ do it "creates new files" $ do m <- mmapFiles ReadWriteEx layout unmapFiles m @@ -32,17 +32,35 @@ spec = do (doesFileExist . fst) `allM` layout `shouldReturn` True - it "have specified size" $ do + describe "size" $ do + it "is equal to the layout size" $ do m <- mmapFiles ReadOnly layout FM.size m `shouldBe` L.sum (L.map snd layout) unmapFiles m + describe "readBytes" $ do it "read from files" $ do let thisFile = [("tests/System/Torrent/FileMapSpec.hs", 15)] m <- mmapFiles ReadOnly thisFile readBytes 3 15 m `shouldReturn` "this is test" unmapFiles m + it "ignore underflow reads" $ do + m <- mmapFiles ReadOnly layout + readBytes (-1) 1 m `shouldReturn` "" + readBytes (-5) 12 m `shouldReturn` "" + unmapFiles m + + it "crop overflow reads" $ do + _m <- mmapFiles ReadWrite layout + writeBytes 5 "cc" _m + unmapFiles _m + + m <- mmapFiles ReadOnly layout + readBytes 5 10 m `shouldReturn` "cc" + unmapFiles m + + describe "writeBytes" $ do it "writes to files" $ do m <- mmapFiles ReadWriteEx layout writeBytes 0 "a" m @@ -75,38 +93,24 @@ spec = do writeBytes 5 long_bs m unmapFiles m - it "ignore underflow reads" $ do - m <- mmapFiles ReadOnly layout - readBytes (-1) 1 m `shouldReturn` "" - readBytes (-5) 12 m `shouldReturn` "" - unmapFiles m - it "ignore underflow writes" $ do - m <- mmapFiles ReadWrite layout - writeBytes 0 "aa" m - unmapFiles m + _m <- mmapFiles ReadWrite layout + writeBytes 0 "aa" _m + unmapFiles _m m <- mmapFiles ReadWrite layout writeBytes (-1) "hhh" m unmapFiles m BL.readFile (fst (layout !! 0)) `shouldReturn` "aa" - it "crop overflow reads" $ do - m <- mmapFiles ReadWrite layout - writeBytes 5 "cc" m - unmapFiles m - - m <- mmapFiles ReadOnly layout - readBytes 5 10 m `shouldReturn` "cc" - unmapFiles m - it "crop overflow writes" $ do m <- mmapFiles ReadWrite layout writeBytes 5 "ddddddddd" m unmapFiles m BL.readFile (fst (layout !! 2)) `shouldReturn` "dd" + describe "from/to lazy bytestring" $ do it "isomorphic to lazy bytestring" $ do m <- mmapFiles ReadOnly layout fromLazyByteString (toLazyByteString m) `shouldBe` m - unmapFiles m \ No newline at end of file + unmapFiles m -- cgit v1.2.3