llvm_nvme_fuzz: enable running llvm nvmf test in parallel
Signed-off-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com> Change-Id: Iad129c1bc62116a93701a5f68c78351f01a4c878 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16249 Reviewed-by: Michal Berger <michal.berger@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
4f7ab50650
commit
1fa3b4f72d
@ -53,15 +53,6 @@
|
||||
{
|
||||
"subsystem": "nvmf",
|
||||
"config": [
|
||||
{
|
||||
"method": "nvmf_set_config",
|
||||
"params": {
|
||||
"poll_groups_mask": "0x1",
|
||||
"admin_cmd_passthru": {
|
||||
"identify_ctrlr": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"method": "nvmf_create_transport",
|
||||
"params": {
|
||||
|
@ -3,6 +3,8 @@
|
||||
# Copyright (C) 2021 Intel Corporation
|
||||
# All rights reserved.
|
||||
#
|
||||
|
||||
FUZZER=nvmf
|
||||
if [[ $SPDK_TEST_FUZZER_SHORT -eq 0 ]]; then
|
||||
TIME=60000
|
||||
else
|
||||
@ -19,54 +21,50 @@ done
|
||||
|
||||
function start_llvm_fuzz() {
|
||||
local fuzzer_type=$1
|
||||
local corpus_dir
|
||||
corpus_dir=/tmp/llvm_fuzz$fuzzer_type
|
||||
mkdir -p $corpus_dir
|
||||
$rootdir/test/app/fuzz/llvm_nvme_fuzz/llvm_nvme_fuzz -m 0x1 -i 0 -F "$trid" -c $testdir/fuzz_json.conf -t $TIME -D $corpus_dir -Z $fuzzer_type
|
||||
}
|
||||
local timen=$2
|
||||
local core=$3
|
||||
local corpus_dir=$rootdir/../corpus/llvm_nvmf_$fuzzer_type
|
||||
local nvmf_cfg=/tmp/fuzz_json_$fuzzer_type.conf
|
||||
|
||||
function run_fuzz() {
|
||||
local startday
|
||||
local today
|
||||
local interval=0
|
||||
local weekloop
|
||||
# Get the date number, format is like '22078'
|
||||
# The purpose is when Jenkins schedule one fuzz in Saturday
|
||||
# We can decide which one fuzz will be run , there are lots of fuzz, but only run one of them in Saturday each time
|
||||
# and make sure all fuzz will be tested, so use this function. Such run fuzz 0 in 03/26, and run fuzz 1 in 04/02, run fuzz 2 in 04/09 ....
|
||||
startday=$(date -d '2022-03-19' '+%y%j')
|
||||
today=$(date '+%y%j')
|
||||
interval=$(((today - startday) / 7))
|
||||
weekloop=$((interval / fuzz_num))
|
||||
if [[ $weekloop -lt 1 ]]; then # The first loop of fuzz
|
||||
fuzzer_type=$interval
|
||||
else
|
||||
fuzzer_type=$((interval % fuzz_num))
|
||||
fi
|
||||
start_llvm_fuzz $fuzzer_type &> $output_dir/fuzzer_${fuzzer_type}.log
|
||||
port="44$(printf "%02d" $fuzzer_type)"
|
||||
mkdir -p $corpus_dir
|
||||
|
||||
trid="trtype:tcp adrfam:IPv4 subnqn:nqn.2016-06.io.spdk:cnode1 traddr:127.0.0.1 trsvcid:$port"
|
||||
sed -e "s/\"trsvcid\": \"4420\"/\"trsvcid\": \"$port\"/" $testdir/fuzz_json.conf > $nvmf_cfg
|
||||
|
||||
$rootdir/test/app/fuzz/llvm_nvme_fuzz/llvm_nvme_fuzz \
|
||||
-m $core \
|
||||
-s $mem_size \
|
||||
-F "$trid" \
|
||||
-c $nvmf_cfg \
|
||||
-t $timen \
|
||||
-D $corpus_dir \
|
||||
-Z $fuzzer_type \
|
||||
-r /var/tmp/spdk$fuzzer_type.sock
|
||||
|
||||
rm -rf $nvmf_cfg
|
||||
}
|
||||
|
||||
testdir=$(readlink -f $(dirname $0))
|
||||
rootdir=$(readlink -f $testdir/../../../../)
|
||||
source $rootdir/test/common/autotest_common.sh
|
||||
source $rootdir/test/setup/common.sh
|
||||
source $testdir/../common.sh
|
||||
|
||||
fuzzfile=$rootdir/test/app/fuzz/llvm_nvme_fuzz/llvm_nvme_fuzz.c
|
||||
fuzz_num=$(($(grep -c "fn =" $fuzzfile) - 1))
|
||||
[[ $fuzz_num -ne 0 ]]
|
||||
fuzz_num=$(($(grep -c "\.fn =" $fuzzfile) - 1))
|
||||
((fuzz_num != 0))
|
||||
|
||||
trap 'process_shm --id 0; rm -rf /tmp/llvm_fuzz*; exit 1' SIGINT SIGTERM EXIT
|
||||
|
||||
trid="trtype:tcp adrfam:IPv4 subnqn:nqn.2016-06.io.spdk:cnode1 traddr:127.0.0.1 trsvcid:4420"
|
||||
trap 'cleanup /tmp/llvm_fuzz*; exit 1' SIGINT SIGTERM EXIT
|
||||
|
||||
mem_size=512
|
||||
if [[ $SPDK_TEST_FUZZER_SHORT -eq 1 ]]; then
|
||||
for ((i = 0; i < fuzz_num; i++)); do
|
||||
start_llvm_fuzz $i
|
||||
done
|
||||
start_llvm_fuzz_short $fuzz_num $TIME
|
||||
elif [[ $SPDK_TEST_FUZZER -eq 1 ]]; then
|
||||
run_fuzz
|
||||
get_testn $fuzz_num $mem_size
|
||||
start_llvm_fuzz_all $TESTN $fuzz_num $TIME
|
||||
else
|
||||
start_llvm_fuzz $1
|
||||
start_llvm_fuzz $1 $TIME 0x1
|
||||
fi
|
||||
|
||||
rm -rf /tmp/llvm_fuzz*
|
||||
trap - SIGINT SIGTERM EXIT
|
||||
|
Loading…
Reference in New Issue
Block a user