tools/fuzzing/libfuzzer/clone_libfuzzer.sh
author arthur.iakab <aiakab@mozilla.com>
Wed, 26 Jun 2019 01:09:31 +0300
changeset 480080 1e28a064d7be5feec7ae99f5e5b17012d512c421
parent 470038 f4de96f2d275f0bff16042ef322a69366b79cb81
permissions -rwxr-xr-x
Merge mozilla-central to mozilla-inbound

#!/bin/bash

# Optionally get revision from cmd line
# Changelog: https://reviews.llvm.org/source/compiler-rt/history/compiler-rt/trunk/lib/fuzzer/
[ $1 ] && REVISION=$1 || REVISION=356365

mkdir tmp
svn co -qr $REVISION https://llvm.org/svn/llvm-project/compiler-rt/trunk tmp || exit

if [ $1 ]; then
  # libFuzzer source files
  CPPS=($(ls -rv tmp/lib/fuzzer/*.cpp))
  CPPS=(${CPPS[@]##*/})
  CPPS=(${CPPS[@]##FuzzerMain*}) # ignored

  # Update SOURCES entries
  sed -e "/^SOURCES/,/^]/ {/'/d}" -i moz.build
  for CPP in ${CPPS[@]}; do sed -e "/^SOURCES/ a \\\t'${CPP}'," -i moz.build; done

  # Remove previous files
  rm *.{cpp,h,def}
fi

# Copy files
cp tmp/lib/fuzzer/*.{cpp,h,def} .

# Remove the temporary directory
rm -Rf tmp/

[ $1 ] && echo "Updated libFuzzer to ${REVISION}"