xref: /openbmc/qemu/tests/qemu-iotests/059 (revision fef9c191)
1ca6cbb65SFam Zheng#!/bin/bash
2ca6cbb65SFam Zheng#
3ca6cbb65SFam Zheng# Test case for vmdk
4ca6cbb65SFam Zheng#
5ca6cbb65SFam Zheng# Copyright (C) 2013 Red Hat, Inc.
6ca6cbb65SFam Zheng#
7ca6cbb65SFam Zheng# This program is free software; you can redistribute it and/or modify
8ca6cbb65SFam Zheng# it under the terms of the GNU General Public License as published by
9ca6cbb65SFam Zheng# the Free Software Foundation; either version 2 of the License, or
10ca6cbb65SFam Zheng# (at your option) any later version.
11ca6cbb65SFam Zheng#
12ca6cbb65SFam Zheng# This program is distributed in the hope that it will be useful,
13ca6cbb65SFam Zheng# but WITHOUT ANY WARRANTY; without even the implied warranty of
14ca6cbb65SFam Zheng# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15ca6cbb65SFam Zheng# GNU General Public License for more details.
16ca6cbb65SFam Zheng#
17ca6cbb65SFam Zheng# You should have received a copy of the GNU General Public License
18ca6cbb65SFam Zheng# along with this program.  If not, see <http://www.gnu.org/licenses/>.
19ca6cbb65SFam Zheng#
20ca6cbb65SFam Zheng
21ca6cbb65SFam Zheng# creator
22ca6cbb65SFam Zhengowner=famz@redhat.com
23ca6cbb65SFam Zheng
24ca6cbb65SFam Zhengseq=`basename $0`
25ca6cbb65SFam Zhengecho "QA output created by $seq"
26ca6cbb65SFam Zheng
27ca6cbb65SFam Zhenghere=`pwd`
28ca6cbb65SFam Zhengtmp=/tmp/$$
29ca6cbb65SFam Zhengstatus=1	# failure is the default!
30ca6cbb65SFam Zheng
31ca6cbb65SFam Zheng_cleanup()
32ca6cbb65SFam Zheng{
33ca6cbb65SFam Zheng	_cleanup_test_img
34ca6cbb65SFam Zheng}
35ca6cbb65SFam Zhengtrap "_cleanup; exit \$status" 0 1 2 3 15
36ca6cbb65SFam Zheng
37ca6cbb65SFam Zheng# get standard environment, filters and checks
38ca6cbb65SFam Zheng. ./common.rc
39ca6cbb65SFam Zheng. ./common.filter
40ca6cbb65SFam Zheng
41ca6cbb65SFam Zheng# This tests vmdk-specific low-level functionality
42ca6cbb65SFam Zheng_supported_fmt vmdk
43ca6cbb65SFam Zheng_supported_proto generic
44ca6cbb65SFam Zheng_supported_os Linux
45ca6cbb65SFam Zheng
462c43e43cSFam Zhengcapacity_offset=16
478aa1331cSFam Zhenggranularity_offset=20
48f8ce0403SFam Zhenggrain_table_size_offset=44
498aa1331cSFam Zheng
508aa1331cSFam Zhengecho "=== Testing invalid granularity ==="
518aa1331cSFam Zhengecho
528aa1331cSFam Zheng_make_test_img 64M
538aa1331cSFam Zhengpoke_file "$TEST_IMG" "$granularity_offset" "\xff\xff\xff\xff\xff\xff\xff\xff"
54*fef9c191SJeff Cody{ $QEMU_IO -c "read 0 512" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
55ca6cbb65SFam Zheng
56f8ce0403SFam Zhengecho "=== Testing too big L2 table size ==="
57f8ce0403SFam Zhengecho
58f8ce0403SFam Zheng_make_test_img 64M
59f8ce0403SFam Zhengpoke_file "$TEST_IMG" "$grain_table_size_offset" "\xff\xff\xff\xff"
60*fef9c191SJeff Cody{ $QEMU_IO -c "read 0 512" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
61f8ce0403SFam Zheng
622c43e43cSFam Zhengecho "=== Testing too big L1 table size ==="
632c43e43cSFam Zhengecho
642c43e43cSFam Zheng_make_test_img 64M
652c43e43cSFam Zhengpoke_file "$TEST_IMG" "$capacity_offset" "\xff\xff\xff\xff"
662c43e43cSFam Zhengpoke_file "$TEST_IMG" "$grain_table_size_offset" "\x01\x00\x00\x00"
67*fef9c191SJeff Cody{ $QEMU_IO -c "read 0 512" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
682c43e43cSFam Zheng
692fe2e290SFam Zhengecho "=== Testing monolithicFlat creation and opening ==="
702fe2e290SFam Zhengecho
712fe2e290SFam ZhengIMGOPTS="subformat=monolithicFlat" _make_test_img 2G
722fe2e290SFam Zheng$QEMU_IMG info $TEST_IMG | _filter_testdir
732fe2e290SFam Zheng
74ca6cbb65SFam Zheng# success, all done
75ca6cbb65SFam Zhengecho "*** done"
76ca6cbb65SFam Zhengrm -f $seq.full
77ca6cbb65SFam Zhengstatus=0
78