Compare commits
2 commits
5dba19b9a4
...
be35960f91
Author | SHA1 | Date | |
---|---|---|---|
be35960f91 | |||
70cec6a82b |
2 changed files with 72 additions and 0 deletions
15
.drone.yml
15
.drone.yml
|
@ -1,3 +1,18 @@
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: daily — amd64 — clang
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- main
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: fuzz
|
||||||
|
image: amd64_clang_fuzz:latest
|
||||||
|
pull: if-not-exists
|
||||||
|
commands:
|
||||||
|
- ./tools/ci/amd64/clang/fuzz.sh
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
type: exec
|
type: exec
|
||||||
|
|
57
tools/ci/amd64/clang/fuzz.sh
Executable file
57
tools/ci/amd64/clang/fuzz.sh
Executable file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
cd $(git rev-parse --show-toplevel)/
|
||||||
|
# rm -rf ./build
|
||||||
|
|
||||||
|
export CC=$(which afl-clang-lto)
|
||||||
|
export CXX=$(which afl-clang-lto++)
|
||||||
|
export AR=$(which llvm-ar)
|
||||||
|
export RANLIB=$(which llvm-ranlib)
|
||||||
|
export AS=$(which llvm-as)
|
||||||
|
|
||||||
|
conan build . \
|
||||||
|
-c tools.system.package_manager:mode=install \
|
||||||
|
-c tools.cmake.cmaketoolchain:generator=Ninja \
|
||||||
|
-c tools.build:compiler_executables='{"c": "afl-clang-lto", "cpp": "afl-clang-lto++"}' \
|
||||||
|
-s build_type=Release \
|
||||||
|
-s compiler=clang \
|
||||||
|
-s compiler.version=20 \
|
||||||
|
-s compiler.libcxx=libc++ \
|
||||||
|
-o use_mold=True \
|
||||||
|
--build=missing \
|
||||||
|
--build=missing
|
||||||
|
|
||||||
|
fuzz_test_count=$(find ./build -type f -name '*_fuzz' -executable | wc -l)
|
||||||
|
total_fuzz_time=60 # in seconds
|
||||||
|
|
||||||
|
time_per_fuzz=$((total_fuzz_time / fuzz_test_count))
|
||||||
|
|
||||||
|
echo "Fuzz test count: ${fuzz_test_count}"
|
||||||
|
echo "Total fuzz time: ${total_fuzz_time}"
|
||||||
|
echo "Time per fuzz: ${time_per_fuzz}"
|
||||||
|
|
||||||
|
export AFL_SKIP_CPUFREQ=1
|
||||||
|
export AFL_NO_UI=1
|
||||||
|
|
||||||
|
for fuzz_name in $(find ./build -type f -name '*_fuzz' -executable); do
|
||||||
|
base_name=$(basename $fuzz_name)
|
||||||
|
out_path="/fuzz/${base_name}_out"
|
||||||
|
in_path="/fuzz/${base_name}_in"
|
||||||
|
|
||||||
|
echo "Running ${fuzz_name} for ${time_per_fuzz} seconds..."
|
||||||
|
echo "base_name: ${base_name}"
|
||||||
|
echo "out_path: ${out_path}"
|
||||||
|
echo "in_path: ${in_path}"
|
||||||
|
|
||||||
|
if [[ ! -e $dir ]]; then
|
||||||
|
echo "No directories detected for ${base_name}"
|
||||||
|
echo "Creating dummy files..."
|
||||||
|
mkdir -p ${in_path}
|
||||||
|
mkdir -p ${out_path}
|
||||||
|
|
||||||
|
echo "0" > ${in_path}/a
|
||||||
|
fi
|
||||||
|
|
||||||
|
afl-fuzz -V $time_per_fuzz -i $in_path -o $out_path -- $fuzz_name
|
||||||
|
done
|
Loading…
Add table
Reference in a new issue