aboutsummaryrefslogtreecommitdiff
path: root/tests/core/c_linkmodes/BUILD.bazel
diff options
context:
space:
mode:
Diffstat (limited to 'tests/core/c_linkmodes/BUILD.bazel')
-rw-r--r--tests/core/c_linkmodes/BUILD.bazel139
1 files changed, 139 insertions, 0 deletions
diff --git a/tests/core/c_linkmodes/BUILD.bazel b/tests/core/c_linkmodes/BUILD.bazel
new file mode 100644
index 00000000..ee7f68e6
--- /dev/null
+++ b/tests/core/c_linkmodes/BUILD.bazel
@@ -0,0 +1,139 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary")
+
+go_binary(
+ name = "adder_archive",
+ srcs = ["add.go"],
+ cgo = True,
+ linkmode = "c-archive",
+ tags = ["manual"],
+)
+
+cc_test(
+ name = "c-archive_test",
+ srcs = select({
+ "@io_bazel_rules_go//go/platform:windows": ["skip.c"],
+ "//conditions:default": ["add_test_archive.c"],
+ }),
+ deps = select({
+ "@io_bazel_rules_go//go/platform:windows": [],
+ "//conditions:default": [":adder_archive"],
+ }),
+)
+
+go_binary(
+ name = "c-archive_empty_hdr",
+ srcs = ["empty.go"],
+ cgo = True,
+ linkmode = "c-archive",
+ tags = ["manual"],
+)
+
+cc_test(
+ name = "c-archive_empty_hdr_test",
+ srcs = select({
+ "@io_bazel_rules_go//go/platform:windows": ["skip.c"],
+ "//conditions:default": ["c-archive_empty_hdr_test.c"],
+ }),
+ deps = select({
+ "@io_bazel_rules_go//go/platform:windows": [],
+ "//conditions:default": [":c-archive_empty_hdr"],
+ }),
+)
+
+go_binary(
+ name = "adder_shared",
+ srcs = ["add.go"],
+ cgo = True,
+ linkmode = "c-shared",
+ tags = ["manual"],
+)
+
+cc_test(
+ name = "c-shared_test",
+ srcs = select({
+ "@io_bazel_rules_go//go/platform:windows": ["skip.c"],
+ "//conditions:default": ["add_test_shared.c"],
+ }),
+ deps = select({
+ "@io_bazel_rules_go//go/platform:windows": [],
+ "//conditions:default": [":adder_shared"],
+ }),
+)
+
+go_binary(
+ name = "crypto",
+ srcs = [":crypto.go"],
+ cgo = True,
+ linkmode = "c-shared",
+ tags = ["manual"],
+ deps = ["@org_golang_x_crypto//nacl/box:go_default_library"],
+)
+
+cc_test(
+ name = "c-shared_dl_test",
+ srcs = select({
+ "@io_bazel_rules_go//go/platform:windows": ["skip.c"],
+ "//conditions:default": ["crypto_test_dl.c"],
+ }),
+ copts = select({
+ "@io_bazel_rules_go//go/platform:windows": [],
+ "//conditions:default": ['-DSO=\\"$(rootpath :crypto)\\"'],
+ }),
+ data = select({
+ "@io_bazel_rules_go//go/platform:windows": [],
+ "//conditions:default": [":crypto"],
+ }),
+ linkopts = select({
+ "@io_bazel_rules_go//go/platform:windows": [],
+ "//conditions:default": ["-ldl"],
+ }),
+)
+
+cc_library(
+ name = "adder_sandwich_cc",
+ srcs = ["add_sandwich.c"],
+ hdrs = ["add_sandwich.h"],
+ linkstatic = True,
+ alwayslink = True,
+)
+
+go_binary(
+ name = "adder_sandwich_archive",
+ srcs = ["add_sandwich.go"],
+ cdeps = [":adder_sandwich_cc"],
+ cgo = True,
+ linkmode = "c-archive",
+ tags = ["manual"],
+)
+
+cc_test(
+ name = "c-archive_sandwich_test",
+ srcs = select({
+ "@io_bazel_rules_go//go/platform:windows": ["skip.c"],
+ "//conditions:default": ["add_test_sandwich.c"],
+ }),
+ deps = select({
+ "@io_bazel_rules_go//go/platform:windows": [],
+ "//conditions:default": [":adder_sandwich_archive"],
+ }),
+)
+
+go_binary(
+ name = "go_with_cgo_dep",
+ srcs = select({
+ "@io_bazel_rules_go//go/platform:windows": ["empty.go"],
+ "//conditions:default": ["go_with_cgo_dep.go"],
+ }),
+ cgo = True,
+ linkmode = "c-archive",
+ deps = ["@org_golang_x_sys//unix"],
+)
+
+cc_binary(
+ name = "go_with_cgo_dep_caller",
+ srcs = select({
+ "@io_bazel_rules_go//go/platform:windows": ["skip.c"],
+ "//conditions:default": ["go_with_cgo_dep_caller.cc"],
+ }),
+ deps = [":go_with_cgo_dep"],
+)