958e1b
From 6f81b4847eb68ebdf54a8f1a771e19d112d74152 Mon Sep 17 00:00:00 2001
958e1b
Message-Id: <6f81b4847eb68ebdf54a8f1a771e19d112d74152.1418766606.git.jen@redhat.com>
958e1b
From: Fam Zheng <famz@redhat.com>
958e1b
Date: Thu, 4 Dec 2014 00:04:55 -0600
958e1b
Subject: [CHANGE 01/31] qemu-iotests: Test case for backing file deletion
958e1b
To: rhvirt-patches@redhat.com,
958e1b
    jen@redhat.com
958e1b
958e1b
RH-Author: Fam Zheng <famz@redhat.com>
958e1b
Message-id: <1417651524-18041-2-git-send-email-famz@redhat.com>
958e1b
Patchwork-id: 62674
958e1b
O-Subject: [RHEL-7.1 qemu-kvm PATCH v5 01/30] qemu-iotests: Test case for backing file deletion
958e1b
Bugzilla: 1002493
958e1b
RH-Acked-by: Jeffrey Cody <jcody@redhat.com>
958e1b
RH-Acked-by: Markus Armbruster <armbru@redhat.com>
958e1b
RH-Acked-by: Max Reitz <mreitz@redhat.com>
958e1b
958e1b
From: Max Reitz <mreitz@redhat.com>
958e1b
958e1b
Add a test case for trying to open an image file where it is impossible
958e1b
to open its backing file (in this case, because it was deleted). When
958e1b
doing this, qemu (or qemu-io in this case) should not crash but rather
958e1b
print an appropriate error message.
958e1b
958e1b
Signed-off-by: Max Reitz <mreitz@redhat.com>
958e1b
Reviewed-by: Fam Zheng <famz@redhat.com>
958e1b
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
958e1b
(cherry picked from commit 321fd7d2b88defe11528e4d5a9f686c89ebee1ee)
958e1b
Signed-off-by: Fam Zheng <famz@redhat.com>
958e1b
Signed-off-by: Jeff E. Nelson <jen@redhat.com>
958e1b
958e1b
Conflicts:
958e1b
	tests/qemu-iotests/group
958e1b
Trivial context conflict.
958e1b
958e1b
Signed-off-by: Jeff E. Nelson <jen@redhat.com>
958e1b
---
958e1b
 tests/qemu-iotests/069     | 59 ++++++++++++++++++++++++++++++++++++++++++++++
958e1b
 tests/qemu-iotests/069.out |  8 +++++++
958e1b
 tests/qemu-iotests/group   |  1 +
958e1b
 3 files changed, 68 insertions(+)
958e1b
 create mode 100755 tests/qemu-iotests/069
958e1b
 create mode 100644 tests/qemu-iotests/069.out
958e1b
958e1b
diff --git a/tests/qemu-iotests/069 b/tests/qemu-iotests/069
958e1b
new file mode 100755
958e1b
index 0000000..3042803
958e1b
--- /dev/null
958e1b
+++ b/tests/qemu-iotests/069
958e1b
@@ -0,0 +1,59 @@
958e1b
+#!/bin/bash
958e1b
+#
958e1b
+# Test case for deleting a backing file
958e1b
+#
958e1b
+# Copyright (C) 2013 Red Hat, Inc.
958e1b
+#
958e1b
+# This program is free software; you can redistribute it and/or modify
958e1b
+# it under the terms of the GNU General Public License as published by
958e1b
+# the Free Software Foundation; either version 2 of the License, or
958e1b
+# (at your option) any later version.
958e1b
+#
958e1b
+# This program is distributed in the hope that it will be useful,
958e1b
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
958e1b
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
958e1b
+# GNU General Public License for more details.
958e1b
+#
958e1b
+# You should have received a copy of the GNU General Public License
958e1b
+# along with this program.  If not, see <http: www.gnu.org="" licenses=""/>.
958e1b
+#
958e1b
+
958e1b
+# creator
958e1b
+owner=mreitz@redhat.com
958e1b
+
958e1b
+seq="$(basename $0)"
958e1b
+echo "QA output created by $seq"
958e1b
+
958e1b
+here="$PWD"
958e1b
+tmp=/tmp/$$
958e1b
+status=1	# failure is the default!
958e1b
+
958e1b
+_cleanup()
958e1b
+{
958e1b
+	_cleanup_test_img
958e1b
+}
958e1b
+trap "_cleanup; exit \$status" 0 1 2 3 15
958e1b
+
958e1b
+# get standard environment, filters and checks
958e1b
+. ./common.rc
958e1b
+. ./common.filter
958e1b
+
958e1b
+_supported_fmt cow qed qcow qcow2 vmdk
958e1b
+_supported_proto generic
958e1b
+_supported_os Linux
958e1b
+
958e1b
+IMG_SIZE=128K
958e1b
+
958e1b
+echo
958e1b
+echo "=== Creating an image with a backing file and deleting that file ==="
958e1b
+echo
958e1b
+TEST_IMG="$TEST_IMG.base" _make_test_img $IMG_SIZE
958e1b
+_make_test_img -b "$TEST_IMG.base" $IMG_SIZE
958e1b
+rm -f "$TEST_IMG.base"
958e1b
+# Just open the image and close it right again (this should print an error message)
958e1b
+$QEMU_IO -c quit "$TEST_IMG" 2>&1 | _filter_testdir | _filter_imgfmt
958e1b
+
958e1b
+# success, all done
958e1b
+echo "*** done"
958e1b
+rm -f $seq.full
958e1b
+status=0
958e1b
diff --git a/tests/qemu-iotests/069.out b/tests/qemu-iotests/069.out
958e1b
new file mode 100644
958e1b
index 0000000..3648814
958e1b
--- /dev/null
958e1b
+++ b/tests/qemu-iotests/069.out
958e1b
@@ -0,0 +1,8 @@
958e1b
+QA output created by 069
958e1b
+
958e1b
+=== Creating an image with a backing file and deleting that file ===
958e1b
+
958e1b
+Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=131072 
958e1b
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=131072 backing_file='TEST_DIR/t.IMGFMT.base' 
958e1b
+qemu-io: can't open device TEST_DIR/t.IMGFMT: Could not open file: No such file or directory
958e1b
+*** done
958e1b
diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group
958e1b
index 3fad61d..572438e 100644
958e1b
--- a/tests/qemu-iotests/group
958e1b
+++ b/tests/qemu-iotests/group
958e1b
@@ -71,6 +71,7 @@
958e1b
 066 rw auto
958e1b
 067 rw auto
958e1b
 068 rw auto
958e1b
+069 rw auto
958e1b
 070 rw auto
958e1b
 075 rw auto
958e1b
 076 auto
958e1b
-- 
958e1b
2.1.0
958e1b