diff options
author | Joey Hess <joey@kitenet.net> | 2012-12-19 16:15:39 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-12-19 16:15:39 -0400 |
commit | 271bec8c70920322fee13a052df4a9279255e698 (patch) | |
tree | 0cd67d713c46945687a9995034d0aa9d3c262e27 /Logs/Transfer.hs | |
parent | 40fcead8d1378f5d821bdd08e99c3103e5a4b316 (diff) |
quickcheck test for transfer info read/write code
Fixed a bug the quickcheck turned up.
Diffstat (limited to 'Logs/Transfer.hs')
-rw-r--r-- | Logs/Transfer.hs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Logs/Transfer.hs b/Logs/Transfer.hs index 76412cf39..fa85846bb 100644 --- a/Logs/Transfer.hs +++ b/Logs/Transfer.hs @@ -294,7 +294,9 @@ readTransferInfo mpid s = TransferInfo <*> pure False where (firstline, rest) = separate (== '\n') s - (filename, _) = separate (== '\n') rest + filename + | end rest == "\n" = beginning rest + | otherwise = rest bits = split " " firstline numbits = length bits time = if numbits > 0 @@ -304,6 +306,16 @@ readTransferInfo mpid s = TransferInfo then Just <$> readish =<< headMaybe (drop 1 bits) else pure Nothing -- not failure +{- for quickcheck -} +prop_read_write_transferinfo :: TransferInfo -> Bool +prop_read_write_transferinfo info + | associatedFile info == Just "" = True -- file cannot be empty + | transferRemote info /= Nothing = True -- remote not stored + | transferTid info /= Nothing = True -- tid not stored + | otherwise = Just (info { transferPaused = False }) == info' + where + info' = readTransferInfo (transferPid info) (writeTransferInfo info) + parsePOSIXTime :: String -> Maybe POSIXTime parsePOSIXTime s = utcTimeToPOSIXSeconds <$> parseTime defaultTimeLocale "%s%Qs" s |