xref: /aosp_15_r20/external/libhevc/fuzzer/ossfuzz.sh (revision c83a76b084498d55f252f48b2e3786804cdf24b7)
1*c83a76b0SSuyog Pawar#!/bin/bash -eu
2*c83a76b0SSuyog Pawar#
3*c83a76b0SSuyog Pawar# Licensed under the Apache License, Version 2.0 (the "License");
4*c83a76b0SSuyog Pawar# you may not use this file except in compliance with the License.
5*c83a76b0SSuyog Pawar# You may obtain a copy of the License at
6*c83a76b0SSuyog Pawar#
7*c83a76b0SSuyog Pawar#      http://www.apache.org/licenses/LICENSE-2.0
8*c83a76b0SSuyog Pawar#
9*c83a76b0SSuyog Pawar# Unless required by applicable law or agreed to in writing, software
10*c83a76b0SSuyog Pawar# distributed under the License is distributed on an "AS IS" BASIS,
11*c83a76b0SSuyog Pawar# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*c83a76b0SSuyog Pawar# See the License for the specific language governing permissions and
13*c83a76b0SSuyog Pawar# limitations under the License.
14*c83a76b0SSuyog Pawar#
15*c83a76b0SSuyog Pawar################################################################################
16*c83a76b0SSuyog Pawar# Ensure SRC and WORK are set
17*c83a76b0SSuyog Pawartest "${SRC}" != "" || exit 1
18*c83a76b0SSuyog Pawartest "${WORK}" != "" || exit 1
19*c83a76b0SSuyog Pawartest "${OUT}" != "" || exit 1
20*c83a76b0SSuyog Pawar
21*c83a76b0SSuyog Pawar#Opt out of shift sanitizer in undefined sanitizer
22*c83a76b0SSuyog Pawarif [[ $SANITIZER = *undefined* ]]; then
23*c83a76b0SSuyog Pawar  CFLAGS="$CFLAGS -fno-sanitize=shift"
24*c83a76b0SSuyog Pawar  CXXFLAGS="$CXXFLAGS -fno-sanitize=shift"
25*c83a76b0SSuyog Pawarfi
26*c83a76b0SSuyog Pawar
27*c83a76b0SSuyog Pawar# Build libhevc
28*c83a76b0SSuyog Pawarbuild_dir=$WORK/build
29*c83a76b0SSuyog Pawarrm -rf ${build_dir}
30*c83a76b0SSuyog Pawarmkdir -p ${build_dir}
31*c83a76b0SSuyog Pawar
32*c83a76b0SSuyog Pawarpushd ${build_dir}
33*c83a76b0SSuyog Pawarcmake ${SRC}/libhevc
34*c83a76b0SSuyog Pawarmake -j$(nproc) hevc_dec_fuzzer hevc_enc_fuzzer
35*c83a76b0SSuyog Pawarcp ${build_dir}/hevc_dec_fuzzer $OUT/
36*c83a76b0SSuyog Pawarcp ${build_dir}/hevc_enc_fuzzer $OUT/
37*c83a76b0SSuyog Pawarpopd
38*c83a76b0SSuyog Pawar
39*c83a76b0SSuyog Pawarcp $SRC/hevc_dec_fuzzer_seed_corpus.zip $OUT/hevc_dec_fuzzer_seed_corpus.zip
40*c83a76b0SSuyog Pawarcp $SRC/libhevc/fuzzer/hevc_dec_fuzzer.dict $OUT/hevc_dec_fuzzer.dict
41