on master help sign in
Abstact size and simplify the CPP statement in Unbox tests
c4343a4Adithya Kumar
test/Streamly/Test/Data/Unbox.hs+15−9
@@ -174,6 +174,17 @@ $(deriveSerialize ''Identity)
174-- Test helpers
174-- Test helpers
175--------------------------------------------------------------------------------
175--------------------------------------------------------------------------------
176
176
177+#ifdef USE_SERIALIZE
178+variableSizeOf ::
179+ forall a. Serialize a
180+ => a
181+ -> Int
182+variableSizeOf val =
183+ case size :: Size a of
184+ ConstSize x -> x
185+ VarSize f -> f val
186+#endif
187+
177testSerialization ::
188testSerialization ::
178 forall a. (Eq a, Show a, TYPE_CLASS a)
189 forall a. (Eq a, Show a, TYPE_CLASS a)
179 => a
190 => a
@@ -181,9 +192,7 @@ testSerialization ::
181testSerialization val = do
192testSerialization val = do
182 arr <- newBytes
193 arr <- newBytes
183#ifdef USE_SERIALIZE
194#ifdef USE_SERIALIZE
184− (case size :: Size a of
195+ (variableSizeOf val)
185− ConstSize x -> x
186− VarSize f -> f val)
187#else
196#else
188 (sizeOf (Proxy :: Proxy a))
197 (sizeOf (Proxy :: Proxy a))
189#endif
198#endif
@@ -195,10 +204,9 @@ testGenericConsistency ::
195 ( Eq a
204 ( Eq a
196 , Show a
205 , Show a
197#ifdef USE_SERIALIZE
206#ifdef USE_SERIALIZE
198− , Serialize a, Unbox a
207+ , Serialize a
199−#else
200− , Unbox a
201#endif
208#endif
209+ , Unbox a
202 , Generic a
210 , Generic a
203 , SizeOfRep (Rep a)
211 , SizeOfRep (Rep a)
204 , PeekRep (Rep a)
212 , PeekRep (Rep a)
@@ -210,9 +218,7 @@ testGenericConsistency val = do
210
218
211 -- Test the generic sizeOf
219 -- Test the generic sizeOf
212#ifdef USE_SERIALIZE
220#ifdef USE_SERIALIZE
213− (case size :: Size a of
221+ variableSizeOf val
214− ConstSize x -> x
215− VarSize f -> f val)
216#else
222#else
217 sizeOf (Proxy :: Proxy a)
223 sizeOf (Proxy :: Proxy a)
218#endif
224#endif