1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
import Control.Monad
import Foreign.C.String
test_strings = ["Hello World", replicate 10000 'a']
assertEqual :: (Eq a, Show a) => a -> a -> IO ()
assertEqual x y = if x == y then return () else error $ "assertEqual: " ++ show x ++ " /= " ++ show y
main = do
-- Try roundtripping some ASCII strings through the locale encoding
forM test_strings $ \try_str -> do
got_str <- withCString try_str peekCString
got_str `assertEqual` try_str
-- Try roundtripping some ASCII strings with lengths through the locale encoding
forM test_strings $ \try_str -> do
got_str <- withCStringLen try_str peekCStringLen
got_str `assertEqual` try_str
|