diff options
Diffstat (limited to 'third_party/bazel/rules_haskell/tests/failures')
5 files changed, 89 insertions, 0 deletions
diff --git a/third_party/bazel/rules_haskell/tests/failures/transitive-deps/BUILD.bazel b/third_party/bazel/rules_haskell/tests/failures/transitive-deps/BUILD.bazel new file mode 100644 index 000000000000..c2efbd924a32 --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/failures/transitive-deps/BUILD.bazel @@ -0,0 +1,66 @@ +load( + "@io_tweag_rules_haskell//haskell:haskell.bzl", + "haskell_library", +) + +package(default_testonly = 1) + +haskell_library( + name = "lib-a", + srcs = ["LibA.hs"], + deps = ["//tests/hackage:base"], +) + +haskell_library( + name = "lib-b", + srcs = ["LibB.hs"], + visibility = ["//visibility:private"], + deps = [ + ":lib-a", + "//tests/hackage:base", + ], +) + +# Targets that must FAIL. These are tagged as manual so that +# +# $ bazel build //... +# +# does not fail. + +haskell_library( + # Should fail because it doesn't specify "base" explicitly. + name = "lib-cFailure", + srcs = ["LibC.hs"], + tags = ["manual"], + deps = [":lib-b"], +) + +haskell_library( + name = "lib-c", + srcs = ["LibC.hs"], + deps = [ + ":lib-b", + "//tests/hackage:base", + ], +) + +haskell_library( + # Should fail because it doesn't specify "lib-a" explicitly. + name = "lib-dFailure", + srcs = ["LibD.hs"], + tags = ["manual"], + deps = [ + ":lib-b", + "//tests/hackage:base", + ], +) + +haskell_library( + name = "lib-d", + srcs = ["LibD.hs"], + deps = [ + ":lib-a", + ":lib-b", + "//tests/hackage:base", + ], +) diff --git a/third_party/bazel/rules_haskell/tests/failures/transitive-deps/LibA.hs b/third_party/bazel/rules_haskell/tests/failures/transitive-deps/LibA.hs new file mode 100644 index 000000000000..23e9486489fe --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/failures/transitive-deps/LibA.hs @@ -0,0 +1,4 @@ +module LibA (thingA) where + +thingA :: Int +thingA = 5 diff --git a/third_party/bazel/rules_haskell/tests/failures/transitive-deps/LibB.hs b/third_party/bazel/rules_haskell/tests/failures/transitive-deps/LibB.hs new file mode 100644 index 000000000000..9ab883093bd8 --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/failures/transitive-deps/LibB.hs @@ -0,0 +1,6 @@ +module LibB (thingB) where + +import LibA (thingA) + +thingB :: Int +thingB = thingA + 1 diff --git a/third_party/bazel/rules_haskell/tests/failures/transitive-deps/LibC.hs b/third_party/bazel/rules_haskell/tests/failures/transitive-deps/LibC.hs new file mode 100644 index 000000000000..70514f13168b --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/failures/transitive-deps/LibC.hs @@ -0,0 +1,6 @@ +module LibC (thingC) where + +import LibB (thingB) + +thingC :: Int +thingC = thingB * 2 diff --git a/third_party/bazel/rules_haskell/tests/failures/transitive-deps/LibD.hs b/third_party/bazel/rules_haskell/tests/failures/transitive-deps/LibD.hs new file mode 100644 index 000000000000..326d224a2a15 --- /dev/null +++ b/third_party/bazel/rules_haskell/tests/failures/transitive-deps/LibD.hs @@ -0,0 +1,7 @@ +module LibD (thingD) where + +import LibA (thingA) +import LibB (thingB) + +thingD :: Int +thingD = thingA + thingB |