Skip to content

Instantly share code, notes, and snippets.

@borsboom
Created November 16, 2016 18:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save borsboom/7bd922f62e62c42f4aaa3c5f4e24cad6 to your computer and use it in GitHub Desktop.
Save borsboom/7bd922f62e62c42f4aaa3c5f4e24cad6 to your computer and use it in GitHub Desktop.
store-0.3 armv7 test log
Data.Store.Streaming
conduitEncode and conduitDecode
Roundtrips ([Int]).
Roundtrips ([Int]), with chunked transfer.
Throws an Exception on incomplete messages.
Throws an Exception on excess input.
peekMessage
ByteString
demands more input when needed.
demands more input on incomplete message magic.
demands more input on incomplete SizeTag.
successfully decodes valid input.
decodeMessage
ByteString
Throws an Exception on incomplete messages.
Throws an Exception on messages that are shorter than indicated. FAILED [1]
Throws an Exception on messages that are longer than indicated. FAILED [2]
Socket
Decodes data trickling through a socket.
Data.Store
Store on all monomorphic instances
Roundtrips (GHC.Word.Word8)
Roundtrips (GHC.Word.Word64)
Roundtrips (GHC.Word.Word32)
Roundtrips (GHC.Word.Word16)
Roundtrips (GHC.Types.Word)
Roundtrips (Data.Void.Void)
Roundtrips (Data.Vector.Unboxed.Base.Vector GHC.Word.Word64)
Roundtrips (Data.Vector.Unboxed.Base.Vector GHC.Word.Word8)
Roundtrips (Data.Vector.Unboxed.Base.Vector GHC.Types.Bool)
Roundtrips (Data.Vector.Unboxed.Base.Vector GHC.Types.Char)
Roundtrips (Data.Vector.Unboxed.Base.Vector GHC.Types.Double)
Roundtrips (Data.Vector.Unboxed.Base.Vector GHC.Types.Float)
Roundtrips (Data.Vector.Primitive.Vector GHC.Int.Int16)
Roundtrips (Data.Vector.Primitive.Vector GHC.Int.Int32)
Roundtrips (Data.Vector.Primitive.Vector GHC.Int.Int64)
Roundtrips (Data.Vector.Primitive.Vector GHC.Int.Int8)
Roundtrips (Data.Vector.Primitive.Vector GHC.Word.Word16)
Roundtrips (Data.Vector.Primitive.Vector GHC.Word.Word32)
Roundtrips (Data.Vector.Unboxed.Base.Vector GHC.Types.Int)
Roundtrips (Data.Vector.Primitive.Vector GHC.Word.Word64)
Roundtrips (Data.Vector.Primitive.Vector GHC.Word.Word8)
Roundtrips (Data.Vector.Primitive.Vector GHC.Types.Char)
Roundtrips (Data.Vector.Primitive.Vector GHC.Types.Double)
Roundtrips (Data.Vector.Primitive.Vector GHC.Types.Float)
Roundtrips (Data.Vector.Primitive.Vector GHC.Types.Int)
Roundtrips (Data.Vector.Primitive.Vector GHC.Types.Word)
Roundtrips (Data.Vector.Unboxed.Base.Vector GHC.Types.Word)
Roundtrips (Data.Vector.Unboxed.Base.Vector GHC.Int.Int16)
Roundtrips (Data.Vector.Unboxed.Base.Vector GHC.Int.Int32)
Roundtrips (Data.Vector.Unboxed.Base.Vector GHC.Int.Int64)
Roundtrips (Data.Vector.Unboxed.Base.Vector GHC.Int.Int8)
Roundtrips (Data.Vector.Unboxed.Base.Vector GHC.Word.Word16)
Roundtrips (Data.Vector.Unboxed.Base.Vector GHC.Word.Word32)
Roundtrips (Data.Vector.Unboxed.Base.Vector ())
Roundtrips (Data.Time.Clock.UTC.UTCTime)
Roundtrips (Language.Haskell.TH.Syntax.Type)
Roundtrips (Language.Haskell.TH.Syntax.TyVarBndr)
Roundtrips (Language.Haskell.TH.Syntax.TySynEqn)
Roundtrips (Language.Haskell.TH.Syntax.TyLit)
Roundtrips (Data.Text.Internal.Text)
Roundtrips (Language.Haskell.TH.Syntax.Strict)
Roundtrips (Language.Haskell.TH.Syntax.Stmt)
Roundtrips (Data.ByteString.Short.Internal.ShortByteString)
Roundtrips (Language.Haskell.TH.Syntax.Safety)
Roundtrips (Language.Haskell.TH.Syntax.RuleMatch)
Roundtrips (Language.Haskell.TH.Syntax.RuleBndr)
Roundtrips (Language.Haskell.TH.Syntax.Role)
Roundtrips (Language.Haskell.TH.Syntax.Range)
Roundtrips (Language.Haskell.TH.Syntax.Pragma)
Roundtrips (Language.Haskell.TH.Syntax.PkgName)
Roundtrips (Language.Haskell.TH.Syntax.Phases)
Roundtrips (Language.Haskell.TH.Syntax.Pat)
Roundtrips (Language.Haskell.TH.Syntax.OccName)
Roundtrips (Language.Haskell.TH.Syntax.NameSpace)
Roundtrips (Language.Haskell.TH.Syntax.Name)
Roundtrips (Language.Haskell.TH.Syntax.ModName)
Roundtrips (Language.Haskell.TH.Syntax.Match)
Roundtrips (Language.Haskell.TH.Syntax.Lit)
Roundtrips (GHC.Integer.Type.Integer)
Roundtrips (Data.IntSet.Base.IntSet)
Roundtrips (GHC.Int.Int8)
Roundtrips (GHC.Int.Int64)
Roundtrips (GHC.Int.Int32)
Roundtrips (GHC.Int.Int16)
Roundtrips (GHC.Types.Int)
Roundtrips (Language.Haskell.TH.Syntax.Inline)
Roundtrips (Language.Haskell.TH.Syntax.Info)
Roundtrips (Language.Haskell.TH.Syntax.Guard)
Roundtrips (Language.Haskell.TH.Syntax.FunDep)
Roundtrips (Language.Haskell.TH.Syntax.Foreign)
Roundtrips (GHC.Types.Float)
Roundtrips (Language.Haskell.TH.Syntax.FixityDirection)
Roundtrips (Language.Haskell.TH.Syntax.Fixity)
Roundtrips (GHC.Fingerprint.Type.Fingerprint)
Roundtrips (Language.Haskell.TH.Syntax.FamFlavour)
Roundtrips (Language.Haskell.TH.Syntax.Exp)
Roundtrips (GHC.Types.Double)
Roundtrips (Data.Time.Clock.Scale.DiffTime)
Roundtrips (Language.Haskell.TH.Syntax.Dec)
Roundtrips (Data.Time.Calendar.Days.Day)
Roundtrips (Language.Haskell.TH.Syntax.Con)
Roundtrips (Language.Haskell.TH.Syntax.Clause)
Roundtrips (GHC.Types.Char)
Roundtrips (Language.Haskell.TH.Syntax.Callconv)
Roundtrips (Foreign.C.Types.CWchar)
Roundtrips (System.Posix.Types.CUid)
Roundtrips (Foreign.C.Types.CUShort)
Roundtrips (Foreign.C.Types.CUSeconds)
Roundtrips (Foreign.C.Types.CULong)
Roundtrips (Foreign.C.Types.CULLong)
Roundtrips (Foreign.C.Types.CUIntMax)
Roundtrips (Foreign.C.Types.CUInt)
Roundtrips (Foreign.C.Types.CUChar)
Roundtrips (Foreign.C.Types.CTime)
Roundtrips (System.Posix.Types.CTcflag)
Roundtrips (System.Posix.Types.CSsize)
Roundtrips (System.Posix.Types.CSpeed)
Roundtrips (Foreign.C.Types.CSize)
Roundtrips (Foreign.C.Types.CSigAtomic)
Roundtrips (Foreign.C.Types.CShort)
Roundtrips (Foreign.C.Types.CSUSeconds)
Roundtrips (Foreign.C.Types.CSChar)
Roundtrips (System.Posix.Types.CRLim)
Roundtrips (Foreign.C.Types.CPtrdiff)
Roundtrips (System.Posix.Types.CPid)
Roundtrips (System.Posix.Types.COff)
Roundtrips (System.Posix.Types.CNlink)
Roundtrips (System.Posix.Types.CMode)
Roundtrips (Foreign.C.Types.CLong)
Roundtrips (Foreign.C.Types.CLLong)
Roundtrips (Foreign.C.Types.CIntMax)
Roundtrips (Foreign.C.Types.CInt)
Roundtrips (System.Posix.Types.CIno)
Roundtrips (System.Posix.Types.CGid)
Roundtrips (Foreign.C.Types.CFloat)
Roundtrips (Foreign.C.Types.CDouble)
Roundtrips (System.Posix.Types.CDev)
Roundtrips (Foreign.C.Types.CClock)
Roundtrips (Foreign.C.Types.CChar)
Roundtrips (System.Posix.Types.CCc)
Roundtrips (Data.ByteString.Internal.ByteString)
Roundtrips (Data.ByteString.Lazy.Internal.ByteString)
Roundtrips (GHC.Types.Bool)
Roundtrips (Language.Haskell.TH.Syntax.Body)
Roundtrips (Data.Monoid.Any)
Roundtrips (Language.Haskell.TH.Syntax.AnnTarget)
Roundtrips (Data.Monoid.All)
Roundtrips (())
Store on non-numeric Float/Double values
Store on all custom generic instances
Roundtrips (Data.StoreSpec.Test)
Roundtrips (Data.StoreSpec.X)
Manually listed polymorphic store instances
Roundtrips (Data.Vector.Storable.Vector GHC.Int.Int8)
Roundtrips (Data.Vector.Vector GHC.Int.Int8)
Roundtrips (Data.StoreSpec.SerialRatio GHC.Int.Int8)
Roundtrips (Data.Complex.Complex GHC.Int.Int8)
Roundtrips (Data.Monoid.Dual GHC.Int.Int8)
Roundtrips (Data.Monoid.Sum GHC.Int.Int8)
Roundtrips (Data.Monoid.Product GHC.Int.Int8)
Roundtrips (Data.Monoid.First GHC.Int.Int8)
Roundtrips (Data.Monoid.Last GHC.Int.Int8)
Roundtrips (GHC.Base.Maybe GHC.Int.Int8)
Roundtrips (Data.Either.Either GHC.Int.Int8 GHC.Int.Int8)
Roundtrips (Data.Vector.Storable.Vector GHC.Int.Int64)
Roundtrips (Data.Vector.Vector GHC.Int.Int64)
Roundtrips (Data.StoreSpec.SerialRatio GHC.Int.Int64)
Roundtrips (Data.Complex.Complex GHC.Int.Int64)
Roundtrips (Data.Monoid.Dual GHC.Int.Int64)
Roundtrips (Data.Monoid.Sum GHC.Int.Int64)
Roundtrips (Data.Monoid.Product GHC.Int.Int64)
Roundtrips (Data.Monoid.First GHC.Int.Int64)
Roundtrips (Data.Monoid.Last GHC.Int.Int64)
Roundtrips (GHC.Base.Maybe GHC.Int.Int64)
Roundtrips (Data.Either.Either GHC.Int.Int64 GHC.Int.Int64)
Roundtrips ((GHC.Int.Int8, GHC.Int.Int16))
Roundtrips ((GHC.Int.Int8, GHC.Int.Int16, GHC.Types.Bool))
Roundtrips ((GHC.Types.Bool, (), (), ()))
Roundtrips ((GHC.Types.Bool, (), GHC.Int.Int8, ()))
Roundtrips ([GHC.Int.Int8])
Roundtrips ([GHC.Int.Int64])
Roundtrips (Data.Sequence.Seq GHC.Int.Int8)
Roundtrips (Data.Sequence.Seq GHC.Int.Int64)
Roundtrips (Data.Set.Base.Set GHC.Int.Int8)
Roundtrips (Data.Set.Base.Set GHC.Int.Int64)
Roundtrips (Data.IntMap.Base.IntMap GHC.Int.Int8)
Roundtrips (Data.IntMap.Base.IntMap GHC.Int.Int64)
Roundtrips (Data.Map.Base.Map GHC.Int.Int8 GHC.Int.Int8)
Roundtrips (Data.Map.Base.Map GHC.Int.Int64 GHC.Int.Int64)
Roundtrips (Data.HashMap.Base.HashMap GHC.Int.Int8 GHC.Int.Int8)
Roundtrips (Data.HashMap.Base.HashMap GHC.Int.Int64 GHC.Int.Int64)
Roundtrips (Data.HashSet.HashSet GHC.Int.Int8)
Roundtrips (Data.HashSet.HashSet GHC.Int.Int64)
Roundtrips (Data.List.NonEmpty.NonEmpty GHC.Int.Int8)
Roundtrips (Data.List.NonEmpty.NonEmpty GHC.Int.Int64)
Roundtrips (Data.Store.TypeHash.Internal.Tagged GHC.Int.Int32)
Roundtrips (GHC.Arr.Array ((GHC.Types.Int, GHC.Integer.Type.Integer))
GHC.Integer.Type.Integer)
Roundtrips (Data.Array.Base.UArray GHC.Types.Char GHC.Types.Bool)
Slices roundtrip
StaticSize roundtrips
Size of generic instance for single fieldless constructor is 0
Not really a test - printing out known polymorphic store instances (which should all be tested above)
Data.Store.TypeHash.Internal.Tagged a_0
[a_0]
Data.Vector.Unboxed.Base.Vector ((a_0, b_1, c_2, d_3, e_4, f_5))
Data.Vector.Unboxed.Base.Vector ((a_0, b_1, c_2, d_3, e_4))
Data.Vector.Unboxed.Base.Vector ((a_0, b_1, c_2, d_3))
Data.Vector.Unboxed.Base.Vector ((a_0, b_1, c_2))
Data.Vector.Unboxed.Base.Vector ((a_0, b_1))
Data.Vector.Unboxed.Base.Vector (Data.Complex.Complex a_0)
Data.Vector.Vector a_0
Data.Vector.Storable.Vector a_0
Data.Array.Base.UArray i_0 e_1
Data.Tagged.Tagged s0_0 a0_1
Data.Monoid.Sum a_0
Data.Store.Internal.StaticSize n_0
Data.ByteString.Internal.ByteString
GHC.Stable.StablePtr a0_0
Data.Set.Base.Set a_0
Data.Sequence.Seq a_0
GHC.Real.Ratio a_0
GHC.Ptr.Ptr a0_0
Data.Monoid.Product a_0
Data.List.NonEmpty.NonEmpty a_0
GHC.Base.Maybe a_0
Data.Map.Base.Map k_0 a_1
Data.Monoid.Last a_0
Data.IntMap.Base.IntMap a_0
Data.Functor.Identity.Identity a0_0
Data.HashSet.HashSet a_0
Data.HashMap.Base.HashMap k_0 a_1
GHC.Ptr.FunPtr a0_0
Data.Fixed.Fixed a_0
Data.Monoid.First a_0
Data.Either.Either a_0 b_1
Data.Monoid.Dual a_0
Control.Applicative.Const a0_0 b0_1
Data.Complex.Complex a0_0
GHC.Arr.Array i_0 e_1
(a_0, b_1, c_2, d_3, e_4, f_5, g_6)
(a_0, b_1, c_2, d_3, e_4, f_5)
(a_0, b_1, c_2, d_3, e_4)
(a_0, b_1, c_2, d_3)
(a_0, b_1, c_2)
(a_0, b_1)
Printing out polymorphic store instances
Faulty implementations of size lead to PokeExceptions
Avoids reading data with a negative size
Avoids overflow in bounds checks
System.IO.ByteBuffer
ByteBuffer
can grow to store a value and return it.
should request more input when needed.
should not grow if bytes can be freed.
should raise a ByteBufferException when used after freed
should raise a ByteBufferException after a failed operation
Failures:
test/Data/Store/StreamingSpec.hs:52:
1) Data.Store.Streaming.decodeMessage.ByteString Throws an Exception on messages that are shorter than indicated.
uncaught exception: PokeException (PokeException {pokeExByteIndex = 4, pokeExMessage = "encode undershot end of 8 byte long buffer"})
test/Data/Store/StreamingSpec.hs:53:
2) Data.Store.Streaming.decodeMessage.ByteString Throws an Exception on messages that are longer than indicated.
uncaught exception: PokeException (PokeException {pokeExByteIndex = 16, pokeExMessage = "encode undershot end of 20 byte long buffer"})
Randomized with seed 309879202
Finished in 30.0932 seconds
200 examples, 2 failures
Case Bytes GCs Check
1,000,000 [Int] Allocate 24,000,280 45 OK
1,000,000 [Int] Encode: Store 56,001,000 99 OK
1,000,000 [Int] Encode: Cereal 220,166,316 391 OK
2,000,000 [Int] Allocate 48,000,564 91 OK
2,000,000 [Int] Encode: Store 112,000,716 199 OK
2,000,000 [Int] Encode: Cereal 440,266,344 782 OK
10,000,000 [Int] Allocate 240,001,276 459 OK
10,000,000 [Int] Encode: Store 560,001,380 995 OK
10,000,000 [Int] Encode: Cereal 2,201,035,332 3,909 OK
1,000,000 Boxed Vector Int Allocate 4,007,836 0 OK
1,000,000 Boxed Vector Int Encode: Store 44,007,972 70 OK
1,000,000 Boxed Vector Int Encode: Cereal 344,173,940 626 OK
2,000,000 Boxed Vector Int Allocate 8,015,648 0 OK
2,000,000 Boxed Vector Int Encode: Store 88,016,116 139 OK
2,000,000 Boxed Vector Int Encode: Cereal 688,282,476 1,251 OK
10,000,000 Boxed Vector Int Allocate 40,078,148 0 OK
10,000,000 Boxed Vector Int Encode: Store 440,079,280 690 OK
10,000,000 Boxed Vector Int Encode: Cereal 3,441,113,632 6,254 OK
1,000,000 Storable Vector Int Allocate 4,000,028 0 OK
1,000,000 Storable Vector Int Encode: Store 8,000,192 2 OK
1,000,000 Storable Vector Int Encode: Cereal 344,166,404 626 OK
2,000,000 Storable Vector Int Allocate 8,000,028 0 OK
2,000,000 Storable Vector Int Encode: Store 16,000,192 2 OK
2,000,000 Storable Vector Int Encode: Cereal 688,265,848 1,251 OK
10,000,000 Storable Vector Int Allocate 40,000,028 0 OK
10,000,000 Storable Vector Int Encode: Store 80,000,524 3 OK
10,000,000 Storable Vector Int Encode: Cereal 3,441,034,740 6,254 OK
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment