xref: /qemu/tests/qemu-iotests/043 (revision f91ecbd74eb75e9d4c7b4016edaf69d070cb3f9b)
111a82d14SPhilippe 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
32*f91ecbd7SMax Reitz    for img in "$TEST_IMG".[123].base; do
33*f91ecbd7SMax Reitz        _rm_test_img "$img"
34*f91ecbd7SMax Reitz    done
35514d9da5SStefan Hajnoczi}
36514d9da5SStefan Hajnoczitrap "_cleanup; exit \$status" 0 1 2 3 15
37514d9da5SStefan Hajnoczi
38514d9da5SStefan Hajnoczi# get standard environment, filters and checks
39514d9da5SStefan Hajnoczi. ./common.rc
40514d9da5SStefan Hajnoczi. ./common.filter
41514d9da5SStefan Hajnoczi
42514d9da5SStefan Hajnoczi# Any format supporting backing files
43dbcdd7cbSFam Zheng_supported_fmt qcow2 qed
441f7bf7d0SPeter Lieven_supported_proto file
45514d9da5SStefan Hajnoczi
46514d9da5SStefan Hajnoczi
47514d9da5SStefan Hajnoczisize=128M
48514d9da5SStefan Hajnoczi_make_test_img $size
49fef9c191SJeff Cody$QEMU_IMG rebase -u -b "$TEST_IMG" "$TEST_IMG"
50514d9da5SStefan Hajnoczi
51514d9da5SStefan Hajnocziecho
52514d9da5SStefan Hajnocziecho "== backing file references self =="
53514d9da5SStefan Hajnoczi_img_info --backing-chain
54514d9da5SStefan Hajnoczi
55514d9da5SStefan Hajnoczi_make_test_img $size
56fef9c191SJeff Codymv "$TEST_IMG" "$TEST_IMG.base"
57fef9c191SJeff Cody_make_test_img -b "$TEST_IMG.base" $size
58fef9c191SJeff Cody$QEMU_IMG rebase -u -b "$TEST_IMG" "$TEST_IMG.base"
59514d9da5SStefan Hajnoczi
60514d9da5SStefan Hajnocziecho
61514d9da5SStefan Hajnocziecho "== parent references self =="
62514d9da5SStefan Hajnoczi_img_info --backing-chain
63514d9da5SStefan Hajnoczi
64514d9da5SStefan Hajnoczi_make_test_img $size
65fef9c191SJeff Codymv "$TEST_IMG" "$TEST_IMG.1.base"
66fef9c191SJeff Cody_make_test_img -b "$TEST_IMG.1.base" $size
67fef9c191SJeff Codymv "$TEST_IMG" "$TEST_IMG.2.base"
68fef9c191SJeff Cody_make_test_img -b "$TEST_IMG.2.base" $size
69fef9c191SJeff Codymv "$TEST_IMG" "$TEST_IMG.3.base"
70fef9c191SJeff Cody_make_test_img -b "$TEST_IMG.3.base" $size
71fef9c191SJeff Cody$QEMU_IMG rebase -u -b "$TEST_IMG.2.base" "$TEST_IMG.1.base"
72514d9da5SStefan Hajnoczi
73514d9da5SStefan Hajnocziecho
74514d9da5SStefan Hajnocziecho "== ancestor references another ancestor =="
75514d9da5SStefan Hajnoczi_img_info --backing-chain
76514d9da5SStefan Hajnoczi
77514d9da5SStefan Hajnoczi_make_test_img $size
78fef9c191SJeff Codymv "$TEST_IMG" "$TEST_IMG.1.base"
79fef9c191SJeff Cody_make_test_img -b "$TEST_IMG.1.base" $size
80fef9c191SJeff Codymv "$TEST_IMG" "$TEST_IMG.2.base"
81fef9c191SJeff Cody_make_test_img -b "$TEST_IMG.2.base" $size
82514d9da5SStefan Hajnoczi
83514d9da5SStefan Hajnocziecho
84514d9da5SStefan Hajnocziecho "== finite chain of length 3 (human) =="
85514d9da5SStefan Hajnoczi_img_info --backing-chain
86514d9da5SStefan Hajnoczi
87514d9da5SStefan Hajnocziecho
88514d9da5SStefan Hajnocziecho "== finite chain of length 3 (json) =="
89514d9da5SStefan Hajnoczi_img_info --backing-chain --output=json
90514d9da5SStefan Hajnoczi
91514d9da5SStefan Hajnoczi# success, all done
92514d9da5SStefan Hajnocziecho "*** done"
93514d9da5SStefan Hajnoczirm -f $seq.full
94514d9da5SStefan Hajnoczistatus=0
95