and tests run
authorDon Stewart <dons@galois.com>
Fri, 5 Oct 2007 16:13:09 +0000 (18:13 +0200)
committerDon Stewart <dons@galois.com>
Fri, 5 Oct 2007 16:13:09 +0000 (18:13 +0200)
tests/Benchmark.hs
tests/Makefile
tests/QC.hs
tests/QuickCheckUtils.hs

index 8d0e932..0905114 100644 (file)
@@ -10,6 +10,7 @@ import Control.Exception
 import System.CPUTime
 import Numeric
 import Text.Printf
+import System.Environment
 
 import MemBench
 
@@ -19,12 +20,10 @@ data Endian
     | Host
     deriving (Eq,Ord,Show)
 
-mb :: Int
-mb = 10
-
 main :: IO ()
 main = do
-  memBench (mb*10)
+  mb <- getArgs >>= readIO . head
+  memBench (mb*10) 
   putStrLn ""
   putStrLn "Binary (de)serialisation benchmarks:"
 
index 31c9fac..c585a28 100644 (file)
@@ -9,11 +9,11 @@ compiled:
 
 bench:: Benchmark.hs MemBench.hs CBenchmark.o
        ghc --make -O Benchmark.hs -fasm CBenchmark.o -o bench -no-recomp
-       time ./bench
+       time ./bench 50
 
 bench-nb::
        ghc --make -O NewBenchmark.hs -fasm -o bench-nb
-       time ./bench-nb
+       time ./bench-nb 
 
 CBenchmark.o: CBenchmark.c
        gcc -O -c $< -o $@
index 074e6dc..692d1a5 100644 (file)
@@ -6,8 +6,10 @@ import Data.Binary.Put
 import Data.Binary.Get
 
 import qualified Data.ByteString as B
-import qualified Data.ByteString.Base as B
+import qualified Data.ByteString.Internal as B
+import qualified Data.ByteString.Unsafe as B
 import qualified Data.ByteString.Lazy as L
+import qualified Data.ByteString.Lazy.Internal as L
 import qualified Data.Map as Map
 import qualified Data.Set as Set
 import qualified Data.IntMap as IntMap
@@ -71,8 +73,8 @@ prop_bookworm x = errorish $
 -- sanity:
 
 invariant_lbs :: L.ByteString -> Bool
-invariant_lbs (B.LPS []) = True
-invariant_lbs (B.LPS xs) = all (not . B.null) xs
+invariant_lbs (L.Empty)      = True
+invariant_lbs (L.Chunk x xs) = not (B.null x) && invariant_lbs xs
 
 prop_invariant :: (Binary a) => a -> Bool
 prop_invariant = invariant_lbs . encode
index d4d9709..4284a0a 100644 (file)
@@ -11,7 +11,8 @@ import Test.QuickCheck
 import Text.Show.Functions
 
 import qualified Data.ByteString as B
-import qualified Data.ByteString.Base as B
+import qualified Data.ByteString.Unsafe as B
+import qualified Data.ByteString.Internal as B
 import qualified Data.ByteString.Lazy as L
 import qualified Data.Map as Map
 import qualified Data.Set as Set
@@ -35,7 +36,7 @@ import Text.Printf
 
 import qualified Data.ByteString      as P
 import qualified Data.ByteString.Lazy as L
-import qualified Data.ByteString.Base as L (LazyByteString(..))
+import qualified Data.ByteString.Lazy.Internal as L
 
 -- import qualified Data.Sequence as Seq
 
@@ -210,17 +211,21 @@ instance Arbitrary Char where
     arbitrary = choose (maxBound, minBound)
     coarbitrary = undefined
 
+{-
 instance Arbitrary a => Arbitrary (Maybe a) where
     arbitrary = oneof [ return Nothing, liftM Just arbitrary]
     coarbitrary = undefined
+    -}
 
 instance Arbitrary Ordering where
     arbitrary = oneof [ return LT,return  GT,return  EQ ]
     coarbitrary = undefined
 
+{-
 instance (Arbitrary a, Arbitrary b) => Arbitrary (Either a b) where
     arbitrary = oneof [ liftM Left arbitrary, liftM Right arbitrary]
     coarbitrary = undefined
+    -}
 
 instance Arbitrary IntSet.IntSet where
     arbitrary = fmap IntSet.fromList arbitrary
@@ -245,7 +250,7 @@ instance (Arbitrary a) => Arbitrary (Seq.Seq a) where
 -}
 
 instance Arbitrary L.ByteString where
-    arbitrary     = arbitrary >>= return . B.LPS . filter (not. B.null) -- maintain the invariant.
+    arbitrary     = arbitrary >>= return . L.fromChunks . filter (not. B.null) -- maintain the invariant.
     coarbitrary s = coarbitrary (L.unpack s)
 
 instance Arbitrary B.ByteString where