diff options
author | Vincent Ambo <tazjin@google.com> | 2019-07-04T10·18+0100 |
---|---|---|
committer | Vincent Ambo <tazjin@google.com> | 2019-07-04T10·18+0100 |
commit | f723b8b878a3c4a4687b9e337a875500bebb39b1 (patch) | |
tree | e85204cf042c355e90cff61c111e7d8cd15df311 /third_party/bazel/rules_haskell/tests/extra-source-files | |
parent | 2eb1dc26e42ffbdc168f05ef744bd4b4f3e4c36f (diff) |
feat(third_party/bazel): Check in rules_haskell from Tweag r/17
Diffstat (limited to 'third_party/bazel/rules_haskell/tests/extra-source-files')
6 files changed, 69 insertions, 0 deletions
diff --git a/third_party/bazel/rules_haskell/tests/extra-source-files/BUILD.bazel b/third_party/bazel/rules_haskell/tests/extra-source-files/BUILD.bazel new file mode 100644 index 000000000000..9552d7c9e974 --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/extra-source-files/BUILD.bazel @@ -0,0 +1,44 @@ +load( + "@io_tweag_rules_haskell//haskell:haskell.bzl", + "haskell_library", + "haskell_test", +) + +package(default_testonly = 1) + +haskell_library( + name = "extra-source-files", + srcs = [ + "Foo.hs", + "FooTH.hs", + ], + # Test that the linker can also see the extra_srcs. + compiler_flags = ["-optl-Wl,@tests/extra-source-files/ld-options.txt"], + extra_srcs = [ + "file.txt", + "ld-options.txt", + ], + deps = [ + "//tests/hackage:base", + "//tests/hackage:template-haskell", + ], +) + +haskell_test( + name = "extra-source-files-bin", + srcs = [ + "Foo.hs", + "FooTH.hs", + "Main.hs", + ], + # Test that the linker can also see the extra_srcs. + compiler_flags = ["-optl-Wl,@tests/extra-source-files/ld-options.txt"], + extra_srcs = [ + "file.txt", + "ld-options.txt", + ], + deps = [ + "//tests/hackage:base", + "//tests/hackage:template-haskell", + ], +) diff --git a/third_party/bazel/rules_haskell/tests/extra-source-files/Foo.hs b/third_party/bazel/rules_haskell/tests/extra-source-files/Foo.hs new file mode 100644 index 000000000000..b3f0c04492db --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/extra-source-files/Foo.hs @@ -0,0 +1,8 @@ +{-# LANGUAGE TemplateHaskell #-} + +module Foo (foo) where + +import FooTH (embedFile) + +foo :: String +foo = $(embedFile "tests/extra-source-files/file.txt") ++ "!" diff --git a/third_party/bazel/rules_haskell/tests/extra-source-files/FooTH.hs b/third_party/bazel/rules_haskell/tests/extra-source-files/FooTH.hs new file mode 100644 index 000000000000..24d663108355 --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/extra-source-files/FooTH.hs @@ -0,0 +1,12 @@ +{-# LANGUAGE TemplateHaskell #-} + +module FooTH (embedFile) where + +import Language.Haskell.TH +import Language.Haskell.TH.Syntax + +embedFile :: FilePath -> Q Exp +embedFile path = do + str <- runIO (readFile path) + addDependentFile path + [| str |] diff --git a/third_party/bazel/rules_haskell/tests/extra-source-files/Main.hs b/third_party/bazel/rules_haskell/tests/extra-source-files/Main.hs new file mode 100644 index 000000000000..13e4bd765b6a --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/extra-source-files/Main.hs @@ -0,0 +1,4 @@ +import Foo (foo) + +main :: IO () +main = putStrLn foo diff --git a/third_party/bazel/rules_haskell/tests/extra-source-files/file.txt b/third_party/bazel/rules_haskell/tests/extra-source-files/file.txt new file mode 100644 index 000000000000..5bc133a4d007 --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/extra-source-files/file.txt @@ -0,0 +1 @@ +And here we go diff --git a/third_party/bazel/rules_haskell/tests/extra-source-files/ld-options.txt b/third_party/bazel/rules_haskell/tests/extra-source-files/ld-options.txt new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/extra-source-files/ld-options.txt |