packages feed

llvm-pretty-0.14.0.0: test/DataLayout.hs

module DataLayout ( tests ) where

import Text.LLVM.AST
import Text.LLVM.PP

import Test.Tasty
import Test.Tasty.HUnit

tests :: TestTree
tests =
  let rspDL s = Just $ "target datalayout = \"" <> s <> "\""
      ppDL = show . ppLLVM llvmVlatest ppDataLayout
  in testGroup "Test DataLayout"
     [ testCase "datalayout 0" $ ppDL <$> parseDataLayout "" @?= Just ""
     , testCase "datalayout 1"
       $ let dl = "e" in ppDL <$> parseDataLayout dl @?= rspDL dl
     , testCase "datalayout 2"
       $ let dl = "e-m:e" in ppDL <$> parseDataLayout dl @?= rspDL dl
     , testCase "datalayout 3"
       $ let dl = "e-m:e-p270:32:32"
         in ppDL <$> parseDataLayout dl @?= rspDL dl
     , testCase "datalayout 4"
       $ let dl = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-S128"
         in ppDL <$> parseDataLayout dl @?= rspDL dl
     , testCase "datalayout 5"
       $ let dl = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
         in ppDL <$> parseDataLayout dl @?= rspDL dl
     , testCase "datalayout 6"
       $ let dl = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-ni:3:4-S128"
         in ppDL <$> parseDataLayout dl @?= rspDL dl
     ]