tar-0.7.2.0: test/Codec/Archive/Tar/Unpack/Tests.hs
{-# LANGUAGE OverloadedStrings #-}
module Codec.Archive.Tar.Unpack.Tests
( case_modtime_1970
) where
import qualified Codec.Archive.Tar as Tar
import qualified Codec.Archive.Tar.Types as Tar
import Codec.Archive.Tar.Types (GenEntries(..), Entries, GenEntry(..))
import qualified Codec.Archive.Tar.Unpack as Unpack
import Control.Exception
import Data.Time.Clock
import Data.Time.Clock.System
import System.Directory
import System.FilePath
import System.IO.Temp
import Test.Tasty.QuickCheck
case_modtime_1970 :: Property
case_modtime_1970 = ioProperty $ withSystemTempDirectory "tar-test" $ \baseDir -> do
let filename = "foo"
Right tarPath <- pure $ Tar.toTarPath False filename
let entry = (Tar.fileEntry tarPath "bar") { entryTime = 0 }
entries = Next entry Done :: Entries IOException
Tar.unpack baseDir entries
modTime <- getModificationTime (baseDir </> filename)
pure $ modTime === UTCTime systemEpochDay 0