Skip to content

Commit 0b74abc

Browse files
authored
Setup OSS Fuzz integration (#57)
`.bazelrc` is copied from bazel rules_fuzzing: https://github.com/bazelbuild/rules_fuzzing/blob/f6062a88d83463e2900e47bc218547ba046dad44/.bazelrc This gives us full OSS fuzz integration across multiple fuzzers.
1 parent c91a56e commit 0b74abc

File tree

1 file changed

+52
-2
lines changed

1 file changed

+52
-2
lines changed

.bazelrc

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,58 @@
1-
# Force the use of Clang for C++ builds.
1+
# Copyright 2021 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# https://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
# Copied from bazel rules_fuzzing.
16+
# https://github.com/bazelbuild/rules_fuzzing/blob/f6062a88d83463e2900e47bc218547ba046dad44/.bazelrc
17+
18+
# Force the use of Clang for all builds.
219
build --action_env=CC=clang-10
320
build --action_env=CXX=clang++-10
421

5-
# Define the --config=asan-libfuzzer configuration.
22+
# The ASAN configuration suitable for C++ unit tests.
23+
build:asan --copt=-fsanitize=address
24+
build:asan --linkopt=-fsanitize=address
25+
26+
# LibFuzzer + ASAN
627
build:asan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing//fuzzing/engines:libfuzzer
728
build:asan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_instrumentation=libfuzzer
829
build:asan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_sanitizer=asan
30+
31+
# LibFuzzer + MSAN
32+
build:msan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing//fuzzing/engines:libfuzzer
33+
build:msan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_instrumentation=libfuzzer
34+
build:msan-libfuzzer --@rules_fuzzing//fuzzing:cc_engine_sanitizer=msan
35+
36+
# LibFuzzer + MSAN (reproduction mode)
37+
build:msan-libfuzzer-repro --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing//fuzzing/engines:libfuzzer
38+
build:msan-libfuzzer-repro --@rules_fuzzing//fuzzing:cc_engine_instrumentation=libfuzzer
39+
build:msan-libfuzzer-repro --@rules_fuzzing//fuzzing:cc_engine_sanitizer=msan-origin-tracking
40+
41+
# Honggfuzz + ASAN
42+
build:asan-honggfuzz --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing//fuzzing/engines:honggfuzz
43+
build:asan-honggfuzz --@rules_fuzzing//fuzzing:cc_engine_instrumentation=honggfuzz
44+
build:asan-honggfuzz --@rules_fuzzing//fuzzing:cc_engine_sanitizer=asan
45+
46+
# Honggfuzz + MSAN
47+
build:msan-honggfuzz --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing//fuzzing/engines:honggfuzz
48+
build:msan-honggfuzz --@rules_fuzzing//fuzzing:cc_engine_instrumentation=honggfuzz
49+
build:msan-honggfuzz --@rules_fuzzing//fuzzing:cc_engine_sanitizer=msan
50+
51+
# Replay + ASAN
52+
build:asan-replay --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing//fuzzing/engines:replay
53+
build:asan-replay --@rules_fuzzing//fuzzing:cc_engine_instrumentation=none
54+
build:asan-replay --@rules_fuzzing//fuzzing:cc_engine_sanitizer=asan
55+
56+
build:oss-fuzz --@rules_fuzzing//fuzzing:cc_engine=@rules_fuzzing_oss_fuzz//:oss_fuzz_engine
57+
build:oss-fuzz --@rules_fuzzing//fuzzing:cc_engine_instrumentation=oss-fuzz
58+
build:oss-fuzz --@rules_fuzzing//fuzzing:cc_engine_sanitizer=none

0 commit comments

Comments
 (0)