]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/defs.bzl
import quincy beta 17.1.0
[ceph.git] / ceph / src / rocksdb / defs.bzl
1 # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
2 #
3 # defs.bzl - Definitions for Facebook-specific buck build integration
4 # in TARGETS
5
6 load("@fbcode_macros//build_defs:coverage.bzl", "coverage")
7 load("@fbcode_macros//build_defs:cpp_binary.bzl", "cpp_binary")
8 load("@fbcode_macros//build_defs:custom_unittest.bzl", "custom_unittest")
9
10 def test_binary(
11 test_name,
12 test_cc,
13 parallelism,
14 rocksdb_arch_preprocessor_flags,
15 rocksdb_os_preprocessor_flags,
16 rocksdb_compiler_flags,
17 rocksdb_preprocessor_flags,
18 rocksdb_external_deps,
19 rocksdb_os_deps,
20 extra_deps,
21 extra_compiler_flags):
22 TEST_RUNNER = native.package_name() + "/buckifier/rocks_test_runner.sh"
23
24 ttype = "gtest" if parallelism == "parallel" else "simple"
25 test_bin = test_name + "_bin"
26
27 cpp_binary(
28 name = test_bin,
29 srcs = [test_cc],
30 arch_preprocessor_flags = rocksdb_arch_preprocessor_flags,
31 os_preprocessor_flags = rocksdb_os_preprocessor_flags,
32 compiler_flags = rocksdb_compiler_flags + extra_compiler_flags,
33 preprocessor_flags = rocksdb_preprocessor_flags,
34 deps = [":rocksdb_test_lib"] + extra_deps,
35 os_deps = rocksdb_os_deps,
36 external_deps = rocksdb_external_deps,
37 )
38
39 binary_path = "$(location :{})".format(test_bin)
40
41 base_path = native.package_name()
42 tags = []
43 if coverage.is_coverage_enabled(base_path):
44 # This tag instructs testpilot to use
45 # the lower-memory coverage runner
46 # (e.g. it tells testpilot that the binary
47 # is actually instrumented with coverage info)
48 tags = ["coverage"]
49
50 custom_unittest(
51 name = test_name,
52 command = [TEST_RUNNER, binary_path],
53 type = ttype,
54 env = {"BUCK_BASE_BINARY": binary_path},
55 tags = tags,
56 )