feat(third_party/bazel): Check in rules_haskell from Tweag
This commit is contained in:
parent
2eb1dc26e4
commit
f723b8b878
479 changed files with 51484 additions and 0 deletions
28
third_party/bazel/rules_haskell/tests/package-name/BUILD.bazel
vendored
Normal file
28
third_party/bazel/rules_haskell/tests/package-name/BUILD.bazel
vendored
Normal 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",
|
||||
],
|
||||
)
|
||||
8
third_party/bazel/rules_haskell/tests/package-name/Lib.hs
vendored
Normal file
8
third_party/bazel/rules_haskell/tests/package-name/Lib.hs
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{-# LANGUAGE CPP #-}
|
||||
module Lib (foo, libPackageKey) where
|
||||
|
||||
foo :: Integer
|
||||
foo = 42
|
||||
|
||||
libPackageKey :: String
|
||||
libPackageKey = CURRENT_PACKAGE_KEY
|
||||
33
third_party/bazel/rules_haskell/tests/package-name/Main.hs
vendored
Normal file
33
third_party/bazel/rules_haskell/tests/package-name/Main.hs
vendored
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue