diff options
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 |