#! /bin/bash # FSQA Test No. 130 # # xfs_io vector read/write and trunc tests. modified from cxfsqa tests # - unixfile_basic_block_hole # - unixfile_buffer_direct_coherency # - unixfile_direct_rw # - unixfile_eof_direct # - unixfile_fsb_edge # - unixfile_open_append # - unixfile_open_trunc # - unixfile_small_vector_async_rw # - unixfile_small_vector_sync_rw # #----------------------------------------------------------------------- # Copyright (c) 2006 Silicon Graphics, Inc. All Rights Reserved. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation. # # This program is distributed in the hope that it would be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # #----------------------------------------------------------------------- # # creator owner=allanr@sgi.com seq=`basename $0` 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 / _cleanup_testdir } # get standard environment, filters and checks . ./common.rc . ./common.filter # real QA test starts here _supported_fs generic _supported_os Linux IRIX _require_scratch _require_sparse_files _setup_testdir _scratch_mkfs >/dev/null 2>&1 _scratch_mount echo "End-of-file zeroing with direct I/O" xfs_io -F -f -d -t -c "pwrite -S 0x63 0 65536" \ -c "truncate 1" \ -c "pwrite -S 0x41 65536 65536" \ -c "pread -v 0 131072" \ $SCRATCH_MNT/eof-zeroing_direct | _filter_xfs_io_unique echo echo "Basic Block Hole test" xfs_io -F -f -t -c "truncate 8192" \ -c "pread -v 5000 3000" \ $SCRATCH_MNT/blackhole | _filter_xfs_io_unique echo echo "Test buffered and direct IO coherency" xfs_io -F -f -t -c "pwrite -S 0x41 8000 1000" \ -c "pwrite -S 0x57 4000 1000" \ $SCRATCH_MNT/buff_direct_coherency | _filter_xfs_io_unique xfs_io -F -d -c "pwrite -S 0x78 20480 4096"\ -c "pwrite -S 0x79 4096 4096"\ $SCRATCH_MNT/buff_direct_coherency | _filter_xfs_io_unique xfs_io -F -c "pread -v 0 9000"\ $SCRATCH_MNT/buff_direct_coherency | _filter_xfs_io_unique echo echo "Test direct read and write" xfs_io -F -f -d -t -c "pwrite -S 0x78 0 65536"\ -c "pread -v 0 65536"\ -c "pwrite -S 0x46 65536 6553600"\ -c "pread -v 0 6619136"\ $SCRATCH_MNT/direct_io | _filter_xfs_io_unique xfs_io -F -d -c "pread -v 0 6619136"\ $SCRATCH_MNT/direct_io | _filter_xfs_io_unique xfs_io -F -f -d -t -c "pwrite -S 0x61 0 65536"\ -c "pread -v 0 65536"\ -c "pwrite -S 0x62 65536 131072"\ -c "pread -v 0 131072"\ $SCRATCH_MNT/async_direct_io | _filter_xfs_io_unique xfs_io -F -d -c "pread -v 0 131072"\ $SCRATCH_MNT/async_direct_io | _filter_xfs_io_unique echo echo "FSB Edge test" xfs_io -F -f -t -c "truncate 131072"\ -c "pwrite -S 0x5F 0 131072"\ -c "truncate 0"\ -c "truncate 131072"\ -c "pwrite -S 0x61 65535 2"\ -c "pread -v 0 131072"\ $SCRATCH_MNT/fsb_edge_test | _filter_xfs_io_unique echo echo "Open Trunk test (O_TRUNC)" for n in 0 1 2 3 4 do xfs_io -F -f -t -c "pread -v 0 100" $SCRATCH_MNT/$n | _filter_xfs_io_unique echo "Test" > $SCRATCH_MNT/$n xfs_io -F -f -t -c "pread -v 0 100" $SCRATCH_MNT/$n | _filter_xfs_io_unique cat $SCRATCH_MNT/$n done echo "DONE" echo echo "Append test" echo "append to me" > $SCRATCH_MNT/append xfs_io -F -a -c "pwrite -S 0x61 0 10" \ -c "pread -v 0 24"\ $SCRATCH_MNT/append | _filter_xfs_io_unique echo echo "Small Vector Async" echo "abcdefghijklmnopqrstuvwxyz" > $SCRATCH_MNT/small_vector_async xfs_io -F -f -c "pread -v 0 1"\ -c "pread -v 1 1"\ -c "pread -v 2 1"\ -c "pread -v 3 1"\ -c "pread -v 4 1"\ -c "pread -v 5 1"\ -c "pread -v 6 1"\ -c "pread -v 7 1"\ -c "pread -v 8 1"\ -c "pread -v 9 1"\ -c "pread -v 10 1"\ -c "pread -v 11 1"\ -c "pread -v 12 1"\ -c "pread -v 13 13"\ -c "pwrite -S 0x61 4090 1"\ -c "pwrite -S 0x62 4091 1"\ -c "pwrite -S 0x63 4092 1"\ -c "pwrite -S 0x64 4093 1"\ -c "pwrite -S 0x65 4094 1"\ -c "pwrite -S 0x66 4095 1"\ -c "pwrite -S 0x67 4096 1"\ -c "pwrite -S 0x68 4097 1"\ -c "pwrite -S 0x69 4098 1"\ -c "pwrite -S 0x6A 4099 1"\ -c "pwrite -S 0x6B 4100 1"\ -c "pwrite -S 0x6C 4101 1"\ -c "pwrite -S 0x6D 4102 1"\ -c "pwrite -S 0x6E 4103 1"\ -c "pwrite -S 0x6F 4104 1"\ -c "pwrite -S 0x70 4105 1"\ -c "pread -v 4090 4"\ -c "pread -v 4094 4"\ -c "pread -v 4098 4"\ -c "pread -v 4102 4"\ -c "pwrite -S 0x61 10000000000 1"\ -c "pwrite -S 0x62 10000000001 1"\ -c "pwrite -S 0x63 10000000002 1"\ -c "pwrite -S 0x64 10000000003 1"\ -c "pwrite -S 0x65 10000000004 1"\ -c "pwrite -S 0x66 10000000005 1"\ -c "pwrite -S 0x67 10000000006 1"\ -c "pwrite -S 0x68 10000000007 1"\ -c "pwrite -S 0x69 10000000008 1"\ -c "pwrite -S 0x6A 10000000009 1"\ -c "pwrite -S 0x6B 10000000010 1"\ -c "pwrite -S 0x6C 10000000011 1"\ -c "pwrite -S 0x6D 10000000012 1"\ -c "pwrite -S 0x6E 10000000013 1"\ -c "pwrite -S 0x6F 10000000014 1"\ -c "pwrite -S 0x70 10000000015 1"\ -c "pread -v 10000000000 4"\ -c "pread -v 10000000004 4"\ -c "pread -v 10000000008 4"\ -c "pread -v 10000000012 4"\ $SCRATCH_MNT/small_vector_async | _filter_xfs_io_unique echo echo "Small Vector Sync" echo "abcdefghijklmnopqrstuvwxyz" > $SCRATCH_MNT/small_vector_async xfs_io -F -f -s -c "pread -v 0 1"\ -c "pread -v 1 1"\ -c "pread -v 2 1"\ -c "pread -v 3 1"\ -c "pread -v 4 1"\ -c "pread -v 5 1"\ -c "pread -v 6 1"\ -c "pread -v 7 1"\ -c "pread -v 8 1"\ -c "pread -v 9 1"\ -c "pread -v 10 1"\ -c "pread -v 11 1"\ -c "pread -v 12 1"\ -c "pread -v 13 13"\ -c "pwrite -S 0x61 4090 1"\ -c "pwrite -S 0x62 4091 1"\ -c "pwrite -S 0x63 4092 1"\ -c "pwrite -S 0x64 4093 1"\ -c "pwrite -S 0x65 4094 1"\ -c "pwrite -S 0x66 4095 1"\ -c "pwrite -S 0x67 4096 1"\ -c "pwrite -S 0x68 4097 1"\ -c "pwrite -S 0x69 4098 1"\ -c "pwrite -S 0x6A 4099 1"\ -c "pwrite -S 0x6B 4100 1"\ -c "pwrite -S 0x6C 4101 1"\ -c "pwrite -S 0x6D 4102 1"\ -c "pwrite -S 0x6E 4103 1"\ -c "pwrite -S 0x6F 4104 1"\ -c "pwrite -S 0x70 4105 1"\ -c "pread -v 4090 4"\ -c "pread -v 4094 4"\ -c "pread -v 4098 4"\ -c "pread -v 4102 4"\ -c "pwrite -S 0x61 10000000000 1"\ -c "pwrite -S 0x62 10000000001 1"\ -c "pwrite -S 0x63 10000000002 1"\ -c "pwrite -S 0x64 10000000003 1"\ -c "pwrite -S 0x65 10000000004 1"\ -c "pwrite -S 0x66 10000000005 1"\ -c "pwrite -S 0x67 10000000006 1"\ -c "pwrite -S 0x68 10000000007 1"\ -c "pwrite -S 0x69 10000000008 1"\ -c "pwrite -S 0x6A 10000000009 1"\ -c "pwrite -S 0x6B 10000000010 1"\ -c "pwrite -S 0x6C 10000000011 1"\ -c "pwrite -S 0x6D 10000000012 1"\ -c "pwrite -S 0x6E 10000000013 1"\ -c "pwrite -S 0x6F 10000000014 1"\ -c "pwrite -S 0x70 10000000015 1"\ -c "pread -v 10000000000 4"\ -c "pread -v 10000000004 4"\ -c "pread -v 10000000008 4"\ -c "pread -v 10000000012 4"\ $SCRATCH_MNT/small_vector_async | _filter_xfs_io_unique status=0 exit