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