xref: /openbmc/qemu/tests/qemu-iotests/043 (revision 11a82d14293cd66f428f535741717ff338c0722b)
1*11a82d14SPhilippe Mathieu-Daudé#!/usr/bin/env bash
2514d9da5SStefan Hajnoczi#
3514d9da5SStefan Hajnoczi# Test that qemu-img info --backing-chain detects infinite loops
4514d9da5SStefan Hajnoczi#
5514d9da5SStefan Hajnoczi# Copyright (C) 2012 Red Hat, Inc.
6514d9da5SStefan Hajnoczi#
7514d9da5SStefan Hajnoczi# This program is free software; you can redistribute it and/or modify
8514d9da5SStefan Hajnoczi# it under the terms of the GNU General Public License as published by
9514d9da5SStefan Hajnoczi# the Free Software Foundation; either version 2 of the License, or
10514d9da5SStefan Hajnoczi# (at your option) any later version.
11514d9da5SStefan Hajnoczi#
12514d9da5SStefan Hajnoczi# This program is distributed in the hope that it will be useful,
13514d9da5SStefan Hajnoczi# but WITHOUT ANY WARRANTY; without even the implied warranty of
14514d9da5SStefan Hajnoczi# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15514d9da5SStefan Hajnoczi# GNU General Public License for more details.
16514d9da5SStefan Hajnoczi#
17514d9da5SStefan Hajnoczi# You should have received a copy of the GNU General Public License
18514d9da5SStefan Hajnoczi# along with this program.  If not, see <http://www.gnu.org/licenses/>.
19514d9da5SStefan Hajnoczi#
20514d9da5SStefan Hajnoczi
21514d9da5SStefan Hajnoczi# creator
22514d9da5SStefan Hajnocziowner=stefanha@redhat.com
23514d9da5SStefan Hajnoczi
24514d9da5SStefan Hajnocziseq=`basename $0`
25514d9da5SStefan Hajnocziecho "QA output created by $seq"
26514d9da5SStefan Hajnoczi
27514d9da5SStefan Hajnoczistatus=1	# failure is the default!
28514d9da5SStefan Hajnoczi
29514d9da5SStefan Hajnoczi_cleanup()
30514d9da5SStefan Hajnoczi{
31514d9da5SStefan Hajnoczi    _cleanup_test_img
32fef9c191SJeff Cody    rm -f "$TEST_IMG".[123].base
33514d9da5SStefan Hajnoczi}
34514d9da5SStefan Hajnoczitrap "_cleanup; exit \$status" 0 1 2 3 15
35514d9da5SStefan Hajnoczi
36514d9da5SStefan Hajnoczi# get standard environment, filters and checks
37514d9da5SStefan Hajnoczi. ./common.rc
38514d9da5SStefan Hajnoczi. ./common.filter
39514d9da5SStefan Hajnoczi
40514d9da5SStefan Hajnoczi# Any format supporting backing files
41dbcdd7cbSFam Zheng_supported_fmt qcow2 qed
421f7bf7d0SPeter Lieven_supported_proto file
43514d9da5SStefan Hajnoczi_supported_os Linux
44514d9da5SStefan Hajnoczi
45514d9da5SStefan Hajnoczi
46514d9da5SStefan Hajnoczisize=128M
47514d9da5SStefan Hajnoczi_make_test_img $size
48fef9c191SJeff Cody$QEMU_IMG rebase -u -b "$TEST_IMG" "$TEST_IMG"
49514d9da5SStefan Hajnoczi
50514d9da5SStefan Hajnocziecho
51514d9da5SStefan Hajnocziecho "== backing file references self =="
52514d9da5SStefan Hajnoczi_img_info --backing-chain
53514d9da5SStefan Hajnoczi
54514d9da5SStefan Hajnoczi_make_test_img $size
55fef9c191SJeff Codymv "$TEST_IMG" "$TEST_IMG.base"
56fef9c191SJeff Cody_make_test_img -b "$TEST_IMG.base" $size
57fef9c191SJeff Cody$QEMU_IMG rebase -u -b "$TEST_IMG" "$TEST_IMG.base"
58514d9da5SStefan Hajnoczi
59514d9da5SStefan Hajnocziecho
60514d9da5SStefan Hajnocziecho "== parent references self =="
61514d9da5SStefan Hajnoczi_img_info --backing-chain
62514d9da5SStefan Hajnoczi
63514d9da5SStefan Hajnoczi_make_test_img $size
64fef9c191SJeff Codymv "$TEST_IMG" "$TEST_IMG.1.base"
65fef9c191SJeff Cody_make_test_img -b "$TEST_IMG.1.base" $size
66fef9c191SJeff Codymv "$TEST_IMG" "$TEST_IMG.2.base"
67fef9c191SJeff Cody_make_test_img -b "$TEST_IMG.2.base" $size
68fef9c191SJeff Codymv "$TEST_IMG" "$TEST_IMG.3.base"
69fef9c191SJeff Cody_make_test_img -b "$TEST_IMG.3.base" $size
70fef9c191SJeff Cody$QEMU_IMG rebase -u -b "$TEST_IMG.2.base" "$TEST_IMG.1.base"
71514d9da5SStefan Hajnoczi
72514d9da5SStefan Hajnocziecho
73514d9da5SStefan Hajnocziecho "== ancestor references another ancestor =="
74514d9da5SStefan Hajnoczi_img_info --backing-chain
75514d9da5SStefan Hajnoczi
76514d9da5SStefan Hajnoczi_make_test_img $size
77fef9c191SJeff Codymv "$TEST_IMG" "$TEST_IMG.1.base"
78fef9c191SJeff Cody_make_test_img -b "$TEST_IMG.1.base" $size
79fef9c191SJeff Codymv "$TEST_IMG" "$TEST_IMG.2.base"
80fef9c191SJeff Cody_make_test_img -b "$TEST_IMG.2.base" $size
81514d9da5SStefan Hajnoczi
82514d9da5SStefan Hajnocziecho
83514d9da5SStefan Hajnocziecho "== finite chain of length 3 (human) =="
84514d9da5SStefan Hajnoczi_img_info --backing-chain
85514d9da5SStefan Hajnoczi
86514d9da5SStefan Hajnocziecho
87514d9da5SStefan Hajnocziecho "== finite chain of length 3 (json) =="
88514d9da5SStefan Hajnoczi_img_info --backing-chain --output=json
89514d9da5SStefan Hajnoczi
90514d9da5SStefan Hajnoczi# success, all done
91514d9da5SStefan Hajnocziecho "*** done"
92514d9da5SStefan Hajnoczirm -f $seq.full
93514d9da5SStefan Hajnoczistatus=0
94