1#!/usr/bin/env bash 2# SPDX-License-Identifier: BSD-3-Clause 3# Copyright (C) 2020 Intel Corporation 4# All rights reserved. 5# 6testdir=$(readlink -f $(dirname $0)) 7rootdir=$(readlink -f $testdir/../..) 8source $rootdir/test/common/autotest_common.sh 9source $rootdir/test/iscsi_tgt/common.sh 10 11iscsitestinit 12 13if [ -z "$TARGET_IP" ]; then 14 echo "TARGET_IP not defined in environment" 15 exit 1 16fi 17 18if [ -z "$INITIATOR_IP" ]; then 19 echo "INITIATOR_IP not defined in environment" 20 exit 1 21fi 22 23timing_enter iscsi_fuzz_test 24 25MALLOC_BDEV_SIZE=64 26MALLOC_BLOCK_SIZE=4096 27 28TEST_TIMEOUT=1200 29 30# This argument is used in addition to the test arguments in autotest_common.sh 31for i in "$@"; do 32 case "$i" in 33 --timeout=*) 34 TEST_TIMEOUT="${i#*=}" 35 ;; 36 esac 37done 38 39timing_enter start_iscsi_tgt 40 41"${ISCSI_APP[@]}" -m $ISCSI_TEST_CORE_MASK --disable-cpumask-locks --wait-for-rpc &> $output_dir/iscsi_autofuzz_tgt_output.txt & 42iscsipid=$! 43echo "Process iscsipid: $iscsipid" 44 45trap 'killprocess $iscsipid; exit 1' SIGINT SIGTERM EXIT 46 47waitforlisten $iscsipid 48# Fuzz initiator do not support nop-in yet. So we increase nop-in timeout value for now. 49$rpc_py iscsi_set_options -o 60 -a 16 50$rpc_py framework_start_init 51echo "iscsi_tgt is listening. Running tests..." 52timing_exit start_iscsi_tgt 53 54$rpc_py iscsi_create_portal_group $PORTAL_TAG $TARGET_IP:$ISCSI_PORT 55$rpc_py iscsi_create_initiator_group $INITIATOR_TAG $INITIATOR_NAME $NETMASK 56$rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE 57$rpc_py iscsi_create_target_node disk1 disk1_alias 'Malloc0:0' $PORTAL_TAG:$INITIATOR_TAG 256 -d 58sleep 1 59 60trap 'killprocess $iscsipid; iscsitestfini; exit 1' SIGINT SIGTERM EXIT 61 62$rootdir/test/app/fuzz/iscsi_fuzz/iscsi_fuzz -m 0xF0 -T $TARGET_IP -t $TEST_TIMEOUT 2> $output_dir/iscsi_autofuzz_logs.txt 63 64$rpc_py iscsi_delete_target_node 'iqn.2016-06.io.spdk:disk1' 65 66# Delete malloc device 67$rpc_py bdev_malloc_delete Malloc0 68 69trap - SIGINT SIGTERM EXIT 70 71killprocess $iscsipid 72 73iscsitestfini 74 75timing_exit iscsi_fuzz_test 76