#!/usr/bin/env bash . $(dirname $(readlink -e ${BASH_SOURCE[0]}))/bcachefs-test-libs.sh require-kernel-config MD require-kernel-config BLK_DEV_MD require-kernel-config NET require-kernel-config BLK_DEV require-kernel-config BLK_DEV_NBD require-kernel-config TARGET_CORE require-kernel-config TCM_IBLOCK require-kernel-config TCM_FILEIO require-kernel-config TCM_PSCSI require-kernel-config LOOPBACK_TARGET require-kernel-config ISCSI_TARGET require-kernel-config ISCSI_TCP require-kernel-config SCSI_ISCSI_ATTRS require-kernel-config SCSI_LOWLEVEL config-scratch-devs 16G config-scratch-devs 16G config-scratch-devs 16G config-scratch-devs 16G config-scratch-devs 16G config-scratch-devs 16G config-scratch-devs 16G config-scratch-devs 16G config-scratch-devs 16G config-scratch-devs 16G config-timeout $(stress_timeout) array_setup() { #echo 1 > /sys/module/bcachefs/parameters/force_reconstruct_read #echo 1 > /sys/module/bcachefs/parameters/debug_check_bkeys run_quiet "" bcachefs format -f \ --errors=panic \ --erasure_code \ --replicas=3 \ ${ktest_scratch_dev[@]} mount -t bcachefs "$(join_by : "${ktest_scratch_dev[@]}")" /mnt } array_teardown() { sync sleep 5 umount /mnt } test_iscsi() { array_setup local initiatorname=$(grep InitiatorName= /etc/iscsi/initiatorname.iscsi | cut -f2- -d=) run_quiet "" targetcli /backstores/fileio create disk01 /mnt/foo 10G run_quiet "" targetcli /iscsi create iqn.2018-05.world.srv:dlp.target01 run_quiet "" targetcli /iscsi/iqn.2018-05.world.srv:dlp.target01/tpg1/luns create /backstores/fileio/disk01 run_quiet "" targetcli /iscsi/iqn.2018-05.world.srv:dlp.target01/tpg1/acls create $initiatorname run_quiet "" targetcli /iscsi/iqn.2018-05.world.srv:dlp.target01/tpg1 set attribute authentication=0 run_quiet "" iscsiadm -m discovery -t sendtargets -p 127.0.0.1 run_quiet "" iscsiadm -m node --login run_fio_randrw --filename=${ktest_scratch_dev[10]} run_quiet "" iscsiadm -m node --logout run_quiet "" targetcli /iscsi delete iqn.2018-05.world.srv:dlp.target01 run_quiet "" targetcli /backstores/fileio delete disk01 array_teardown } test_minio() { array_setup mkdir -p /mnt/data env MINIO_ACCESS_KEY=minio MINIO_SECRET_KEY=minio123 minio server /mnt/data & sleep 5 warp mixed --host=127.0.0.1:9000 --access-key=minio --secret-key=minio123 killall -9 minio array_teardown } test_nbd() { array_setup #enable_memory_faults dd if=/dev/zero of=/mnt/foo bs=1M count=8192 oflag=sync chmod 777 /mnt/foo #disable_memory_faults modprobe nbd nbd-server 1037 /mnt/foo nbd-client 127.0.0.1 1037 /dev/nbd0 run_fio_randrw --filename=/dev/nbd0 nbd-client -d /dev/nbd0 killall -9 nbd-server array_teardown } main "$@"