36 lines
815 B
Haskell
36 lines
815 B
Haskell
{-# LANGUAGE CPP #-}
|
|
|
|
module Golden.Real where
|
|
|
|
import System.OsRelease
|
|
|
|
import System.FilePath
|
|
import Text.Pretty.Simple
|
|
import Test.Tasty
|
|
import Test.Tasty.Golden
|
|
|
|
import qualified Data.ByteString.Lazy as B
|
|
import qualified Data.Text.Lazy as L
|
|
import qualified Data.Text.Encoding as E
|
|
|
|
|
|
goldenTests :: IO TestTree
|
|
goldenTests = do
|
|
files <- findByExtension [".in"] (takeDirectory (__FILE__) </> "data")
|
|
return $ testGroup
|
|
"Parse os-release into OsRelease"
|
|
(flip fmap files $ \file ->
|
|
let out = replaceExtension file ".golden"
|
|
in goldenVsString (takeBaseName file) out (parse file)
|
|
)
|
|
where
|
|
parse f = do
|
|
c <- readFile f
|
|
pure
|
|
. B.fromStrict
|
|
. E.encodeUtf8
|
|
. L.toStrict
|
|
. pShowNoColor
|
|
. parseOsRelease'
|
|
$ c
|