feat(third_party/bazel): Check in rules_haskell from Tweag

This commit is contained in:
Vincent Ambo 2019-07-04 11:18:12 +01:00
parent 2eb1dc26e4
commit f723b8b878
479 changed files with 51484 additions and 0 deletions

View file

@ -0,0 +1,28 @@
load(
"@io_tweag_rules_haskell//haskell:haskell.bzl",
"haskell_library",
"haskell_test",
)
# Tests around our use of package names.
package(default_testonly = 1)
haskell_library(
# The character "Z" should be untouched in the GHC package name.
# However, underscores (which are not legal) should be turned into dashes.
name = "lib-a_Z",
srcs = ["Lib.hs"],
version = "1.2.3.4",
deps = ["//tests/hackage:base"],
)
haskell_test(
name = "bin",
size = "small",
srcs = ["Main.hs"],
version = "0.0.0", # This flags triggers the `MIN_VERSION` macro generation
deps = [
":lib-a_Z",
"//tests/hackage:base",
],
)

View file

@ -0,0 +1,8 @@
{-# LANGUAGE CPP #-}
module Lib (foo, libPackageKey) where
foo :: Integer
foo = 42
libPackageKey :: String
libPackageKey = CURRENT_PACKAGE_KEY

View file

@ -0,0 +1,33 @@
{-# LANGUAGE CPP #-}
{-# LANGUAGE PackageImports #-}
module Main (main) where
import Control.Monad (when)
-- Test the PackageImports extension.
import "lib-a-Z" Lib
-- Test macros that GHC creates automatically based on the package version.
versionHighEnoughTest, versionTooLowTest :: Bool
#if MIN_VERSION_lib_a_Z(1,2,3)
versionHighEnoughTest = True
#else
versionHighEnoughTest = False
#endif
#if MIN_VERSION_lib_a_Z(1,2,4)
versionTooLowTest = False
#else
versionTooLowTest = True
#endif
check :: (Show a, Eq a) => a -> a -> IO ()
check x y = when (x /= y) $ error $ "Failed check: " ++ show (x, y)
main :: IO ()
main = do
check foo 42
check VERSION_lib_a_Z "1.2.3.4"
check libPackageKey "testsZSpackage-nameZSlib-a-ZZ"
check versionHighEnoughTest True
check versionTooLowTest True