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
45
third_party/bazel/rules_haskell/tests/repl-flags/BUILD.bazel
vendored
Normal file
45
third_party/bazel/rules_haskell/tests/repl-flags/BUILD.bazel
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
load("@io_tweag_rules_haskell//haskell:haskell.bzl", "haskell_test")
|
||||
|
||||
package(default_testonly = 1)
|
||||
|
||||
# This test the `compiler` flags in many ways:
|
||||
# - the test needs to be built with `-DTESTS_TOOLCHAIN_COMPILER_FLAGS`, provided by the toolchain attribute `compiler_flags`
|
||||
# - the test needs `-XOverloadedStrings`, provided by this rule `compiler_flags`
|
||||
# - toolchain and rule `compiler_flags` are additive, else one of the previous test will fail
|
||||
# - the ordering is as such as rule flags are more important that toolchain flags
|
||||
|
||||
# This rule must build correctly (using `bazel build`), but also as a repl (using `bazel run //tests/repl-flags:compiler_flags@repl`)
|
||||
haskell_test(
|
||||
name = "compiler_flags",
|
||||
srcs = ["CompilerFlags.hs"],
|
||||
|
||||
# This also ensure that local `compiler_flags` does not override the `global ones`
|
||||
compiler_flags = ["-XOverloadedStrings"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//tests/hackage:base",
|
||||
"//tests/hackage:bytestring",
|
||||
],
|
||||
)
|
||||
|
||||
# This test the `repl_ghci_args` flags in a similar way
|
||||
# - the test needs to be built with `-DTESTS_TOOLCHAIN_REPL_FLAGS`, provided by the toolchain attribute `compiler_flags`
|
||||
# - the test needs `-XOverloadedStrings`, provided by toolchain `repl_ghci_args`
|
||||
# - toolchain and rule `compiler_flags` are additive, else one of the previous test will fail
|
||||
# - the ordering is as such as rule flags are more important that
|
||||
# toolchain flags and that repl flags are more important that
|
||||
# copmiler flags
|
||||
|
||||
# This rule must build correctly (using `bazel build`), but also as a repl (using `bazel run //tests/repl-flags:compiler_flags@repl`). The final result between the repl and the binary must be different
|
||||
haskell_test(
|
||||
name = "repl_flags",
|
||||
srcs = ["ReplFlags.hs"],
|
||||
|
||||
# This also ensure that local `repl_flags` does not override the `global ones`
|
||||
repl_ghci_args = ["-DTESTS_TOOLCHAIN_REPL_FLAGS"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//tests/hackage:base",
|
||||
"//tests/hackage:bytestring",
|
||||
],
|
||||
)
|
||||
10
third_party/bazel/rules_haskell/tests/repl-flags/CompilerFlags.hs
vendored
Normal file
10
third_party/bazel/rules_haskell/tests/repl-flags/CompilerFlags.hs
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{-# LANGUAGE CPP #-}
|
||||
|
||||
module Main where
|
||||
|
||||
import Data.ByteString
|
||||
|
||||
#ifdef TESTS_TOOLCHAIN_COMPILER_FLAGS
|
||||
main = print ("hello" :: ByteString)
|
||||
#endif
|
||||
|
||||
17
third_party/bazel/rules_haskell/tests/repl-flags/ReplFlags.hs
vendored
Normal file
17
third_party/bazel/rules_haskell/tests/repl-flags/ReplFlags.hs
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{-# LANGUAGE CPP #-}
|
||||
module Main where
|
||||
|
||||
import Data.ByteString
|
||||
|
||||
-- Ensure that `compiler-flags` are correctly set
|
||||
#ifdef TESTS_TOOLCHAIN_COMPILER_FLAGS
|
||||
main = print "hello"
|
||||
#endif
|
||||
|
||||
-- Ensure that `repl_ghci_args` are correctly set
|
||||
-- OverloadedString is passed by toolchain
|
||||
-- The CPP constant is unset by toolchain and set by rule, so ordering must be ensured
|
||||
#ifdef TESTS_TOOLCHAIN_REPL_FLAGS
|
||||
foo = ("world" :: ByteString)
|
||||
#endif
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue