#!/bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2017 Netapp, Inc. All rights reserved. # # FS QA Test No. 434 # # Tests vfs_copy_file_range() error checking seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" here=`pwd` tmp=/tmp/$$ status=1 # failure is the default! trap "_cleanup; exit \$status" 0 1 2 3 15 _cleanup() { cd / rm -rf $tmp.* } # get standard environment . common/rc . common/filter # real QA test starts here _supported_fs generic _supported_os Linux _require_xfs_io_command "copy_range" _require_test testdir=$TEST_DIR/test-$seq rm -rf $testdir mkdir $testdir rm -f $seqres.full echo "Create the original files" $XFS_IO_PROG -f -c 'pwrite -S 0x61 0 1000' $testdir/file >> $seqres.full 2>&1 mknod $testdir/dev1 c 1 3 mkfifo $testdir/fifo echo "Try to copy when source pos > source size" $XFS_IO_PROG -f -c "copy_range -s 1000 -l 100 $testdir/file" "$testdir/copy" md5sum $testdir/copy | _filter_test_dir echo "Try to copy to a read-only file" rm -f $testdir/copy $XFS_IO_PROG -r -f -c "copy_range -s 0 -l 100 $testdir/file" "$testdir/copy" md5sum $testdir/copy | _filter_test_dir echo "Try to copy to an append-only file" rm -f $testdir/copy $XFS_IO_PROG -a -f -c "copy_range -s 0 -l 100 $testdir/file" "$testdir/copy" md5sum $testdir/copy | _filter_test_dir echo "Try to copy to a device" $XFS_IO_PROG -a -f -c "copy_range -s 0 -l 100 $testdir/file" "$testdir/dev1" echo "Try to copy to a fifo" $XFS_IO_PROG -a -f -c "copy_range -s 0 -l 100 $testdir/file" "$testdir/fifo" #success, all done status=0 exit