hackport-0.6.6: cabal/cabal-testsuite/PackageTests/NewSdist/DeterministicTrivial/deterministic.test.hs
import Test.Cabal.Prelude
import qualified Data.ByteString as BS
import qualified Data.ByteString.Base16 as BS16
import qualified Crypto.Hash.SHA256 as SHA256
import System.FilePath
( (</>) )
main = cabalTest $ do
cabal "v2-sdist" ["deterministic"]
env <- getTestEnv
let dir = testCurrentDir env
knownSdist = dir </> "deterministic-0.tar.gz"
mySdist = dir </> "dist-newstyle" </> "sdist" </> "deterministic-0.tar.gz"
-- This helps to understand why this test fails, if it does:
--
-- shell "tar" ["-tzvf", knownSdist]
-- shell "tar" ["-tzvf", mySdist]
--
known <- liftIO (BS.readFile knownSdist)
unknown <- liftIO (BS.readFile mySdist)
assertEqual "hashes didn't match for sdist" (BS16.encode $ SHA256.hash known) (BS16.encode $ SHA256.hash unknown)