add newtypes for QuickCheck to avoid LANG=C issues
All properties changed to use them, except for prop_encode_c_decode_c_roundtrip, which already filtered to ascii for other reasons. A few modules had to be split out, because Setup does not build-depend on QuickCheck.
This commit is contained in:
parent
aad4129669
commit
885974be99
17 changed files with 211 additions and 130 deletions
|
@ -8,6 +8,7 @@
|
|||
module Utility.Base64 where
|
||||
|
||||
import Utility.FileSystemEncoding
|
||||
import Utility.QuickCheck
|
||||
|
||||
import qualified "sandi" Codec.Binary.Base64 as B64
|
||||
import Data.Maybe
|
||||
|
@ -43,7 +44,9 @@ fromB64' = fromMaybe bad . fromB64Maybe'
|
|||
-- Only ascii strings are tested, because an arbitrary string may contain
|
||||
-- characters not encoded using the FileSystemEncoding, which would thus
|
||||
-- not roundtrip, as decodeBS always generates an output encoded that way.
|
||||
prop_b64_roundtrips :: String -> Bool
|
||||
prop_b64_roundtrips s
|
||||
prop_b64_roundtrips :: TestableString -> Bool
|
||||
prop_b64_roundtrips ts
|
||||
| all (isAscii) s = s == decodeBS (fromB64' (toB64' (encodeBS s)))
|
||||
| otherwise = True
|
||||
where
|
||||
s = fromTestableString ts
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue