Skip to content

Commit b1978f6

Browse files
committed
Adopt sanitizers from @score_cpp_policies
1 parent 1317934 commit b1978f6

25 files changed

Lines changed: 73 additions & 545 deletions

File tree

.bazelrc

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,51 @@ test:clang-tidy --output_groups=+rules_lint_report
8080
test:clang-tidy --extra_toolchains=@llvm_toolchain//:cc-toolchain-x86_64-linux
8181
test:clang-tidy --extra_toolchains=@ferrocene_x86_64_unknown_linux_gnu_llvm//:rust_ferrocene_toolchain
8282

83-
import quality/sanitizer/sanitizer.bazelrc
83+
# ==============================================================================
84+
# Sanitizer Configurations (adapted from @score_cpp_policies)
85+
# ==============================================================================
86+
87+
# Debug symbols for sanitizer stack traces
88+
test:with_debug_symbols --cxxopt=-gline-tables-only
89+
test:with_debug_symbols --cxxopt=-gcolumn-info
90+
test:with_debug_symbols --strip=never
91+
92+
# ASan + UBSan + LSan (Combined)
93+
build:asan_ubsan_lsan --extra_toolchains=@llvm_toolchain//:cc-toolchain-x86_64-linux
94+
build:asan_ubsan_lsan --extra_toolchains=@ferrocene_x86_64_unknown_linux_gnu_llvm//:rust_ferrocene_toolchain
95+
build:asan_ubsan_lsan --cxxopt=-fsanitize=undefined,address,leak
96+
build:asan_ubsan_lsan --cxxopt=-fno-omit-frame-pointer
97+
build:asan_ubsan_lsan --cxxopt=-fno-common
98+
build:asan_ubsan_lsan --linkopt=-fsanitize=undefined,address,leak
99+
build:asan_ubsan_lsan --linkopt=-fsanitize-link-c++-runtime
100+
build:asan_ubsan_lsan --platform_suffix=asan_ubsan
101+
test:asan_ubsan_lsan --config=with_debug_symbols
102+
test:asan_ubsan_lsan --test_tag_filters=-no-asan,-no-lsan,-no-ubsan
103+
test:asan_ubsan_lsan --@score_cpp_policies//sanitizers/flags:sanitizer=asan_ubsan_lsan
104+
test:asan_ubsan_lsan --run_under=@score_cpp_policies//sanitizers:wrapper
105+
106+
# Shortcuts for individual sanitizers
107+
build:asan --config=asan_ubsan_lsan
108+
test:asan --test_tag_filters=-no-asan
109+
build:ubsan --config=asan_ubsan_lsan
110+
test:ubsan --test_tag_filters=-no-ubsan
111+
build:lsan --config=asan_ubsan_lsan
112+
test:lsan --test_tag_filters=-no-lsan
113+
114+
# ThreadSanitizer
115+
build:tsan --extra_toolchains=@llvm_toolchain//:cc-toolchain-x86_64-linux
116+
build:tsan --extra_toolchains=@ferrocene_x86_64_unknown_linux_gnu_llvm//:rust_ferrocene_toolchain
117+
build:tsan --cxxopt=-fsanitize=thread
118+
build:tsan --cxxopt=-O1
119+
build:tsan --linkopt=-fsanitize=thread
120+
build:tsan --linkopt=-fsanitize-link-c++-runtime
121+
build:tsan --platform_suffix=tsan
122+
test:tsan --config=with_debug_symbols
123+
test:tsan --test_tag_filters=-no-tsan
124+
test:tsan --@score_cpp_policies//sanitizers/flags:sanitizer=tsan
125+
test:tsan --run_under=@score_cpp_policies//sanitizers:wrapper
126+
127+
# ==============================================================================
84128

85129
common:codeql --platform_suffix=codeql
86130
common:codeql --extra_toolchains=@llvm_toolchain//:cc-toolchain-x86_64-linux

MODULE.bazel

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@ module(name = "score_communication")
1414

1515
bazel_dep(name = "platforms", version = "1.0.0")
1616

17+
# Centralized sanitizer policies (ASan, TSan, UBSan, LSan)
18+
bazel_dep(name = "score_cpp_policies", version = "0.0.0", dev_dependency = True)
19+
git_override(
20+
module_name = "score_cpp_policies",
21+
commit = "789a32e", # tip of rs/swp-245137 branch
22+
remote = "https://github.com/RSingh1511/score_cpp_policies.git",
23+
)
24+
1725
bazel_dep(name = "gcc_toolchain", version = "0.9.0", dev_dependency = True)
1826

1927
gcc_toolchains = use_extension("@gcc_toolchain//toolchain:module_extensions.bzl", "gcc_toolchains", dev_dependency = True)

quality/integration_testing/integration_testing.bzl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@ def integration_test(name, srcs, filesystem, **kwargs):
5151
}),
5252
os = "linux",
5353
env = select({
54-
"//quality/sanitizer/flags:none": None,
55-
"//quality/sanitizer/flags:any_sanitizer": "//quality/sanitizer:absolute_env",
54+
"@score_cpp_policies//sanitizers/flags:none": None,
55+
"@score_cpp_policies//sanitizers/flags:any_sanitizer": "@score_cpp_policies//sanitizers:absolute_env",
5656
}),
5757
tars = [
5858
filesystem,
5959
] + select({
60-
"//quality/sanitizer/flags:none": [],
61-
"//quality/sanitizer/flags:any_sanitizer": ["//quality/sanitizer:suppressions_pkg"],
60+
"@score_cpp_policies//sanitizers/flags:none": [],
61+
"@score_cpp_policies//sanitizers/flags:any_sanitizer": ["//quality/integration_testing/sanitizer_support:suppressions_pkg"],
6262
}) + [
6363
"@ubuntu24_04//:ubuntu24_04",
6464
],
@@ -166,7 +166,7 @@ def integration_test(name, srcs, filesystem, **kwargs):
166166
_extend_list_in_kwargs_without_duplicates(
167167
kwargs,
168168
"target_compatible_with",
169-
["//quality/sanitizer/constraints:no_tsan"],
169+
["@score_cpp_policies//sanitizers/constraints:no_tsan"],
170170
)
171171

172172
test_as_exec(
Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# *******************************************************************************
2-
# Copyright (c) 2025 Contributors to the Eclipse Foundation
2+
# Copyright (c) 2026 Contributors to the Eclipse Foundation
33
#
44
# See the NOTICE file(s) distributed with this work for additional
55
# information regarding copyright ownership.
@@ -11,17 +11,13 @@
1111
# SPDX-License-Identifier: Apache-2.0
1212
# *******************************************************************************
1313

14-
cc_test(
15-
name = "asan_fail_heap_out_of_bounds",
16-
srcs = ["asan_fail_heap_out_of_bounds.cpp"],
17-
)
18-
19-
cc_test(
20-
name = "lsan_fail_leak",
21-
srcs = ["lsan_fail_leak.cpp"],
22-
)
14+
load("@rules_pkg//pkg:tar.bzl", "pkg_tar")
2315

24-
cc_test(
25-
name = "tsan_fail_data_race",
26-
srcs = ["tsan_fail_data_race.cpp"],
16+
# Re-package suppressions from @score_cpp_policies for integration testing
17+
pkg_tar(
18+
name = "suppressions_pkg",
19+
srcs = ["@score_cpp_policies//sanitizers:suppressions"],
20+
mode = "0444",
21+
package_dir = "quality/sanitizer",
22+
visibility = ["//visibility:public"],
2723
)

quality/sanitizer/BUILD

Lines changed: 0 additions & 102 deletions
This file was deleted.

quality/sanitizer/asan.supp

Lines changed: 0 additions & 17 deletions
This file was deleted.

quality/sanitizer/asan_ubsan_lsan.env.template

Lines changed: 0 additions & 3 deletions
This file was deleted.

quality/sanitizer/constraints/BUILD

Lines changed: 0 additions & 49 deletions
This file was deleted.

quality/sanitizer/flags/BUILD

Lines changed: 0 additions & 51 deletions
This file was deleted.

quality/sanitizer/lsan.supp

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)