xref: /spdk/test/fuzz/autofuzz_nvmf.sh (revision 7640e3fc9f22ca14c20c87930b6d6108a10f2f0c)
1ae679483SSeth Howell#!/usr/bin/env bash
2eb53c232Spaul luse#  SPDX-License-Identifier: BSD-3-Clause
3eb53c232Spaul luse#  Copyright (C) 2019 Intel Corporation
4eb53c232Spaul luse#  All rights reserved.
5eb53c232Spaul luse#
6ae679483SSeth Howelltestdir=$(readlink -f $(dirname $0))
7ae679483SSeth Howellrootdir=$(readlink -f $testdir/../..)
8ae679483SSeth Howellsource $rootdir/test/common/autotest_common.sh
9ae679483SSeth Howellsource $rootdir/test/nvmf/common.sh
10ae679483SSeth Howell
11e394fb3bSSeth HowellTEST_TIMEOUT=1200
12e394fb3bSSeth Howell
13e394fb3bSSeth Howell# This argument is used in addition to the test arguments in autotest_common.sh
14e394fb3bSSeth Howellfor i in "$@"; do
15e394fb3bSSeth Howell	case "$i" in
16e394fb3bSSeth Howell		--timeout=*)
17e394fb3bSSeth Howell			TEST_TIMEOUT="${i#*=}"
18844c8ec3SMichal Berger			;;
19e394fb3bSSeth Howell	esac
20e394fb3bSSeth Howelldone
21e394fb3bSSeth Howell
22ae679483SSeth Howellnvmftestinit
23ae679483SSeth Howell
24ae679483SSeth Howelltiming_enter nvmf_fuzz_test
25ae679483SSeth Howell
26213eaed3SJim Harristrid="trtype:$TEST_TRANSPORT adrfam:IPv4 subnqn:nqn.2016-06.io.spdk:cnode1 traddr:$NVMF_FIRST_TARGET_IP trsvcid:$NVMF_PORT"
27ae679483SSeth Howell
28b4c5509cSMichal Berger"${NVMF_APP[@]}" -m 0xF &> "$output_dir/nvmf_autofuzz_tgt_output.txt" &
29ae679483SSeth Howellnvmfpid=$!
30ae679483SSeth Howell
31213eaed3SJim Harristrap 'process_shm --id $NVMF_APP_SHM_ID; killprocess $nvmfpid; nvmftestfini $1; exit 1' SIGINT SIGTERM EXIT
32ae679483SSeth Howell
33ae679483SSeth Howellwaitforlisten $nvmfpid
34ae679483SSeth Howell$rpc_py nvmf_create_transport -t $TEST_TRANSPORT -u 8192
35ae679483SSeth Howell
367964f1dfSPawel Kaminski$rpc_py bdev_malloc_create -b Malloc0 64 512
37ae679483SSeth Howell
387538af70SMaciej Wawryk$rpc_py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001
39ae679483SSeth Howell$rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 Malloc0
40ae679483SSeth Howell$rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t $TEST_TRANSPORT -a $NVMF_FIRST_TARGET_IP -s $NVMF_PORT
41ae679483SSeth Howell
42ae679483SSeth Howell# Note that we chose a consistent seed to ensure that this test is consistent in nightly builds.
43*7640e3fcSKrzysztof Karas$rootdir/test/app/fuzz/nvme_fuzz/nvme_fuzz -m 0xF0 -t $TEST_TIMEOUT -F "$trid" -N -a 2> $output_dir/nvmf_autofuzz_logs.txt
44ae679483SSeth Howell
4519baaa9aSMaciej Wawryk$rpc_py nvmf_delete_subsystem nqn.2016-06.io.spdk:cnode1
46ae679483SSeth Howell
47ae679483SSeth Howelltrap - SIGINT SIGTERM EXIT
48ae679483SSeth Howell
49ae679483SSeth Howellnvmfcleanup
50ae679483SSeth Howellnvmftestfini
51ae679483SSeth Howelltiming_exit nvmf_fuzz_test
52