xref: /spdk/test/fuzz/autofuzz_iscsi.sh (revision c6c1234de9e0015e670dd0b51bf6ce39ee0e07bd)
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