71 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/bin/bash -eu
 | 
						|
# Copyright 2020 The Monero Project
 | 
						|
#
 | 
						|
# Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
# you may not use this file except in compliance with the License.
 | 
						|
# You may obtain a copy of the License at
 | 
						|
#
 | 
						|
#      http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
# Unless required by applicable law or agreed to in writing, software
 | 
						|
# distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
# See the License for the specific language governing permissions and
 | 
						|
# limitations under the License.
 | 
						|
#
 | 
						|
################################################################################
 | 
						|
 | 
						|
export BOOST_ROOT=/src/monero/boost_1_70_0
 | 
						|
export OPENSSL_ROOT_DIR=/src/monero/openssl-1.1.1g
 | 
						|
 | 
						|
cd monero
 | 
						|
sed -i -e 's/include(FindCcache)/# include(FindCcache)/' CMakeLists.txt
 | 
						|
git submodule init
 | 
						|
git submodule update
 | 
						|
mkdir -p build
 | 
						|
cd build
 | 
						|
export CXXFLAGS="$CXXFLAGS -fPIC"
 | 
						|
cmake -D OSSFUZZ=ON -D STATIC=ON -D BUILD_TESTS=ON -D USE_LTO=OFF -D ARCH="default" ..
 | 
						|
 | 
						|
TESTS="\
 | 
						|
  base58_fuzz_tests \
 | 
						|
  block_fuzz_tests \
 | 
						|
  transaction_fuzz_tests \
 | 
						|
  load-from-binary_fuzz_tests \
 | 
						|
  load-from-json_fuzz_tests \
 | 
						|
  parse-url_fuzz_tests \
 | 
						|
  http-client_fuzz_tests \
 | 
						|
  levin_fuzz_tests \
 | 
						|
  bulletproof_fuzz_tests \
 | 
						|
  tx-extra_fuzz_tests \
 | 
						|
"
 | 
						|
 | 
						|
# only libfuzzer can run the slow to start ones
 | 
						|
if test "x$FUZZING_ENGINE" == 'xlibfuzzer'
 | 
						|
then
 | 
						|
  TESTS="$TESTS \
 | 
						|
    signature_fuzz_tests \
 | 
						|
    cold-outputs_fuzz_tests \
 | 
						|
    cold-transaction_fuzz_tests \
 | 
						|
  "
 | 
						|
fi
 | 
						|
 | 
						|
make -C tests/fuzz $TESTS
 | 
						|
 | 
						|
cd /src/monero/monero/build/tests/fuzz
 | 
						|
for fuzzer in *_fuzz_tests
 | 
						|
do
 | 
						|
  cp "$fuzzer" "$OUT"
 | 
						|
  base=$(echo $fuzzer | sed -e s/_fuzz_tests//)
 | 
						|
  cd "/src/monero/monero/tests/data/fuzz/$base"
 | 
						|
  rm -f "${OUT}/${fuzzer}_seed_corpus.zip"
 | 
						|
  for f in *
 | 
						|
  do
 | 
						|
    h=$(sha1sum "$f" | awk '{print $1}')
 | 
						|
    cp "$f" "$h"
 | 
						|
    zip "${OUT}/${fuzzer}_seed_corpus.zip" "$h"
 | 
						|
    rm -f "$h"
 | 
						|
  done
 | 
						|
  cd -
 | 
						|
done
 |