]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | #!/usr/bin/env bash |
2 | ||
3 | testdir=$(readlink -f $(dirname $0)) | |
4 | rootdir=$(readlink -f $testdir/../../..) | |
11fdf7f2 | 5 | source $rootdir/test/common/autotest_common.sh |
7c673cae FG |
6 | source $rootdir/test/nvmf/common.sh |
7 | ||
8 | MALLOC_BDEV_SIZE=64 | |
9 | MALLOC_BLOCK_SIZE=512 | |
10 | ||
11fdf7f2 | 11 | rpc_py="$rootdir/scripts/rpc.py" |
7c673cae FG |
12 | |
13 | set -e | |
14 | ||
11fdf7f2 TL |
15 | # pass the parameter 'iso' to this script when running it in isolation to trigger rdma device initialization. |
16 | # e.g. sudo ./filesystem.sh iso | |
17 | nvmftestinit $1 | |
18 | ||
19 | RDMA_IP_LIST=$(get_available_rdma_ips) | |
20 | NVMF_FIRST_TARGET_IP=$(echo "$RDMA_IP_LIST" | head -n 1) | |
21 | if [ -z $NVMF_FIRST_TARGET_IP ]; then | |
7c673cae FG |
22 | echo "no NIC for nvmf test" |
23 | exit 0 | |
24 | fi | |
25 | ||
26 | timing_enter fs_test | |
27 | ||
11fdf7f2 TL |
28 | for incapsule in 0 4096; do |
29 | # Start up the NVMf target in another process | |
30 | $NVMF_APP -m 0xF & | |
31 | nvmfpid=$! | |
32 | ||
33 | trap "process_shm --id $NVMF_APP_SHM_ID; killprocess $nvmfpid; nvmftestfini $1; exit 1" SIGINT SIGTERM EXIT | |
34 | ||
35 | waitforlisten $nvmfpid | |
36 | $rpc_py nvmf_create_transport -t RDMA -u 8192 -p 4 -c $incapsule | |
7c673cae | 37 | |
11fdf7f2 TL |
38 | bdevs="$($rpc_py construct_malloc_bdev $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE)" |
39 | bdevs+=" $($rpc_py construct_malloc_bdev $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE)" | |
7c673cae | 40 | |
11fdf7f2 | 41 | modprobe -v nvme-rdma |
7c673cae | 42 | |
11fdf7f2 TL |
43 | $rpc_py nvmf_subsystem_create nqn.2016-06.io.spdk:cnode1 -a -s SPDK00000000000001 |
44 | for bdev in $bdevs; do | |
45 | $rpc_py nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 $bdev | |
46 | done | |
47 | $rpc_py nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t rdma -a $NVMF_FIRST_TARGET_IP -s 4420 | |
7c673cae | 48 | |
11fdf7f2 | 49 | nvme connect -t rdma -n "nqn.2016-06.io.spdk:cnode1" -a "$NVMF_FIRST_TARGET_IP" -s "$NVMF_PORT" |
7c673cae | 50 | |
11fdf7f2 TL |
51 | waitforblk "nvme0n1" |
52 | waitforblk "nvme0n2" | |
7c673cae | 53 | |
11fdf7f2 | 54 | mkdir -p /mnt/device |
7c673cae | 55 | |
11fdf7f2 | 56 | devs=`lsblk -l -o NAME | grep nvme` |
7c673cae | 57 | |
11fdf7f2 TL |
58 | for dev in $devs; do |
59 | timing_enter parted | |
60 | parted -s /dev/$dev mklabel msdos mkpart primary '0%' '100%' | |
61 | timing_exit parted | |
62 | sleep 1 | |
7c673cae | 63 | |
11fdf7f2 TL |
64 | for fstype in "ext4" "btrfs" "xfs"; do |
65 | timing_enter $fstype | |
66 | if [ $fstype = ext4 ]; then | |
67 | force=-F | |
68 | else | |
69 | force=-f | |
70 | fi | |
7c673cae | 71 | |
11fdf7f2 | 72 | mkfs.${fstype} $force /dev/${dev}p1 |
7c673cae | 73 | |
11fdf7f2 TL |
74 | mount /dev/${dev}p1 /mnt/device |
75 | touch /mnt/device/aaa | |
76 | sync | |
77 | rm /mnt/device/aaa | |
78 | sync | |
79 | umount /mnt/device | |
80 | timing_exit $fstype | |
81 | done | |
7c673cae | 82 | |
11fdf7f2 | 83 | parted -s /dev/$dev rm 1 |
7c673cae FG |
84 | done |
85 | ||
11fdf7f2 TL |
86 | sync |
87 | nvme disconnect -n "nqn.2016-06.io.spdk:cnode1" || true | |
7c673cae | 88 | |
11fdf7f2 | 89 | $rpc_py delete_nvmf_subsystem nqn.2016-06.io.spdk:cnode1 |
7c673cae | 90 | |
11fdf7f2 | 91 | trap - SIGINT SIGTERM EXIT |
7c673cae | 92 | |
11fdf7f2 TL |
93 | nvmfcleanup |
94 | killprocess $nvmfpid | |
95 | done | |
7c673cae | 96 | |
11fdf7f2 | 97 | nvmftestfini $1 |
7c673cae | 98 | timing_exit fs_test |