xref: /spdk/test/fuzz/autofuzz_iscsi.sh (revision a5f87f39127c7e0da8d9c4fcd042a27e350be84e)
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 &> $output_dir/iscsi_autofuzz_tgt_output.txt &
42iscsipid=$!
43
44trap 'killprocess $iscsipid; exit 1' SIGINT SIGTERM EXIT
45
46waitforlisten $iscsipid
47# Fuzz initiator do not support nop-in yet. So we increase nop-in timeout value for now.
48$rpc_py iscsi_set_options -o 60 -a 16
49$rpc_py framework_start_init
50echo "iscsi_tgt is listening. Running tests..."
51timing_exit start_iscsi_tgt
52
53$rpc_py iscsi_create_portal_group $PORTAL_TAG $TARGET_IP:$ISCSI_PORT
54$rpc_py iscsi_create_initiator_group $INITIATOR_TAG $INITIATOR_NAME $NETMASK
55$rpc_py bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE
56$rpc_py iscsi_create_target_node disk1 disk1_alias 'Malloc0:0' $PORTAL_TAG:$INITIATOR_TAG 256 -d
57sleep 1
58
59trap 'killprocess $iscsipid; iscsitestfini; exit 1' SIGINT SIGTERM EXIT
60
61$rootdir/test/app/fuzz/iscsi_fuzz/iscsi_fuzz -m 0xF0 -T $TARGET_IP -t $TEST_TIMEOUT 2> $output_dir/iscsi_autofuzz_logs.txt
62
63$rpc_py iscsi_delete_target_node 'iqn.2016-06.io.spdk:disk1'
64
65# Delete malloc device
66$rpc_py bdev_malloc_delete Malloc0
67
68trap - SIGINT SIGTERM EXIT
69
70killprocess $iscsipid
71
72iscsitestfini
73
74timing_exit iscsi_fuzz_test
75