summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorStephen Paul Weber <singpolyma@singpolyma.net>2012-04-26 22:04:18 -0500
committerStephen Paul Weber <singpolyma@singpolyma.net>2012-04-26 22:04:18 -0500
commit913c09eb763e35bfba79f655c3fe3a6cec593a56 (patch)
tree1b34c03e44da37c919605b67e9e84ad4af17d2a6 /tests
parenta68241e614534c252fad871a32ac8296727ee7bf (diff)
Second openpgp-cereal package using CPP
When you compile with make CEREAL=1
Diffstat (limited to 'tests')
-rw-r--r--tests/suite.hs23
1 files changed, 18 insertions, 5 deletions
diff --git a/tests/suite.hs b/tests/suite.hs
index f5c8946..3f15a75 100644
--- a/tests/suite.hs
+++ b/tests/suite.hs
@@ -1,3 +1,4 @@
1{-# LANGUAGE CPP #-}
1import Test.Framework (defaultMain, testGroup, Test) 2import Test.Framework (defaultMain, testGroup, Test)
2import Test.Framework.Providers.HUnit 3import Test.Framework.Providers.HUnit
3import Test.Framework.Providers.QuickCheck2 4import Test.Framework.Providers.QuickCheck2
@@ -5,18 +6,30 @@ import Test.QuickCheck
5import Test.HUnit hiding (Test) 6import Test.HUnit hiding (Test)
6 7
7import Data.Word 8import Data.Word
8import Data.Binary
9import qualified Data.OpenPGP as OpenPGP 9import qualified Data.OpenPGP as OpenPGP
10import qualified Data.ByteString.Lazy as LZ 10
11#ifdef CEREAL
12import Data.Serialize
13import qualified Data.ByteString as B
14
15decode' :: (Serialize a) => B.ByteString -> a
16decode' x = let Right v = decode x in v
17#else
18import Data.Binary
19import qualified Data.ByteString.Lazy as B
20
21decode' :: (Binary a) => B.ByteString -> a
22decode' = decode
23#endif
11 24
12instance Arbitrary OpenPGP.HashAlgorithm where 25instance Arbitrary OpenPGP.HashAlgorithm where
13 arbitrary = elements [OpenPGP.MD5, OpenPGP.SHA1, OpenPGP.SHA256, OpenPGP.SHA384, OpenPGP.SHA512] 26 arbitrary = elements [OpenPGP.MD5, OpenPGP.SHA1, OpenPGP.SHA256, OpenPGP.SHA384, OpenPGP.SHA512]
14 27
15testSerialization :: FilePath -> Assertion 28testSerialization :: FilePath -> Assertion
16testSerialization fp = do 29testSerialization fp = do
17 bs <- LZ.readFile $ "tests/data/" ++ fp 30 bs <- B.readFile $ "tests/data/" ++ fp
18 nullShield "First" (decode bs) (\firstpass -> 31 nullShield "First" (decode' bs) (\firstpass ->
19 nullShield "Second" (decode $ encode firstpass) ( 32 nullShield "Second" (decode' $encode firstpass) (
20 assertEqual ("for " ++ fp) firstpass 33 assertEqual ("for " ++ fp) firstpass
21 ) 34 )
22 ) 35 )