packages feed

llvm-general-3.3.0.0: test/LLVM/General/Test/DataLayout.hs

module LLVM.General.Test.DataLayout where

import Test.Framework
import Test.Framework.Providers.HUnit
import Test.HUnit

import LLVM.General.Test.Support

import qualified Data.Set as Set

import LLVM.General.Context
import LLVM.General.Module
import LLVM.General.AST
import LLVM.General.AST.DataLayout
import qualified LLVM.General.AST.Global as G

tests = testGroup "DataLayout" [
  testCase name $ strCheck (Module "<string>" mdl Nothing []) ("; ModuleID = '<string>'\n" ++ sdl)
  | (name, mdl, sdl) <- [
   ("none",Nothing, "")
  ] ++ [
   (name, Just mdl, "target datalayout = \"" ++ sdl ++ "\"\n")
   | (name, mdl, sdl) <- [
    ("little-endian", defaultDataLayout { endianness = Just LittleEndian }, "e"),
    ("big-endian", defaultDataLayout { endianness = Just BigEndian }, "E"),
    ("native", defaultDataLayout { nativeSizes = Just (Set.fromList [8,32]) }, "n8:32")
   ]
  ]
 ]