From nobody Sun Feb 8 17:47:51 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1572989608; cv=none; d=zoho.com; s=zohoarc; b=VaQ01z/sogE0yu9mj2lxf+NpiK2ouNHzqdMMdN3JkyYBa81mxnu35IXLoSK/cL69xh8GqTg6Kh0+/QU8I1FPu01ce3yt4KHCnlo+bzTphIdgpaA6/GYER6nus/wMYuUN5pMRtwREDWIBvJL42QQ3HCZ0pXOmrlJumpm2lLJ0NBo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1572989608; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=/w1GjNnGE3DMlWN7G3K4pCjYFs+SCFdeKLXZ7RYvaOw=; b=FV9IFt8P7ZQegUhee87H0vHE6YV5mRgrRdA2Hdtbh/CGgEwOx4kgMJAHfPBNqDdXJKz7e7lyTq0ZmWAotpTNRKwbbyAEYRKaAk3YvpuA9nCeyUIZBmYFvPN0lGsyQVDuUsthpp2FBt99S3cL7+Qkt63L0q0DWvpqPoiZytwFho4= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1572989608913123.27725143796795; Tue, 5 Nov 2019 13:33:28 -0800 (PST) Received: from localhost ([::1]:50386 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iS6S7-0000tL-6J for importer@patchew.org; Tue, 05 Nov 2019 16:33:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:59424) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iS5qa-0002kF-PB for qemu-devel@nongnu.org; Tue, 05 Nov 2019 15:54:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iS5qY-00039t-6N for qemu-devel@nongnu.org; Tue, 05 Nov 2019 15:54:40 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:44010) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iS5qX-00039K-Ty; Tue, 05 Nov 2019 15:54:38 -0500 Received: from pps.filterd (m0098409.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id xA5KsTiK043519; Tue, 5 Nov 2019 15:54:37 -0500 Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 2w3e19w8mm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 05 Nov 2019 15:54:36 -0500 Received: from m0098409.ppops.net (m0098409.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.27/8.16.0.27) with SMTP id xA5Ksapo044042; Tue, 5 Nov 2019 15:54:36 -0500 Received: from ppma03wdc.us.ibm.com (ba.79.3fa9.ip4.static.sl-reverse.com [169.63.121.186]) by mx0a-001b2d01.pphosted.com with ESMTP id 2w3e19w8h9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 05 Nov 2019 15:54:36 -0500 Received: from pps.filterd (ppma03wdc.us.ibm.com [127.0.0.1]) by ppma03wdc.us.ibm.com (8.16.0.27/8.16.0.27) with SMTP id xA5KnwpW017684; Tue, 5 Nov 2019 20:53:10 GMT Received: from b01cxnp22035.gho.pok.ibm.com (b01cxnp22035.gho.pok.ibm.com [9.57.198.25]) by ppma03wdc.us.ibm.com with ESMTP id 2w11e7h8u7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 05 Nov 2019 20:53:10 +0000 Received: from b01ledav002.gho.pok.ibm.com (b01ledav002.gho.pok.ibm.com [9.57.199.107]) by b01cxnp22035.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id xA5KrAUJ52953492 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 5 Nov 2019 20:53:10 GMT Received: from b01ledav002.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DBB6D124052; Tue, 5 Nov 2019 20:53:09 +0000 (GMT) Received: from b01ledav002.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B2E9C12405B; Tue, 5 Nov 2019 20:53:09 +0000 (GMT) Received: from localhost (unknown [9.53.179.218]) by b01ledav002.gho.pok.ibm.com (Postfix) with ESMTP; Tue, 5 Nov 2019 20:53:09 +0000 (GMT) From: Michael Roth To: qemu-devel@nongnu.org Subject: [PATCH 40/55] iotests: Test internal snapshots with -blockdev Date: Tue, 5 Nov 2019 14:52:28 -0600 Message-Id: <20191105205243.3766-41-mdroth@linux.vnet.ibm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191105205243.3766-1-mdroth@linux.vnet.ibm.com> References: <20191105205243.3766-1-mdroth@linux.vnet.ibm.com> X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-11-05_07:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1908290000 definitions=main-1911050170 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 148.163.156.1 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , qemu-stable@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Kevin Wolf Signed-off-by: Kevin Wolf Reviewed-by: Peter Krempa Tested-by: Peter Krempa (cherry picked from commit 92b22e7b1789b0e5f20d245706e72eae70dbddce) Signed-off-by: Michael Roth --- tests/qemu-iotests/267 | 168 ++++++++++++++++++++++++++++ tests/qemu-iotests/267.out | 182 +++++++++++++++++++++++++++++++ tests/qemu-iotests/common.filter | 11 +- tests/qemu-iotests/group | 1 + 4 files changed, 358 insertions(+), 4 deletions(-) create mode 100755 tests/qemu-iotests/267 create mode 100644 tests/qemu-iotests/267.out diff --git a/tests/qemu-iotests/267 b/tests/qemu-iotests/267 new file mode 100755 index 0000000000..d37a67c012 --- /dev/null +++ b/tests/qemu-iotests/267 @@ -0,0 +1,168 @@ +#!/usr/bin/env bash +# +# Test which nodes are involved in internal snapshots +# +# Copyright (C) 2019 Red Hat, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# creator +owner=3Dkwolf@redhat.com + +seq=3D`basename $0` +echo "QA output created by $seq" + +status=3D1 # failure is the default! + +_cleanup() +{ + _cleanup_test_img + rm -f "$TEST_DIR/nbd" +} +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter + +_supported_fmt qcow2 +_supported_proto file +_supported_os Linux + +# Internal snapshots are (currently) impossible with refcount_bits=3D1 +_unsupported_imgopts 'refcount_bits=3D1[^0-9]' + +do_run_qemu() +{ + echo Testing: "$@" + ( + if ! test -t 0; then + while read cmd; do + echo $cmd + done + fi + echo quit + ) | $QEMU -nographic -monitor stdio -nodefaults "$@" + echo +} + +run_qemu() +{ + do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qemu | _filter_hmp | + _filter_generated_node_ids | _filter_imgfmt | _filter_vmstate_size +} + +size=3D128M + +run_test() +{ + _make_test_img $size + printf "savevm snap0\ninfo snapshots\nloadvm snap0\n" | run_qemu "$@" = | _filter_date +} + + +echo +echo "=3D=3D=3D No block devices at all =3D=3D=3D" +echo + +run_test + +echo +echo "=3D=3D=3D -drive if=3Dnone =3D=3D=3D" +echo + +run_test -drive driver=3Dfile,file=3D"$TEST_IMG",if=3Dnone +run_test -drive driver=3D$IMGFMT,file=3D"$TEST_IMG",if=3Dnone +run_test -drive driver=3D$IMGFMT,file=3D"$TEST_IMG",if=3Dnone -device virt= io-blk,drive=3Dnone0 + +echo +echo "=3D=3D=3D -drive if=3Dvirtio =3D=3D=3D" +echo + +run_test -drive driver=3Dfile,file=3D"$TEST_IMG",if=3Dvirtio +run_test -drive driver=3D$IMGFMT,file=3D"$TEST_IMG",if=3Dvirtio + +echo +echo "=3D=3D=3D Simple -blockdev =3D=3D=3D" +echo + +run_test -blockdev driver=3Dfile,filename=3D"$TEST_IMG",node-name=3Dfile +run_test -blockdev driver=3Dfile,filename=3D"$TEST_IMG",node-name=3Dfile \ + -blockdev driver=3D$IMGFMT,file=3Dfile,node-name=3Dfmt +run_test -blockdev driver=3Dfile,filename=3D"$TEST_IMG",node-name=3Dfile \ + -blockdev driver=3Draw,file=3Dfile,node-name=3Draw \ + -blockdev driver=3D$IMGFMT,file=3Draw,node-name=3Dfmt + +echo +echo "=3D=3D=3D -blockdev with a filter on top =3D=3D=3D" +echo + +run_test -blockdev driver=3Dfile,filename=3D"$TEST_IMG",node-name=3Dfile \ + -blockdev driver=3D$IMGFMT,file=3Dfile,node-name=3Dfmt \ + -blockdev driver=3Dcopy-on-read,file=3Dfmt,node-name=3Dfilter + +echo +echo "=3D=3D=3D -blockdev with a backing file =3D=3D=3D" +echo + +TEST_IMG=3D"$TEST_IMG.base" _make_test_img $size + +IMGOPTS=3D"backing_file=3D$TEST_IMG.base" \ +run_test -blockdev driver=3Dfile,filename=3D"$TEST_IMG.base",node-name=3Db= acking-file \ + -blockdev driver=3Dfile,filename=3D"$TEST_IMG",node-name=3Dfile \ + -blockdev driver=3D$IMGFMT,file=3Dfile,backing=3Dbacking-file,nod= e-name=3Dfmt + +IMGOPTS=3D"backing_file=3D$TEST_IMG.base" \ +run_test -blockdev driver=3Dfile,filename=3D"$TEST_IMG.base",node-name=3Db= acking-file \ + -blockdev driver=3D$IMGFMT,file=3Dbacking-file,node-name=3Dbackin= g-fmt \ + -blockdev driver=3Dfile,filename=3D"$TEST_IMG",node-name=3Dfile \ + -blockdev driver=3D$IMGFMT,file=3Dfile,backing=3Dbacking-fmt,node= -name=3Dfmt + +# A snapshot should be present on the overlay, but not the backing file +echo Internal snapshots on overlay: +$QEMU_IMG snapshot -l "$TEST_IMG" | _filter_date | _filter_vmstate_size + +echo Internal snapshots on backing file: +$QEMU_IMG snapshot -l "$TEST_IMG.base" | _filter_date | _filter_vmstate_si= ze + +echo +echo "=3D=3D=3D -blockdev with NBD server on the backing file =3D=3D=3D" +echo + +IMGOPTS=3D"backing_file=3D$TEST_IMG.base" _make_test_img $size +cat <