xref: /openbmc/qemu/tests/qemu-iotests/131 (revision ca9c4e0675f9cb98138e1069605114f45746d985)
1*ca9c4e06SDenis V. Lunev#!/bin/bash
2*ca9c4e06SDenis V. Lunev#
3*ca9c4e06SDenis V. Lunev# parallels format validation tests (created by QEMU)
4*ca9c4e06SDenis V. Lunev#
5*ca9c4e06SDenis V. Lunev# Copyright (C) 2014 Denis V. Lunev <den@openvz.org>
6*ca9c4e06SDenis V. Lunev#
7*ca9c4e06SDenis V. Lunev# This program is free software; you can redistribute it and/or modify
8*ca9c4e06SDenis V. Lunev# it under the terms of the GNU General Public License as published by
9*ca9c4e06SDenis V. Lunev# the Free Software Foundation; either version 2 of the License, or
10*ca9c4e06SDenis V. Lunev# (at your option) any later version.
11*ca9c4e06SDenis V. Lunev#
12*ca9c4e06SDenis V. Lunev# This program is distributed in the hope that it will be useful,
13*ca9c4e06SDenis V. Lunev# but WITHOUT ANY WARRANTY; without even the implied warranty of
14*ca9c4e06SDenis V. Lunev# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15*ca9c4e06SDenis V. Lunev# GNU General Public License for more details.
16*ca9c4e06SDenis V. Lunev#
17*ca9c4e06SDenis V. Lunev# You should have received a copy of the GNU General Public License
18*ca9c4e06SDenis V. Lunev# along with this program.  If not, see <http://www.gnu.org/licenses/>.
19*ca9c4e06SDenis V. Lunev#
20*ca9c4e06SDenis V. Lunev
21*ca9c4e06SDenis V. Lunev# creator
22*ca9c4e06SDenis V. Lunevowner=den@openvz.org
23*ca9c4e06SDenis V. Lunev
24*ca9c4e06SDenis V. Lunevseq=`basename $0`
25*ca9c4e06SDenis V. Lunevecho "QA output created by $seq"
26*ca9c4e06SDenis V. Lunev
27*ca9c4e06SDenis V. Lunevhere=`pwd`
28*ca9c4e06SDenis V. Lunevtmp=/tmp/$$
29*ca9c4e06SDenis V. Lunevstatus=1	# failure is the default!
30*ca9c4e06SDenis V. Lunev
31*ca9c4e06SDenis V. Lunev_cleanup()
32*ca9c4e06SDenis V. Lunev{
33*ca9c4e06SDenis V. Lunev    _cleanup_test_img
34*ca9c4e06SDenis V. Lunev}
35*ca9c4e06SDenis V. Lunevtrap "_cleanup; exit \$status" 0 1 2 3 15
36*ca9c4e06SDenis V. Lunev
37*ca9c4e06SDenis V. Lunev# get standard environment, filters and checks
38*ca9c4e06SDenis V. Lunev. ./common.rc
39*ca9c4e06SDenis V. Lunev. ./common.filter
40*ca9c4e06SDenis V. Lunev
41*ca9c4e06SDenis V. Lunev_supported_fmt parallels
42*ca9c4e06SDenis V. Lunev_supported_proto file
43*ca9c4e06SDenis V. Lunev_supported_os Linux
44*ca9c4e06SDenis V. Lunev
45*ca9c4e06SDenis V. Lunevsize=64M
46*ca9c4e06SDenis V. LunevCLUSTER_SIZE=64k
47*ca9c4e06SDenis V. LunevIMGFMT=parallels
48*ca9c4e06SDenis V. Lunev_make_test_img $size
49*ca9c4e06SDenis V. Lunev
50*ca9c4e06SDenis V. Lunevecho == read empty image ==
51*ca9c4e06SDenis V. Lunev{ $QEMU_IO -c "read -P 0 32k 64k" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
52*ca9c4e06SDenis V. Lunevecho == write more than 1 block in a row ==
53*ca9c4e06SDenis V. Lunev{ $QEMU_IO -c "write -P 0x11 32k 128k" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
54*ca9c4e06SDenis V. Lunevecho == read less than block ==
55*ca9c4e06SDenis V. Lunev{ $QEMU_IO -c "read -P 0x11 32k 32k" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
56*ca9c4e06SDenis V. Lunevecho == read exactly 1 block ==
57*ca9c4e06SDenis V. Lunev{ $QEMU_IO -c "read -P 0x11 64k 64k" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
58*ca9c4e06SDenis V. Lunevecho == read more than 1 block ==
59*ca9c4e06SDenis V. Lunev{ $QEMU_IO -c "read -P 0x11 32k 128k" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
60*ca9c4e06SDenis V. Lunevecho == check that there is no trash after written ==
61*ca9c4e06SDenis V. Lunev{ $QEMU_IO -c "read -P 0 160k 32k" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
62*ca9c4e06SDenis V. Lunevecho == check that there is no trash before written ==
63*ca9c4e06SDenis V. Lunev{ $QEMU_IO -c "read -P 0 0 32k" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
64*ca9c4e06SDenis V. Lunev
65*ca9c4e06SDenis V. Lunev# success, all done
66*ca9c4e06SDenis V. Lunevecho "*** done"
67*ca9c4e06SDenis V. Lunevrm -f $seq.full
68*ca9c4e06SDenis V. Lunevstatus=0
69