diff options
Diffstat (limited to 'tests/core/c_linkmodes/BUILD.bazel')
-rw-r--r-- | tests/core/c_linkmodes/BUILD.bazel | 139 |
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"], +) |