]>
git.ipfire.org Git - thirdparty/util-linux.git/blob - tests/ts/blkdiscard/offsets
288841199ae4225b326f7dd7e12a7961a0215b11
4 # Copyright (C) 2014 Federico Simoncelli <fsimonce@redhat.com>
6 # This file is part of util-linux.
8 # This file is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This file is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
18 TS_TOPDIR
="${0%/*}/../.."
21 .
$TS_TOPDIR/functions.sh
24 ts_check_test_command
"$TS_CMD_BLKDISCARD"
30 IMAGE_NAME
="${TS_TESTNAME}-loop.img"
31 IMAGE_PATH
="$TS_OUTDIR/$IMAGE_NAME"
33 truncate
-s 10M
$IMAGE_PATH
35 ts_log
"create loop device from image"
36 DEVICE
=$
($TS_CMD_LOSETUP --show -f $IMAGE_PATH)
37 ts_register_loop_device
"$DEVICE"
41 "$@" >> $TS_OUTPUT 2>&1
43 echo "ret: $ret" >> "$TS_OUTPUT"
47 ts_log
"testing offsets with full block size"
48 run_tscmd
$TS_CMD_BLKDISCARD -v $DEVICE
49 if [ "$?" != "0" ]; then
50 # Skip the rest? For example loop backing files on NFS seem unsupported.
51 grep -q "BLKDISCARD ioctl failed: Operation not supported" "$TS_OUTPUT" \
52 && ts_skip
"BLKDISCARD not supported"
54 run_tscmd
$TS_CMD_BLKDISCARD -v -o 1 $DEVICE
55 run_tscmd
$TS_CMD_BLKDISCARD -v -o 511 $DEVICE
56 run_tscmd
$TS_CMD_BLKDISCARD -v -o 512 $DEVICE
57 run_tscmd
$TS_CMD_BLKDISCARD -v -o 1024 $DEVICE
59 ts_log
"testing offsets with specific length"
60 run_tscmd
$TS_CMD_BLKDISCARD -v -l 5242880 $DEVICE
61 run_tscmd
$TS_CMD_BLKDISCARD -v -l 5242881 $DEVICE
62 run_tscmd
$TS_CMD_BLKDISCARD -v -l 5243391 $DEVICE
63 run_tscmd
$TS_CMD_BLKDISCARD -v -o 1 -l 5242880 $DEVICE
64 run_tscmd
$TS_CMD_BLKDISCARD -v -o 511 -l 5242880 $DEVICE
65 run_tscmd
$TS_CMD_BLKDISCARD -v -o 512 -l 5242880 $DEVICE
66 run_tscmd
$TS_CMD_BLKDISCARD -v -o 1024 -l 5242880 $DEVICE
68 ts_log
"testing aligned steps full device"
69 run_tscmd
$TS_CMD_BLKDISCARD -v -p 5242880 $DEVICE
70 run_tscmd
$TS_CMD_BLKDISCARD -v -p 1310720 $DEVICE
72 ts_log
"testing aligned steps with offsets and length"
73 run_tscmd
$TS_CMD_BLKDISCARD -v -p 512 -l 1024 $DEVICE
74 run_tscmd
$TS_CMD_BLKDISCARD -v -p 512 -o 1 -l 1024 $DEVICE
75 run_tscmd
$TS_CMD_BLKDISCARD -v -p 512 -o 1 -l 1536 $DEVICE
76 run_tscmd
$TS_CMD_BLKDISCARD -v -p 512 -o 511 -l 1536 $DEVICE
77 run_tscmd
$TS_CMD_BLKDISCARD -v -p 512 -o 512 -l 1536 $DEVICE
78 run_tscmd
$TS_CMD_BLKDISCARD -v -p 512 -o 1024 -l 1024 $DEVICE
80 ts_log
"testing misaligned steps full device"
81 run_tscmd
$TS_CMD_BLKDISCARD -v -p 1 $DEVICE
82 run_tscmd
$TS_CMD_BLKDISCARD -v -p 256 $DEVICE
83 run_tscmd
$TS_CMD_BLKDISCARD -v -p 511 $DEVICE
84 run_tscmd
$TS_CMD_BLKDISCARD -v -p 513 $DEVICE
85 run_tscmd
$TS_CMD_BLKDISCARD -v -p 768 $DEVICE
87 ts_log
"testing misaligned steps with offsets and length"
88 run_tscmd
$TS_CMD_BLKDISCARD -v -p 511 -l 1024 $DEVICE
89 run_tscmd
$TS_CMD_BLKDISCARD -v -p 511 -o 1 -l 1536 $DEVICE
90 run_tscmd
$TS_CMD_BLKDISCARD -v -p 511 -o 511 -l 1536 $DEVICE
91 run_tscmd
$TS_CMD_BLKDISCARD -v -p 511 -l 10240 $DEVICE
92 run_tscmd
$TS_CMD_BLKDISCARD -v -p 511 -o 1 -l 10240 $DEVICE
93 run_tscmd
$TS_CMD_BLKDISCARD -v -p 511 -o 511 -l 10240 $DEVICE
95 sed -i "s#$DEVICE:\s##" $TS_OUTPUT
97 ts_log
"detach loop device from image"