summaryrefslogtreecommitdiff
path: root/fuzz/report
diff options
context:
space:
mode:
Diffstat (limited to 'fuzz/report')
-rwxr-xr-xfuzz/report80
1 files changed, 0 insertions, 80 deletions
diff --git a/fuzz/report b/fuzz/report
deleted file mode 100755
index bebb0ca..0000000
--- a/fuzz/report
+++ /dev/null
@@ -1,80 +0,0 @@
1#!/bin/bash -e
2# Copyright (c) 2019 Yubico AB. All rights reserved.
3# Use of this source code is governed by a BSD-style
4# license that can be found in the LICENSE file.
5#
6# XXX This should really be a Makefile.
7
8T=""
9#T+=" harnesses/assert"
10#T+=" harnesses/assert-rsa-h-p"
11#T+=" harnesses/assert-u2f"
12#T+=" harnesses/cred"
13#T+=" harnesses/cred-rsa-h-p"
14#T+=" harnesses/cred-u2f"
15#T+=" harnesses/cred-u2f-exclude"
16#T+=" harnesses/fido2-assert-G"
17#T+=" harnesses/fido2-assert-V"
18#T+=" harnesses/fido2-cred-M"
19#T+=" harnesses/fido2-cred-V"
20T+=" harnesses/fuzz_assert"
21T+=" harnesses/fuzz_bio"
22T+=" harnesses/fuzz_cred"
23T+=" harnesses/fuzz_credman"
24T+=" harnesses/fuzz_mgmt"
25
26clean() {
27 echo cleaning
28 rm -rf obj
29 mkdir obj
30}
31
32build() {
33 echo building
34 mkdir obj/build
35 (cd obj/build && cmake -DFUZZ=1 -DLIBFUZZER=1 -DCMAKE_C_COMPILER=clang \
36 -DCOVERAGE=1 -DCMAKE_BUILD_TYPE=Debug ../../..) 2>/dev/null 1>&2
37 make -C obj/build 2>/dev/null 1>&2
38 cc -fPIC -D_GNU_SOURCE -shared -o obj/preload-fuzz.so preload-fuzz.c
39}
40
41sync() {
42 if [ -n "${REMOTE}" ]; then
43 for t in ${T}; do
44 echo syncing ${t}
45 (cd obj && REMOTE="${REMOTE}" ../${t} sync)
46 done
47 else
48 tar -C obj -zxf corpus.tgz
49 fi
50}
51
52run() {
53 export LLVM_PROFILE_FILE="profraw/%h-%p.profraw"
54 export PRELOAD=$(realpath obj/preload-fuzz.so)
55
56 for t in ${T}; do
57 echo running ${t}
58 (cd obj && ../${t} run)
59 done
60}
61
62merge() {
63 echo merging
64 (cd obj && \
65 llvm-profdata merge -sparse profraw/*.profraw \
66 -o libfido2.profdata &&
67 llvm-cov show -format=html -tab-size=8 build/src/libfido2.so \
68 -instr-profile=libfido2.profdata > report.html &&
69 llvm-cov report -use-color=false build/src/libfido2.so \
70 -instr-profile=libfido2.profdata > summary.txt &&
71 llvm-cov report -use-color=false -show-functions \
72 -instr-profile=libfido2.profdata build/src/libfido2.so \
73 ../../src/*.[ch] > functions.txt)
74}
75
76clean
77build
78sync
79run
80merge