From 19fcec84d8d7d21e796c7624e521b60d28ee21ed Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:45:59 +0200 Subject: Adding upstream version 16.2.11+ds. Signed-off-by: Daniel Baumann --- src/spdk/isa-l/tools/check_format.sh | 87 +++++++++ src/spdk/isa-l/tools/iindent | 2 + src/spdk/isa-l/tools/nasm-filter.sh | 47 +++++ src/spdk/isa-l/tools/remove_trailing_whitespace.sh | 2 + src/spdk/isa-l/tools/test_autorun.sh | 63 +++++++ src/spdk/isa-l/tools/test_checks.sh | 115 ++++++++++++ src/spdk/isa-l/tools/test_extended.sh | 208 +++++++++++++++++++++ src/spdk/isa-l/tools/test_fuzz.sh | 171 +++++++++++++++++ src/spdk/isa-l/tools/test_tools.sh | 11 ++ src/spdk/isa-l/tools/yasm-filter.sh | 38 ++++ 10 files changed, 744 insertions(+) create mode 100755 src/spdk/isa-l/tools/check_format.sh create mode 100755 src/spdk/isa-l/tools/iindent create mode 100755 src/spdk/isa-l/tools/nasm-filter.sh create mode 100755 src/spdk/isa-l/tools/remove_trailing_whitespace.sh create mode 100755 src/spdk/isa-l/tools/test_autorun.sh create mode 100755 src/spdk/isa-l/tools/test_checks.sh create mode 100755 src/spdk/isa-l/tools/test_extended.sh create mode 100755 src/spdk/isa-l/tools/test_fuzz.sh create mode 100755 src/spdk/isa-l/tools/test_tools.sh create mode 100755 src/spdk/isa-l/tools/yasm-filter.sh (limited to 'src/spdk/isa-l/tools') diff --git a/src/spdk/isa-l/tools/check_format.sh b/src/spdk/isa-l/tools/check_format.sh new file mode 100755 index 000000000..dfc92b150 --- /dev/null +++ b/src/spdk/isa-l/tools/check_format.sh @@ -0,0 +1,87 @@ +#!/usr/bin/env bash + +set -e +rc=0 +verbose=0 +indent_args='-linux -l95 -cp1 -lps -il6 -ncs' +function iver { printf "%03d%03d%03d%03d" $(echo "$@" | sed 's/GNU indent//' | tr '.' ' '); } + +while [ -n "$*" ]; do + case "$1" in + -v ) + verbose=1 + shift + ;; + -h ) + echo check_format.sh [-h -v] + exit 0 + ;; + esac +done + +echo "Checking format of files in the git index at $PWD" +if ! git rev-parse --is-inside-work-tree >& /dev/null; then + echo "Not in a git repo: Fail" + exit 1 +fi + +if hash indent && [ $(iver $(indent --version)) -ge $(iver 2.2.12) ]; then + echo "Checking C files for coding style..." + for f in `git ls-files '*.c'`; do + [ "$verbose" -gt 0 ] && echo "checking style on $f" + if ! indent $indent_args -st $f | diff -q $f - >& /dev/null; then + echo " File found with formatting issues: $f" + [ "$verbose" -gt 0 ] 2> /dev/null && indent $indent_args -st $f | diff -u $f - + rc=1 + fi + done + [ "$rc" -gt 0 ] && echo " Run ./tools/iindent on files" +else + echo "You do not have a recent indent installed so your code style is not being checked!" +fi + +if hash grep; then + echo "Checking for dos and whitespace violations..." + for f in $(git ls-files); do + [ "$verbose" -gt 0 ] && echo "checking whitespace on $f" + if grep -q '[[:space:]]$' $f ; then + echo " File found with trailing whitespace: $f" + rc=1 + fi + if grep -q $'\r' $f ; then + echo " File found with dos formatting: $f" + rc=1 + fi + done +fi + +echo "Checking source files for permissions..." +while read -r perm _res0 _res1 f; do + [ -z "$f" ] && continue + [ "$verbose" -gt 0 ] && echo "checking permissions on $f" + if [ "$perm" -ne 100644 ]; then + echo " File found with permissions issue ($perm): $f" + rc=1 + fi +done <<< $(git ls-files -s -- ':(exclude)*.sh' ':(exclude)*iindent') + +echo "Checking script files for permissions..." +while read -r perm _res0 _res1 f; do + [ -z "$f" ] && continue + [ "$verbose" -gt 0 ] && echo "checking permissions on $f" + if [ "$perm" -ne 100755 ]; then + echo " Script found with permissions issue ($perm): $f" + rc=1 + fi +done <<< $(git ls-files -s '*.sh') + + +echo "Checking for signoff in commit message..." +if ! git log -n 1 --format=%B --no-merges | grep -q "^Signed-off-by:" ; then + echo " Commit not signed off. Please read src/CONTRIBUTING.md" + rc=1 +fi + +[ "$rc" -gt 0 ] && echo Format Fail || echo Format Pass + +exit $rc diff --git a/src/spdk/isa-l/tools/iindent b/src/spdk/isa-l/tools/iindent new file mode 100755 index 000000000..48d26360f --- /dev/null +++ b/src/spdk/isa-l/tools/iindent @@ -0,0 +1,2 @@ +#!/bin/sh +indent -linux -l95 -cp1 -lps -il6 -ncs "$@" diff --git a/src/spdk/isa-l/tools/nasm-filter.sh b/src/spdk/isa-l/tools/nasm-filter.sh new file mode 100755 index 000000000..5ec9ba3f3 --- /dev/null +++ b/src/spdk/isa-l/tools/nasm-filter.sh @@ -0,0 +1,47 @@ +#/bin/sh + +# Filter out unnecessary options added by automake + +while [ -n "$*" ]; do + case "$1" in + -f | -o | -D ) + # Supported options with arg + options="$options $1 $2" + shift + shift + ;; + -I | -i ) + options="$options $1 $2/" + shift + shift + ;; + --prefix* ) + # Supported options without arg + options="$options $1" + shift + ;; + -I* | -i* ) + options="$options $1/" + shift + ;; + -D* ) # For defines we need to remove spaces + case "$1" in + *' '* ) ;; + *) options="$options $1" ;; + esac + shift + ;; + #-blah ) + # Unsupported options with args - none known + -* ) + # Unsupported options with no args + shift + ;; + * ) + args="$args $1" + shift + ;; + esac +done + +nasm $options $args diff --git a/src/spdk/isa-l/tools/remove_trailing_whitespace.sh b/src/spdk/isa-l/tools/remove_trailing_whitespace.sh new file mode 100755 index 000000000..bb82b9fa5 --- /dev/null +++ b/src/spdk/isa-l/tools/remove_trailing_whitespace.sh @@ -0,0 +1,2 @@ +#!/bin/sh +sed -i -i.bak 's/[[:blank:]]*$//' "$@" diff --git a/src/spdk/isa-l/tools/test_autorun.sh b/src/spdk/isa-l/tools/test_autorun.sh new file mode 100755 index 000000000..58d1a0a69 --- /dev/null +++ b/src/spdk/isa-l/tools/test_autorun.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash + +set -e #exit on fail + +# Override defaults if exist +READLINK=readlink +command -V greadlink >/dev/null 2>&1 && READLINK=greadlink + +# Run in build directory +out="$PWD" +src=$($READLINK -f $(dirname $0))/.. +cd "$src" + +# Echo environment info +if test -d .git; then + branch=$(git describe --always) + commitid=$(git rev-parse HEAD) + brief=$(git log -1 --format='%s') + branch_changes=$(git diff --shortstat) +fi +if command -V uname >/dev/null 2>&1; then + node=$(uname -n) + os_name=$(uname -s) + os_all=$(uname -a) +fi + +echo "Test report v1" +echo "branch: $branch" +echo "brief: $brief" +echo "commitid: $commitid" +echo "node: $node" +echo "os_name: $os_name" +echo "os_all: $os_all" +echo "test_args: $@" +echo "changes: $branch_changes" +command -V lscpu > /dev/null 2>&1 && lscpu + +# Start tests + +[ -z "$1" ] && ./tools/test_checks.sh + +while [ -n "$1" ]; do + case "$1" in + check ) + ./tools/test_checks.sh + shift ;; + ext ) + ./tools/test_extended.sh + shift ;; + format ) + shift ;; + all ) + ./tools/test_checks.sh + ./tools/test_extended.sh + shift ;; + * ) + echo $0 undefined option: $1 + shift ;; + esac +done + +./tools/check_format.sh + diff --git a/src/spdk/isa-l/tools/test_checks.sh b/src/spdk/isa-l/tools/test_checks.sh new file mode 100755 index 000000000..a5a0f45de --- /dev/null +++ b/src/spdk/isa-l/tools/test_checks.sh @@ -0,0 +1,115 @@ +#!/usr/bin/env bash + +set -xe #exit on fail + +# Defaults +cpus=1 +S=$RANDOM +MAKE=make +READLINK=readlink + +# Override defaults if exist +command -V gmake >/dev/null 2>&1 && MAKE=gmake +command -V greadlink >/dev/null 2>&1 && READLINK=greadlink + +out="$PWD" +src=$($READLINK -f $(dirname $0))/.. +source $src/tools/test_tools.sh +cd "$src" +tmp_install_dir=$out/tmp_install + +# Run on mult cpus +if command -V lscpu >/dev/null 2>&1; then + cpus=`lscpu -p | tail -1 | cut -d, -f 2` + cpus=$(($cpus + 1)) +elif command -V sysctl; then + if sysctl -n hw.ncpu >/dev/null 2>&1; then + cpus=$(sysctl -n hw.ncpu) + cpus=$(($cpus + 1)) + fi +fi +echo "Using $cpus cpu threads" + +# Pick a random test seed +if [ -z "$S" ]; then + S=`tr -cd 0-9 /dev/null || S="123" +fi +echo "Running with TEST_SEED=$S" + +# Fix Darwin issues +if uname | grep -q 'Darwin' 2>&1; then + export SED=`which sed` +fi + +# Build and run check tests +if [ -z "$CFLAGS" ]; then + CFLAGS='-g -O2 -fsanitize=undefined -fno-sanitize=nonnull-attribute -fsanitize-undefined-trap-on-error' + + if [ $CC ]; then + echo int main\(\)\{\}\; | $CC $CFLAGS -xc -o /dev/null - >& /dev/null && sanitize=1 + elif ( command -V gcc > /dev/null ); then + echo int main\(\)\{\}\; | gcc $CFLAGS -xc -o /dev/null - >& /dev/null && sanitize=1 + elif ( command -V clang > /dev/null ); then + echo int main\(\)\{\}\; | clang $CFLAGS -xc -o /dev/null - >& /dev/null && sanitize=1 + fi + + if [ $sanitize ]; then + echo "Sanitizing undefined behaviour" + export CFLAGS=$CFLAGS + fi +fi + +time ./autogen.sh +time ./configure --prefix=$tmp_install_dir $opt_config_target +time $MAKE -j $cpus +test_start "check_tests" +time $MAKE check -j $cpus D="-D TEST_SEED=$S" +test_end "check_tests" $? + +# Build other tests if deps found +if command -V ldconfig >/dev/null 2>&1; then + if ldconfig -p | grep -q libz.so; then + test_start "other_check_tests" + time $MAKE other -j $cpus + test_end "other_check_tests" $? + test_start "example_tests" + time $MAKE ex -j $cpus + test_end "example_tests" $? + test_start "unit_tests" + time $MAKE tests -j $cpus + test_end "unit_tests" $? + fi +fi +test_start "installation_test" +time $MAKE install +test_end "installation_test" $? + +# Check for gnu executable stack set +if command -V readelf >/dev/null 2>&1; then + if readelf -W -l $tmp_install_dir/lib/libisal.so | grep 'GNU_STACK' | grep -q 'RWE'; then + echo Stack NX check $tmp_install_dir/lib/libisal.so Fail + exit 1 + else + echo Stack NX check $tmp_install_dir/lib/libisal.so Pass + fi +else + echo Stack NX check not supported +fi + +$MAKE clean + +# Check that make clean did not leave any junk behind +if git status > /dev/null 2>&1; then + if git status --porcelain --ignored | grep -x '.*\.o\|.*\.lo\|.*\.a\|.*\.la\|.*\.s'; then + echo Clean directory check Fail + exit 1 + else + echo Clean directory check Pass + fi +else + echo Clean directory check not supported +fi + + +echo $0: Pass diff --git a/src/spdk/isa-l/tools/test_extended.sh b/src/spdk/isa-l/tools/test_extended.sh new file mode 100755 index 000000000..7308dd652 --- /dev/null +++ b/src/spdk/isa-l/tools/test_extended.sh @@ -0,0 +1,208 @@ +#!/usr/bin/env bash + +# Extended tests: Run a few more options other than make check + +set -xe #exit on fail + +# Defaults +cpus=1 +S=$RANDOM +MAKE=make +READLINK=readlink +test_level=check +build_opt='' +msg='' + +# Override defaults if exist +command -V gmake >/dev/null 2>&1 && MAKE=gmake +command -V greadlink >/dev/null 2>&1 && READLINK=greadlink +[ -n "$CC" ] && build_opt+="CC=$CC " +[ -n "$AS" ] && build_opt+="AS=$AS " + +out="$PWD" +src=$($READLINK -f $(dirname $0))/.. +source $src/tools/test_tools.sh +cd "$src" + +# Run on mult cpus +if command -V lscpu >/dev/null 2>&1; then + cpus=`lscpu -p | tail -1 | cut -d, -f 2` + cpus=$(($cpus + 1)) +elif command -V sysctl; then + if sysctl -n hw.ncpu >/dev/null 2>&1; then + cpus=$(sysctl -n hw.ncpu) + cpus=$(($cpus + 1)) + fi +fi +echo "Using $cpus cpu threads" + +if [ -z "$S" ]; then + S=`tr -cd 0-9 /dev/null || S="123" +fi +msg+="Running with TEST_SEED=$S".$'\n' + +# Fix Darwin issues +if uname | grep -q 'Darwin' 2>&1; then + export SED=`which sed` +fi + +# Check for test libs to add +if command -V ldconfig >/dev/null 2>&1; then + if ldconfig -p | grep -q libz.so; then + test_level=test + msg+=$'With extra tests\n' + fi + if ldconfig -p | grep -q libefence.so; then + build_opt+="LDFLAGS+='-lefence' " + msg+=$'With efence\n' + fi +fi + +# Std makefile build test +$MAKE -f Makefile.unx clean +test_start "extended_build_test" +time $MAKE -f Makefile.unx -j $cpus $build_opt +test_end "extended_build_test" $? +msg+=$'Std makefile build: Pass\n' + +# Check for gnu executable stack set +if command -V readelf >/dev/null 2>&1; then + test_start "stack_nx_check" + if readelf -W -l bin/libisal.so | grep 'GNU_STACK' | grep -q 'RWE'; then + echo $0: Stack NX check bin/libisal.so: Fail + test_end "stack_nx_check" 1 + exit 1 + else + test_end "stack_nx_check" 0 + msg+=$'Stack NX check bin/lib/libisal.so: Pass\n' + fi +else + msg+=$'Stack NX check not supported: Skip\n' +fi + +# Std makefile build perf tests +test_start "extended_perf_test" +time $MAKE -f Makefile.unx -j $cpus perfs +test_end "extended_perf_test" $? +msg+=$'Std makefile build perf: Pass\n' + +# Std makefile run tests +test_start "extended_makefile_tests" +time $MAKE -f Makefile.unx -j $cpus $build_opt D="TEST_SEED=$S" $test_level +test_end "extended_makefile_tests" $? +msg+=$'Std makefile tests: Pass\n' + +# Std makefile build other +test_start "extended_other_tests" +time $MAKE -f Makefile.unx -j $cpus $build_opt D="TEST_SEED=$S" other +test_end "extended_other_tests" $? +msg+=$'Other tests build: Pass\n' + +# Try to pick a random src file +if command -V shuf >/dev/null 2>&1; then + in_file=$(find $src -type f -size +0 -name \*.c -o -name \*.asm -print 2>/dev/null | shuf | head -1 ); +else + in_file=configure.ac +fi + +echo Other tests using $in_file +test_start "igzip_file_perf" +./igzip_file_perf $in_file +test_end "igzip_file_perf" $? +test_start "igzip_hist_perf" +./igzip_hist_perf $in_file +test_end "igzip_hist_perf" $? +test_start "igzip_semi_dyn_file_perf" +./igzip_semi_dyn_file_perf $in_file +test_end "igzip_semi_dyn_file_perf" $? +test_start "igzip_fuzz_inflate" +./igzip_fuzz_inflate $in_file +test_end "igzip_fuzz_inflate" $? +msg+=$'Other tests run: Pass\n' + +if command -V shuf >/dev/null 2>&1; then + in_files=$(find $src -type f -size +0 -print 2>/dev/null | shuf | head -10 ); + test_start "igzip_rand_test" + ./igzip_rand_test $in_files + test_end "igzip_rand_test" $? + test_start "igzip_inflate_test" + ./igzip_inflate_test $in_files + test_end "igzip_inflate_test" $? + msg+=$'Compression file tests: Pass\n' +else + msg+=$'Compression file test: Skip\n' +fi + +time $MAKE -f Makefile.unx -j $cpus $build_opt ex +msg+=$'Examples build: Pass\n' + +test_start "ec_simple_example" +./ec_simple_example -r $S +test_end "ec_simple_example" $? +test_start "crc_simple_test" +./crc_simple_test +test_end "crc_simple_test" $? +test_start "crc64_example" +./crc64_example +test_end "crc64_example" $? +test_start "xor_example" +./xor_example +test_end "xor_example" $? +test_start "igzip_example" +./igzip_example ${in_file} ${in_file}.cmp +test_end "igzip_example" $? +rm -rf ${in_file}.cmp +msg+=$'Examples run: Pass\n' + +# Test custom hufftables +test_start "generate_custom_hufftables" +./generate_custom_hufftables $in_file +$MAKE -f Makefile.unx -j $cpus D="NO_STATIC_INFLATE_H" checks +./igzip_rand_test $in_file +./generate_static_inflate +diff -q static_inflate.h igzip/static_inflate.h +rm -rf static_inflate.h +rm -rf hufftables_c.c +test_end "generate_custom_hufftables" $? + +msg+=$'Custom hufftable build: Pass\n' + +$MAKE -f Makefile.unx clean + +# noarch build +test_start "noarch_build" +time $MAKE -f Makefile.unx -j $cpus arch=noarch $build_opt +test_end "noarch_build" $? +test_start "noarch_build_random" +time $MAKE -f Makefile.unx -j $cpus arch=noarch $build_opt D="TEST_SEED=$S" check +test_end "noarch_build_random" $? +$MAKE -f Makefile.unx arch=noarch clean +msg+=$'Noarch build: Pass\n' + +# Try mingw build +if [ $(uname -m) == "x86_64" ] && [ command -V x86_64-w64-mingw32-gcc >/dev/null 2>&1 ]; then + test_start "mingw_build" + time $MAKE -f Makefile.unx -j $cpus arch=mingw + test_end "mingw_build" $? + msg+=$'Mingw build: Pass\n' + + if command -V wine >/dev/null 2>&1; then + test_start "mingw_check_tests" + time $MAKE -f Makefile.unx -j $cpus arch=mingw D="TEST_SEED=$S" check + test_end "mingw_check_tests" $? + msg+=$'Mingw check tests: Pass\n' + else + msg+=$'No wine, mingw check: Skip\n' + fi + $MAKE -f Makefile.unx arch=mingw clean +else + msg+=$'No mingw build: Skip\n' +fi + +set +x +echo +echo "Summary test $0:" +echo "Build opt: $build_opt" +echo "$msg" +echo "$0: Final: Pass" diff --git a/src/spdk/isa-l/tools/test_fuzz.sh b/src/spdk/isa-l/tools/test_fuzz.sh new file mode 100755 index 000000000..bc9797e57 --- /dev/null +++ b/src/spdk/isa-l/tools/test_fuzz.sh @@ -0,0 +1,171 @@ +#!/usr/bin/env bash + +usage () +{ +test_ids=$(echo "${llvm_all_ids[*]}" | sed 's/ /, /g') +cat << EOF +usage: $0 options +options: + -h Help + -l, --llvm Use llvm fuzz tests and run n times 0=just build, -1=skip (default $use_llvm). + -a, --afl Use AFL fuzz tests and run n times 0=just build, -1=skip (default $use_afl). + -t, --time Run each group of max time [s,h,m,d] - n seconds, hours, minutes or days. + -e Run a specific llvm test or [$test_ids, rand, all]. + -f Use this file as initial raw input. Can be repeated. + -d <0,1> Use dump of internal inflate test corpus (default $use_internal_corp). + -i Fuzz input dir (default $fuzzin_dir). + -o Fuzz output dir (default $fuzzout_dir). +EOF +exit 0 +} + +# Defaults +use_afl=-1 +use_llvm=1 +samp_files= +use_internal_corp=0 +fuzzin_dir=fuzzin +fuzzout_dir=fuzzout +llvm_opts=" -print_final_stats=1" +afl_timeout_cmd="" +run_secs=0 +llvm_tests=("igzip_simple_inflate_fuzz_test") +llvm_all_ids=("simple" "checked" "round_trip") +llvm_all_tests=("igzip_simple_inflate_fuzz_test" "igzip_checked_inflate_fuzz_test" "igzip_simple_round_trip_fuzz_test") + +# Options +while [ "$1" != "${1##-}" ]; do + case $1 in + -h | --help) + usage + ;; + -t | --time) + run_secs=$(echo $2 | sed -e 's/d$/*24h/' -e 's/h$/*60m/' -e 's/m$/*60/' -e 's/s$//'| bc) + llvm_opts+=" -max_total_time=$run_secs" + afl_timeout_cmd="timeout --preserve-status $run_secs" + echo Run each for $run_secs seconds + shift 2 + ;; + -a | --afl) + use_afl=$2 + shift 2 + ;; + -l | --llvm) + use_llvm=$2 + shift 2 + ;; + -f) + samp_files+="$2 " + use_internal_corp=0 + shift 2 + ;; + -d) + use_internal_corp=$2 + shift 2 + ;; + -e) + case $2 in + all) + llvm_tests=${llvm_all_tests[@]} + ;; + rand) + llvm_tests=${llvm_all_tests[$RANDOM % ${#llvm_all_tests[@]} ]} + ;; + *) + flag=0 + for id_index in "${!llvm_all_ids[@]}"; do + if [[ "${llvm_all_ids[$id_index]}" = "$2" ]]; then + flag=1 + llvm_tests[0]="${llvm_all_tests[$id_index]}" + break; + fi + done + + if [ $flag -eq 0 ]; then + test_ids=$(echo "${llvm_all_ids[*]}" | sed 's/ /, /g') + echo "Invalid test, valid options: $test_ids, rand, or all" + exit 0 + fi + ;; + esac + shift 2 + ;; + -i) + fuzzin_dir=$2 + shift 2 + ;; + -o) + fuzzout_dir=$2 + shift 2 + ;; + esac +done + +set -xe #exit on fail + +# Optionally build afl fuzz tests +if [ $use_afl -ge 0 ]; then + echo Build afl fuzz tests + if ! command -V afl-gcc > /dev/null; then + echo $0 option --afl requires package afl installed + exit 0 + fi + make -f Makefile.unx clean + make -f Makefile.unx units=igzip CC=afl-gcc other +fi + +# Optionally build llvm fuzz tests +if [ $use_llvm -ge 0 ]; then + echo Build llvm fuzz tests + if ( command -V clang++ > /dev/null ); then + if (echo int LLVMFuzzerTestOneInput\(\)\{return 0\;\} | clang++ -x c - -fsanitize=fuzzer,address -lpthread -o /dev/null >& /dev/null); then + echo have modern clang + llvm_link_args='FUZZLINK=-fsanitize=fuzzer,address' + elif (echo int LLVMFuzzerTestOneInput\(\)\{return 0\;\} | clang++ -x c - -lFuzzer -lpthread -o /dev/null >& /dev/null); then + echo have libFuzzer + llvm_link_args='FUZZLINK=-lFuzzer' + else + echo $0 option --llvm requires clang++ and libFuzzer + exit 0 + fi + fi + rm -rf bin + make -f Makefile.unx units=igzip llvm_fuzz_tests igzip_dump_inflate_corpus CC=clang CXX=clang++ ${llvm_link_args} +fi + +#Create fuzz input/output directories +mkdir -p $fuzzin_dir +if [ $use_afl -ge 0 ]; then + mkdir -p $fuzzout_dir +fi + +# Optionally fill fuzz input with internal tests corpus +[ $use_internal_corp -gt 0 ] && ./igzip_dump_inflate_corpus $fuzzin_dir + +# Optionally compress input samples as input into fuzz dir +for f in $samp_files; do + echo Using sample file $f + f_base=`basename $f` + ./igzip_file_perf $f -o $fuzzin_dir/samp_${f_base}_cmp +done + +# Optionally run tests alternately one after the other +while [ $use_llvm -gt 0 -o $use_afl -gt 0 ]; do + if [ $use_afl -gt 0 ]; then + echo afl run $use_afl + let use_afl-- + $afl_timeout_cmd afl-fuzz -T "Run inflate $run_secs s" -i $fuzzin_dir -o $fuzzout_dir -M fuzzer1 -- ./igzip_fuzz_inflate @@ + afl-whatsup $fuzzout_dir + fi + + if [ $use_llvm -gt 0 ]; then + echo llvm run $use_llvm + let use_llvm-- + for test in $llvm_tests; do + echo "Run llvm test $test" + ./$test $fuzzin_dir $llvm_opts + done + fi +done + +make -f Makefile.unx clean diff --git a/src/spdk/isa-l/tools/test_tools.sh b/src/spdk/isa-l/tools/test_tools.sh new file mode 100755 index 000000000..448b1f92b --- /dev/null +++ b/src/spdk/isa-l/tools/test_tools.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +function test_start() +{ + echo "entering test: $1" +} + +function test_end() +{ + echo "leaving test: $1 status: $2" +} diff --git a/src/spdk/isa-l/tools/yasm-filter.sh b/src/spdk/isa-l/tools/yasm-filter.sh new file mode 100755 index 000000000..c33952a40 --- /dev/null +++ b/src/spdk/isa-l/tools/yasm-filter.sh @@ -0,0 +1,38 @@ +#/bin/sh + +# Filter out unnecessary options added by automake + +while [ -n "$*" ]; do + case "$1" in + -f | -o | -I | -i | -D ) + # Supported options with arg + options="$options $1 $2" + shift + shift + ;; + -I* | -i* | --prefix* ) + # Supported options without arg + options="$options $1" + shift + ;; + -D* ) # For defines we need to remove spaces + case "$1" in + *' '* ) ;; + *) options="$options $1" ;; + esac + shift + ;; + #-blah ) + # Unsupported options with args - none known + -* ) + # Unsupported options with no args + shift + ;; + * ) + args="$args $1" + shift + ;; + esac +done + +yasm $options $args -- cgit v1.2.3