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