From patchwork Tue Apr 21 07:35:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Sementsov-Ogievskiy X-Patchwork-Id: 284164 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 19C44C2BA19 for ; Tue, 21 Apr 2020 07:37:53 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C6E802073A for ; Tue, 21 Apr 2020 07:37:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="U6X3EzDB" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C6E802073A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:52558 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQnTc-0007rH-0E for qemu-devel@archiver.kernel.org; Tue, 21 Apr 2020 03:37:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39790) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQnST-0006A3-Lq for qemu-devel@nongnu.org; Tue, 21 Apr 2020 03:36:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQnSS-00073Z-8b for qemu-devel@nongnu.org; Tue, 21 Apr 2020 03:36:41 -0400 Received: from mail-db8eur05on2107.outbound.protection.outlook.com ([40.107.20.107]:47520 helo=EUR05-DB8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jQnSJ-0006Xr-TS; Tue, 21 Apr 2020 03:36:31 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Wd+mTf9/xulteuY2vx8P/Da/I/A9eD/JJ/FtyXDO949rFz8j69XU5PU0uz30GcXHUFwPKNHHLrKUhoeomWlw3tZSZdluzTmJkrJ4rGe/sqy0viMXt1SI1lyFOUxcSJq0Htemh9vEU7DlK5m7rozXsITjdfteBa46LmOuodsVOMN7a0npGFNbo60SWoo98BZ8brBjR8yImAdzoE/s1UkzpfG41Lch51OFSNMI21E3pL9HjfpxXLt0Q5repMiaT60jHpiy1yDF5BnNchoscFVi5OzPCxdDmKQGLdYCgFSufJ2Oh/Hquwuc60F56Qho5Csu1cLA0HNZ1PWO2hXTwmcpgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yFSqr+V9MrdMh1Vq5MG6wYSjq8v3HnNE48NRAN/UPv8=; b=BZbDdBnNdz9FL4kfS/3/NeaCoGq7OvRSBoilZbOuKc4NhbH2jwzXA1vGz2yTSSNwAih6PYZF/ls0xYujfaFuUS3ItwUXhX0JQoHbah4QgDZQ1UtxEBW2ZMw7zIJ76YhRJY5HJSbtx4Qwv4Bgu/pcb7ckqOa3tuVh9R1l8oMoHU6aS22e+fmpFelw6GyLdhrrONObWHyLKis3V4aP4q8hGNrhmVqEX2tV9qGRG+z4QYpfiiFCC5Eys224hRYXaPVY1qCGEdmWeU59mqnArHTFaR0BGXiTy4znSBXXgNO1Ko47WgHLfJBo50+1msKx4xU3q/vsac/nLFC2WDuPF5oVUg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yFSqr+V9MrdMh1Vq5MG6wYSjq8v3HnNE48NRAN/UPv8=; b=U6X3EzDBh+7ko/IyTZnPIQJcfC6H5OLHD5NFI16GkdS8nmzdT/ukyNGou3/lQIe3BPD9Bn0QLiNIqw9biR2aGQYd72CVnSj4W4C/cMreIkEipOiDibaZvWIKW2NI/YHjGF44G61r4StHNNkijkQ/RV7QSimr/hX3750sqOFecoE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=vsementsov@virtuozzo.com; Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM7PR08MB5397.eurprd08.prod.outlook.com (2603:10a6:20b:dd::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.27; Tue, 21 Apr 2020 07:36:30 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::acfa:5:88c8:b7b9]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::acfa:5:88c8:b7b9%3]) with mapi id 15.20.2921.027; Tue, 21 Apr 2020 07:36:30 +0000 From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Subject: [PATCH v3 02/10] iotests: fix some whitespaces in test output files Date: Tue, 21 Apr 2020 10:35:53 +0300 Message-Id: <20200421073601.28710-3-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20200421073601.28710-1-vsementsov@virtuozzo.com> References: <20200421073601.28710-1-vsementsov@virtuozzo.com> X-ClientProxiedBy: AM3PR07CA0137.eurprd07.prod.outlook.com (2603:10a6:207:8::23) To AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (185.215.60.142) by AM3PR07CA0137.eurprd07.prod.outlook.com (2603:10a6:207:8::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.9 via Frontend Transport; Tue, 21 Apr 2020 07:36:28 +0000 X-Mailer: git-send-email 2.21.0 X-Originating-IP: [185.215.60.142] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ff174b21-6ab5-410b-4e05-08d7e5c6b52f X-MS-TrafficTypeDiagnostic: AM7PR08MB5397: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:913; X-Forefront-PRVS: 038002787A X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM7PR08MB5494.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10019020)(4636009)(346002)(396003)(376002)(39840400004)(136003)(366004)(36756003)(1076003)(6916009)(5660300002)(6666004)(6512007)(186003)(4326008)(316002)(2616005)(956004)(16526019)(69590400007)(66556008)(66476007)(66946007)(26005)(2906002)(8936002)(8676002)(81156014)(6506007)(6486002)(478600001)(86362001)(52116002); DIR:OUT; SFP:1102; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4fjIohvOHJ7edcd43+0F8uFsgskcFp9iFYaXbQcdXxfkauX9SAhxPO1OcSeCFLV9dsia1jfKAk41FrTQ/UPJXDNyPfM+ZALQCciX/IsNxl5xwKsBNh8U1fP23ChylHRGvANzcKR9b3pQNub2H491T3QNIq31uIVEBWisuPbQUCoNs0cR/NCVw5onPSv13BuUvrnfCjC5VDBl0esghbEi4wtv2p/oWL1CNs2YvKFkbFdswOF3G2gKBFN3kxjvGesHH6Dmq1WHQdIieUIKWLxziH6EazhpQwMS+/9iVbOnucrhDmRS33Xs6rfJdt4iK0LfeCoDHeYRJO/lsgqJq4WnhYiDDRn1y7DfHnSV7eX1p095CDxalb0n7d8BbFT+PpJWtIV9CvN6Wx8cmGvOOYwwlclrISzawn5DAfv4PfYXJSGxKiWtv8mLzip5vHMUs3bkICoB7l8Ip+MmtfSJUrazmxCe34BuCPjgz0P56bJcMZaza51j6aL2SzJMmOMDnWZP X-MS-Exchange-AntiSpam-MessageData: zh1gDGqZhea2rtKbrp3CfsCz87GE/N/13s6u1gliNzTXoGml12zySPO5WCLNdq1OobTjyjAKZl3tKyYac3Q2hfgfnu2+vJrkZ9WXL7HkvGsQzpZhRjugQhvneBYq18DUi4SOxYoqHOJGbWl7B3N8Xg== X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: ff174b21-6ab5-410b-4e05-08d7e5c6b52f X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2020 07:36:30.4645 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2xxnYh96o2u/XKMpwH2Q9k04vG2znzxHLFS4ikJkZLTGLSvPKbIY4hV72dtOEIbeIkjjqoHkgKjjfO49XLyl6gBQYt7hZES7xybMB8N2ABI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5397 Received-SPF: pass client-ip=40.107.20.107; envelope-from=vsementsov@virtuozzo.com; helo=EUR05-DB8-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/21 03:36:27 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] X-Received-From: 40.107.20.107 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: kwolf@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com, den@openvz.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" We are going to be stricter about comparing test result with .out files. So, fix some whitespaces now. Signed-off-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/175.out | 2 +- tests/qemu-iotests/267.out | 48 +++++++++++++++++++------------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/tests/qemu-iotests/175.out b/tests/qemu-iotests/175.out index 39c2ee0f62..40a5bd1ce6 100644 --- a/tests/qemu-iotests/175.out +++ b/tests/qemu-iotests/175.out @@ -23,4 +23,4 @@ size=4096, min allocation == resize empty image with block_resize == Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=0 size=1048576, min allocation - *** done +*** done diff --git a/tests/qemu-iotests/267.out b/tests/qemu-iotests/267.out index 8dddb4baa4..26ef5f64b9 100644 --- a/tests/qemu-iotests/267.out +++ b/tests/qemu-iotests/267.out @@ -33,8 +33,8 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) savevm snap0 (qemu) info snapshots List of snapshots present on all disks: -ID TAG VM SIZE DATE VM CLOCK --- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 +ID TAG VM SIZE DATE VM CLOCK +-- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 (qemu) loadvm snap0 (qemu) quit @@ -44,8 +44,8 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) savevm snap0 (qemu) info snapshots List of snapshots present on all disks: -ID TAG VM SIZE DATE VM CLOCK --- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 +ID TAG VM SIZE DATE VM CLOCK +-- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 (qemu) loadvm snap0 (qemu) quit @@ -69,8 +69,8 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) savevm snap0 (qemu) info snapshots List of snapshots present on all disks: -ID TAG VM SIZE DATE VM CLOCK --- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 +ID TAG VM SIZE DATE VM CLOCK +-- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 (qemu) loadvm snap0 (qemu) quit @@ -94,8 +94,8 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) savevm snap0 (qemu) info snapshots List of snapshots present on all disks: -ID TAG VM SIZE DATE VM CLOCK --- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 +ID TAG VM SIZE DATE VM CLOCK +-- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 (qemu) loadvm snap0 (qemu) quit @@ -105,8 +105,8 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) savevm snap0 (qemu) info snapshots List of snapshots present on all disks: -ID TAG VM SIZE DATE VM CLOCK --- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 +ID TAG VM SIZE DATE VM CLOCK +-- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 (qemu) loadvm snap0 (qemu) quit @@ -119,8 +119,8 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) savevm snap0 (qemu) info snapshots List of snapshots present on all disks: -ID TAG VM SIZE DATE VM CLOCK --- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 +ID TAG VM SIZE DATE VM CLOCK +-- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 (qemu) loadvm snap0 (qemu) quit @@ -134,8 +134,8 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) savevm snap0 (qemu) info snapshots List of snapshots present on all disks: -ID TAG VM SIZE DATE VM CLOCK --- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 +ID TAG VM SIZE DATE VM CLOCK +-- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 (qemu) loadvm snap0 (qemu) quit @@ -145,15 +145,15 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) savevm snap0 (qemu) info snapshots List of snapshots present on all disks: -ID TAG VM SIZE DATE VM CLOCK --- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 +ID TAG VM SIZE DATE VM CLOCK +-- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 (qemu) loadvm snap0 (qemu) quit Internal snapshots on overlay: Snapshot list: -ID TAG VM SIZE DATE VM CLOCK -1 snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 +ID TAG VM SIZE DATE VM CLOCK +1 snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 Internal snapshots on backing file: === -blockdev with NBD server on the backing file === @@ -166,17 +166,17 @@ QEMU X.Y.Z monitor - type 'help' for more information (qemu) savevm snap0 (qemu) info snapshots List of snapshots present on all disks: -ID TAG VM SIZE DATE VM CLOCK --- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 +ID TAG VM SIZE DATE VM CLOCK +-- snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 (qemu) loadvm snap0 (qemu) quit Internal snapshots on overlay: Snapshot list: -ID TAG VM SIZE DATE VM CLOCK -1 snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 +ID TAG VM SIZE DATE VM CLOCK +1 snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 Internal snapshots on backing file: Snapshot list: -ID TAG VM SIZE DATE VM CLOCK -1 snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 +ID TAG VM SIZE DATE VM CLOCK +1 snap0 SIZE yyyy-mm-dd hh:mm:ss 00:00:00.000 *** done From patchwork Tue Apr 21 07:35:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Sementsov-Ogievskiy X-Patchwork-Id: 284162 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 34441C2BA19 for ; Tue, 21 Apr 2020 07:40:39 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F15492073A for ; Tue, 21 Apr 2020 07:40:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="ssFX0rSr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F15492073A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:52592 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQnWI-0003XC-1t for qemu-devel@archiver.kernel.org; Tue, 21 Apr 2020 03:40:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39854) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQnSa-0006Le-Px for qemu-devel@nongnu.org; Tue, 21 Apr 2020 03:36:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQnSa-0007Rk-35 for qemu-devel@nongnu.org; Tue, 21 Apr 2020 03:36:48 -0400 Received: from mail-db8eur05on2093.outbound.protection.outlook.com ([40.107.20.93]:57857 helo=EUR05-DB8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jQnSR-0006mI-IU; Tue, 21 Apr 2020 03:36:39 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fAo1AWj2bosC8BE00iMGXyXwaXCxRpwEp2dcuUtSLX1jgvxnb4xgbbYD3Lm/OExcP4KfYZZEd6Cz1lpavUkhQ9iV5ngvrUCH7QsqNgG4DOMKBuIFzVuZiexmFw/Xb1c/OXA+EKCD7eSCgwuSJ+zUINbvJZZhURJv7Q/5C+kaFJE1Ekl8nAPKUBgsl9vgwjNz5I27hyRgWkpDSFTvYWdmAkoldm0PzvQvyE/frKOBI6NyOwjGIrAPK3BKf5dJTujCRif/WYTkypN7TAbX3HiHztGrJF3piXALIdblvvMPwoij1JQifP2IOq7zzXZXxVhf0nbFthwbdx+7aXJtYpY1Fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lhqoLgLntbFdPl2tDNcEP6HSUAVCetnUY636mQj5qD4=; b=CJAUhv+PVpRrafekzXomc4JlOJ2hLh3OvdbZ+vvw2SMntvDYPua2WYjp/RFmPj4EIcKP3zbZDUECnT54/ZKVjutfjxSq/FL9XebAf3EjtLkiuiGe/pcr8esW+gByMvfI8rCtr58Sw7n/2Z5O3jW/raJM2e5MR7HyBuhgZ4aDsk7Fyl9PdSQuTyyIiA3RfmCVPAIM07FOLqAjnTFdcvISy6Zijqeo21QqpEqiovBkZ9BGM9Jl4QDajGXYZjQDhgtbiaUN5qBsCFF1afBo7zXHGmA7OQvGcb7YTZeE6fVYXu5flt46qRnfPzBAZqxMpkIcNYPF7FLmx0VWkSMEg+uYmA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lhqoLgLntbFdPl2tDNcEP6HSUAVCetnUY636mQj5qD4=; b=ssFX0rSrlG9PKz7fEQit2By7nXkuMBiwDYKdWO/XWpYsdimmPlxg8X33DV+OgWab1/cC31fr0Q/x6HHg7DLjjVfUl+erWTzXifNIoQm2tGZMpFpyyOvmC/86WD3sSe0WejgXh4Yx1nHaJ4AJ34f/k1HfB81FOZXoe7Kf8Yqv6dQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=vsementsov@virtuozzo.com; Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM7PR08MB5397.eurprd08.prod.outlook.com (2603:10a6:20b:dd::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.27; Tue, 21 Apr 2020 07:36:36 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::acfa:5:88c8:b7b9]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::acfa:5:88c8:b7b9%3]) with mapi id 15.20.2921.027; Tue, 21 Apr 2020 07:36:36 +0000 From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Subject: [PATCH v3 04/10] iotests/check: move QEMU_VXHS_PROG to common.rc Date: Tue, 21 Apr 2020 10:35:55 +0300 Message-Id: <20200421073601.28710-5-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20200421073601.28710-1-vsementsov@virtuozzo.com> References: <20200421073601.28710-1-vsementsov@virtuozzo.com> X-ClientProxiedBy: AM3PR07CA0137.eurprd07.prod.outlook.com (2603:10a6:207:8::23) To AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (185.215.60.142) by AM3PR07CA0137.eurprd07.prod.outlook.com (2603:10a6:207:8::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.9 via Frontend Transport; Tue, 21 Apr 2020 07:36:35 +0000 X-Mailer: git-send-email 2.21.0 X-Originating-IP: [185.215.60.142] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a1821e25-30fa-4c8c-b37b-08d7e5c6b877 X-MS-TrafficTypeDiagnostic: AM7PR08MB5397: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-Forefront-PRVS: 038002787A X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM7PR08MB5494.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10019020)(4636009)(346002)(396003)(376002)(39840400004)(136003)(366004)(36756003)(1076003)(6916009)(5660300002)(6666004)(6512007)(186003)(4326008)(316002)(2616005)(956004)(16526019)(69590400007)(66556008)(66476007)(66946007)(26005)(2906002)(8936002)(8676002)(81156014)(6506007)(6486002)(478600001)(86362001)(52116002); DIR:OUT; SFP:1102; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DywKfYRd3YnGdxtW07Z7q9Y65edsWiwypAceXpcpl6PQU3wVGVi7obQX/v2JMykycH8NIzES/2vlWe+MJofi+DPXJZi0skYz1hdYHQou9x8jgbl0WHbu5JKfB/l4k0u8E//c7LtxLYNfVQgb6YIa7po2+LUPxdghSLmC2iPCql0XyOKlJGz4pJNtmSDWp02UoTa/+cRSXE2lZp8jJZoUiwkkRdaTRSlFmKnWoshXCdASsRgdRNXJDz1AxuAX+DwVvngN3wJYpERunhzMwTT6Al51XWxJMdfhzDl1sg0F68KXKQOtsqg1mAiaAmiwUfM1XEKtS0x2I7rZgzCZoQZmZYHDSe9Rld5NdmdAEu9NBMP1WS5NgAnSG1e7C+9yZv8kT1pMc045+xflmiLScdPUtM5DfELtnAliZC0D4f1KMO3s1kfZl3DPXaqM5rLnbitTxZdwEEYeR+VR9YRHU/sL8dfpt4jsahYgGkHA6HjKc9byQZ5ZoELvveL4oz2+EBz4 X-MS-Exchange-AntiSpam-MessageData: /niYW65sC/4DK0yJ1PVZQVqG845LrWk9dJFff2H0Rn4Vlvj8eMl3YL5iWFLFKxkJVgk7dj7QY3fRMveHhT3HRQSQ/FAyjW3rMG20GFMYBr5jSO4gsxoMg8wbrvWI/gwBff0Jb2IVETNEidpsV4IwLw== X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: a1821e25-30fa-4c8c-b37b-08d7e5c6b877 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2020 07:36:35.9393 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jKsaLYsNats96tuklv+KeJutbNTIib06jwsuWzFZGxVuJCd+wQPADcc1OyjeH+pjUwcCi2+U6jq2MWCKrAr7A16kQq2f0nROq2xYhNOxOBg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5397 Received-SPF: pass client-ip=40.107.20.93; envelope-from=vsementsov@virtuozzo.com; helo=EUR05-DB8-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/21 03:36:35 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] X-Received-From: 40.107.20.93 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: kwolf@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com, den@openvz.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" QEMU_VXHS_PROG is used only in common.rc. So, move it to common.rc, simplifying a bit further conversion of check into python Signed-off-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/check | 15 --------------- tests/qemu-iotests/common.rc | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/tests/qemu-iotests/check b/tests/qemu-iotests/check index f7a2d3d6c3..03016e1e91 100755 --- a/tests/qemu-iotests/check +++ b/tests/qemu-iotests/check @@ -103,17 +103,6 @@ SOCKET_SCM_HELPER -- $SOCKET_SCM_HELPER EOF } -# $1 = prog to look for -set_prog_path() -{ - p=$(command -v $1 2> /dev/null) - if [ -n "$p" -a -x "$p" ]; then - type -p "$p" - else - return 1 - fi -} - if [ -z "$TEST_DIR" ]; then TEST_DIR=$PWD/scratch fi @@ -643,10 +632,6 @@ if [ -z $QEMU_NBD_PROG ]; then fi export QEMU_NBD_PROG="$(type -p "$QEMU_NBD_PROG")" -if [ -z "$QEMU_VXHS_PROG" ]; then - export QEMU_VXHS_PROG="$(set_prog_path qnio_server)" -fi - if [ -x "$build_iotests/socket_scm_helper" ] then export SOCKET_SCM_HELPER="$build_iotests/socket_scm_helper" diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc index bf3b9fdea0..aaab17c718 100644 --- a/tests/qemu-iotests/common.rc +++ b/tests/qemu-iotests/common.rc @@ -109,6 +109,16 @@ peek_file_raw() dd if="$1" bs=1 skip="$2" count="$3" status=none } +# $1 = prog to look for +set_prog_path() +{ + p=$(command -v $1 2> /dev/null) + if [ -n "$p" -a -x "$p" ]; then + type -p "$p" + else + return 1 + fi +} if ! . ./common.config then @@ -116,6 +126,10 @@ if ! . ./common.config exit 1 fi +if [ -z "$QEMU_VXHS_PROG" ]; then + QEMU_VXHS_PROG="$(set_prog_path qnio_server)" +fi + # Set the variables to the empty string to turn Valgrind off # for specific processes, e.g. # $ VALGRIND_QEMU_IO= ./check -qcow2 -valgrind 015 From patchwork Tue Apr 21 07:35:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Sementsov-Ogievskiy X-Patchwork-Id: 284160 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D4BC3C54FC9 for ; Tue, 21 Apr 2020 07:44:00 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7F776206E9 for ; Tue, 21 Apr 2020 07:44:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="CDEEu8DK" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7F776206E9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:52664 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQnZW-000057-MA for qemu-devel@archiver.kernel.org; Tue, 21 Apr 2020 03:43:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40034) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQnT1-0007H1-CO for qemu-devel@nongnu.org; Tue, 21 Apr 2020 03:37:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQnSx-00082B-9s for qemu-devel@nongnu.org; Tue, 21 Apr 2020 03:37:15 -0400 Received: from mail-db8eur05on2136.outbound.protection.outlook.com ([40.107.20.136]:58816 helo=EUR05-DB8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jQnSY-00073m-73; Tue, 21 Apr 2020 03:37:02 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=buE0zRzhr9TrnZDUqMbpv5XCXPtUfy6eOTLmOVrw8mFBsb+Aue84+qYok8YvHRWjYh/1CoYLTyr1mfWOoq8pREv++alD5MM7Q7Pj9iuZR178967yYmnoSGFTaATlatG385pzxDwn6Rjbqj3o6v5e53cB4xh4lQLO8kGAUXI2O2wqtVC4TuoWeGPMHiPQUAW5jeeSIruO77KX6M5hOqIPguIGjZxLnr6cjUzqo6m+B0nAT+1FVPBjlg47MISitCwCIjtTBbMitX+VSoJsQogLVgrYh2fyrPhBEauGYf60PZUoLOn1EtgdZ0tufdreFyhyPJ2JJalmo8mQl26uWBzmUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LACGtRh5PUgvDLuQkt8TBi+q2Pjei4sWIHI2R4IR6Lo=; b=P2/yD8vVpJleTFgESbazteareMSUCbNC3wWvfzZdyHXLMEjlO/bCvuTB75bDweEeEx1Yz3qDeyW3qybq6gZhbKei/nhvVmNL86nRHYlX4qBSwn8yChYxhIZVSj4AokJeJ9GjEBrypUv/rdzOdqc2D9kOJfjLw4Obkl5j4aO4Ql/IWrZA8w3V3cJogo1LDMpSTvDlU7+87AJ26GfvlH83/79ZLUrWP2cWOgLP9uxXnYerXLs+QZvtnRZf6coZkhoH9o5psDVD43ie1FISSkqG+sjuCPBFTDfhfUyqyc0b0vJ9TcX9h8O4AEhRxnxubdrXCT2tyO/AP/psmiytvlQrFA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LACGtRh5PUgvDLuQkt8TBi+q2Pjei4sWIHI2R4IR6Lo=; b=CDEEu8DKU3PhCTGDuQWc1TKdzLdHskzGWaaXwnECbylRu/yhAB0YvTD4Tom+pr3ndFmRt/KoupOvCr745DAQlWwaZ7xYcaFOlKxFOrdkuQukbio7GHsF97aXsDK/wdnZPtaQ1wzIgfxl4dM8yi+8F+TeAp6kjsgKskevC6bDmbU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=vsementsov@virtuozzo.com; Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM7PR08MB5397.eurprd08.prod.outlook.com (2603:10a6:20b:dd::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.27; Tue, 21 Apr 2020 07:36:38 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::acfa:5:88c8:b7b9]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::acfa:5:88c8:b7b9%3]) with mapi id 15.20.2921.027; Tue, 21 Apr 2020 07:36:38 +0000 From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Subject: [PATCH v3 05/10] iotests: define group in each iotest Date: Tue, 21 Apr 2020 10:35:56 +0300 Message-Id: <20200421073601.28710-6-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20200421073601.28710-1-vsementsov@virtuozzo.com> References: <20200421073601.28710-1-vsementsov@virtuozzo.com> X-ClientProxiedBy: AM3PR07CA0137.eurprd07.prod.outlook.com (2603:10a6:207:8::23) To AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (185.215.60.142) by AM3PR07CA0137.eurprd07.prod.outlook.com (2603:10a6:207:8::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.9 via Frontend Transport; Tue, 21 Apr 2020 07:36:36 +0000 X-Mailer: git-send-email 2.21.0 X-Originating-IP: [185.215.60.142] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8a5158b2-04fa-42f5-fdeb-08d7e5c6b958 X-MS-TrafficTypeDiagnostic: AM7PR08MB5397: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2803; X-Forefront-PRVS: 038002787A X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM7PR08MB5494.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10019020)(4636009)(39850400004)(346002)(396003)(376002)(136003)(366004)(36756003)(1076003)(6916009)(5660300002)(30864003)(6666004)(6512007)(186003)(4326008)(316002)(2616005)(956004)(16526019)(69590400007)(66556008)(66476007)(66946007)(26005)(2906002)(8936002)(8676002)(81156014)(6506007)(6486002)(478600001)(86362001)(52116002)(559001)(579004); DIR:OUT; SFP:1102; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QuBGcx/WubQcnyyorFT3wCDLTc0dqg3tty+4bQjlumGIfdlJDsB3D8fE9kANi5tOocCYN8o8XIeg9hICzPS+BsBhlyAHUqBUkLOlDuXUTnlMYSQzLeDlJnJyOfnxa78opfLjnn5FeTS4eDwybNTqFmZ2Vt/AYTjdSyZze+EBXT7VhmjJF7rSHwCsvVwXUXSqYKyXreL+r5vMPArOMQ6NSTVcmO7d2W1089KBOAlbse0PtN12kKD15K+hl377PmMYWKdWZg8wRYqgeqgiFiPTax8vkTVk2JV+nDsNy82Eh79UZBcx3eyf2eT9fclZjVy4R9vYYak2FvF+W/KqSLwhFOgCfsk10Q6If8AQvc92ZNN970JOmPMKSJSB/Wc4hrdhBTqBQ0Jnb4C/F708JI38yX8zpV40QXR8pihICTLJa+8ghWscWvzw7icAN39/o53cCvaSvT2Y51s6sRcZ6OYurDaIUBLCe+37MZAq1V5yTEvsBpN/1ru++V4dfKhIFT+t X-MS-Exchange-AntiSpam-MessageData: rPz6hWkAiWNX4BfflYKEYT9e6Na914U+Nv0FocpqdPI7Mi1sXWnU0TyhAkSR4V4N/yoqWIPMGydknUN5FGPtzS1J8NB3p6nBadGO8WGE05X5FwSLSGy2e+HoAoQ2ee2R2mPQ2pN69hKNlEAF1rR77w== X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8a5158b2-04fa-42f5-fdeb-08d7e5c6b958 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2020 07:36:38.6513 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cGfGZuZq+Trk8Av8Tom1GAdSdehorhgTQ/Y7C31iz/Q7grEZRfvY6I2Ne0TPHYZFW+vXndsUag8fgd4FJClTHSw6suydC13kORPDUAN58rI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5397 Received-SPF: pass client-ip=40.107.20.136; envelope-from=vsementsov@virtuozzo.com; helo=EUR05-DB8-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/21 03:36:40 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] X-Received-From: 40.107.20.136 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: kwolf@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com, den@openvz.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" We are going to drop group file. Define group in tests as a preparatory step. The patch is generated by cd tests/qemu-iotests grep '^[0-9]\{3\} ' group | while read line; do file=$(awk '{print $1}' <<< "$line"); groups=$(sed -e 's/^... //' <<< "$line"); awk "NR==2{print \"# group: $groups\"}1" $file > tmp; cat tmp > $file; done Signed-off-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/001 | 1 + tests/qemu-iotests/002 | 1 + tests/qemu-iotests/003 | 1 + tests/qemu-iotests/004 | 1 + tests/qemu-iotests/005 | 1 + tests/qemu-iotests/007 | 1 + tests/qemu-iotests/008 | 1 + tests/qemu-iotests/009 | 1 + tests/qemu-iotests/010 | 1 + tests/qemu-iotests/011 | 1 + tests/qemu-iotests/012 | 1 + tests/qemu-iotests/013 | 1 + tests/qemu-iotests/014 | 1 + tests/qemu-iotests/015 | 1 + tests/qemu-iotests/017 | 1 + tests/qemu-iotests/018 | 1 + tests/qemu-iotests/019 | 1 + tests/qemu-iotests/020 | 1 + tests/qemu-iotests/021 | 1 + tests/qemu-iotests/022 | 1 + tests/qemu-iotests/023 | 1 + tests/qemu-iotests/024 | 1 + tests/qemu-iotests/025 | 1 + tests/qemu-iotests/026 | 1 + tests/qemu-iotests/027 | 1 + tests/qemu-iotests/028 | 1 + tests/qemu-iotests/029 | 1 + tests/qemu-iotests/030 | 1 + tests/qemu-iotests/031 | 1 + tests/qemu-iotests/032 | 1 + tests/qemu-iotests/033 | 1 + tests/qemu-iotests/034 | 1 + tests/qemu-iotests/035 | 1 + tests/qemu-iotests/036 | 1 + tests/qemu-iotests/037 | 1 + tests/qemu-iotests/038 | 1 + tests/qemu-iotests/039 | 1 + tests/qemu-iotests/040 | 1 + tests/qemu-iotests/041 | 1 + tests/qemu-iotests/042 | 1 + tests/qemu-iotests/043 | 1 + tests/qemu-iotests/044 | 1 + tests/qemu-iotests/045 | 1 + tests/qemu-iotests/046 | 1 + tests/qemu-iotests/047 | 1 + tests/qemu-iotests/048 | 1 + tests/qemu-iotests/049 | 1 + tests/qemu-iotests/050 | 1 + tests/qemu-iotests/051 | 1 + tests/qemu-iotests/052 | 1 + tests/qemu-iotests/053 | 1 + tests/qemu-iotests/054 | 1 + tests/qemu-iotests/055 | 1 + tests/qemu-iotests/056 | 1 + tests/qemu-iotests/057 | 1 + tests/qemu-iotests/058 | 1 + tests/qemu-iotests/059 | 1 + tests/qemu-iotests/060 | 1 + tests/qemu-iotests/061 | 1 + tests/qemu-iotests/062 | 1 + tests/qemu-iotests/063 | 1 + tests/qemu-iotests/064 | 1 + tests/qemu-iotests/065 | 1 + tests/qemu-iotests/066 | 1 + tests/qemu-iotests/067 | 1 + tests/qemu-iotests/068 | 1 + tests/qemu-iotests/069 | 1 + tests/qemu-iotests/070 | 1 + tests/qemu-iotests/071 | 1 + tests/qemu-iotests/072 | 1 + tests/qemu-iotests/073 | 1 + tests/qemu-iotests/074 | 1 + tests/qemu-iotests/075 | 1 + tests/qemu-iotests/076 | 1 + tests/qemu-iotests/077 | 1 + tests/qemu-iotests/078 | 1 + tests/qemu-iotests/079 | 1 + tests/qemu-iotests/080 | 1 + tests/qemu-iotests/081 | 1 + tests/qemu-iotests/082 | 1 + tests/qemu-iotests/083 | 1 + tests/qemu-iotests/084 | 1 + tests/qemu-iotests/085 | 1 + tests/qemu-iotests/086 | 1 + tests/qemu-iotests/087 | 1 + tests/qemu-iotests/088 | 1 + tests/qemu-iotests/089 | 1 + tests/qemu-iotests/090 | 1 + tests/qemu-iotests/091 | 1 + tests/qemu-iotests/092 | 1 + tests/qemu-iotests/093 | 1 + tests/qemu-iotests/094 | 1 + tests/qemu-iotests/095 | 1 + tests/qemu-iotests/096 | 1 + tests/qemu-iotests/097 | 1 + tests/qemu-iotests/098 | 1 + tests/qemu-iotests/099 | 1 + tests/qemu-iotests/101 | 1 + tests/qemu-iotests/102 | 1 + tests/qemu-iotests/103 | 1 + tests/qemu-iotests/104 | 1 + tests/qemu-iotests/105 | 1 + tests/qemu-iotests/106 | 1 + tests/qemu-iotests/107 | 1 + tests/qemu-iotests/108 | 1 + tests/qemu-iotests/109 | 1 + tests/qemu-iotests/110 | 1 + tests/qemu-iotests/111 | 1 + tests/qemu-iotests/112 | 1 + tests/qemu-iotests/113 | 1 + tests/qemu-iotests/114 | 1 + tests/qemu-iotests/115 | 1 + tests/qemu-iotests/116 | 1 + tests/qemu-iotests/117 | 1 + tests/qemu-iotests/118 | 1 + tests/qemu-iotests/119 | 1 + tests/qemu-iotests/120 | 1 + tests/qemu-iotests/121 | 1 + tests/qemu-iotests/122 | 1 + tests/qemu-iotests/123 | 1 + tests/qemu-iotests/124 | 1 + tests/qemu-iotests/125 | 1 + tests/qemu-iotests/126 | 1 + tests/qemu-iotests/127 | 1 + tests/qemu-iotests/128 | 1 + tests/qemu-iotests/129 | 1 + tests/qemu-iotests/130 | 1 + tests/qemu-iotests/131 | 1 + tests/qemu-iotests/132 | 1 + tests/qemu-iotests/133 | 1 + tests/qemu-iotests/134 | 1 + tests/qemu-iotests/135 | 1 + tests/qemu-iotests/136 | 1 + tests/qemu-iotests/137 | 1 + tests/qemu-iotests/138 | 1 + tests/qemu-iotests/139 | 1 + tests/qemu-iotests/140 | 1 + tests/qemu-iotests/141 | 1 + tests/qemu-iotests/143 | 1 + tests/qemu-iotests/144 | 1 + tests/qemu-iotests/145 | 1 + tests/qemu-iotests/146 | 1 + tests/qemu-iotests/147 | 1 + tests/qemu-iotests/148 | 1 + tests/qemu-iotests/149 | 1 + tests/qemu-iotests/150 | 1 + tests/qemu-iotests/151 | 1 + tests/qemu-iotests/152 | 1 + tests/qemu-iotests/153 | 1 + tests/qemu-iotests/154 | 1 + tests/qemu-iotests/155 | 1 + tests/qemu-iotests/156 | 1 + tests/qemu-iotests/157 | 1 + tests/qemu-iotests/158 | 1 + tests/qemu-iotests/159 | 1 + tests/qemu-iotests/160 | 1 + tests/qemu-iotests/161 | 1 + tests/qemu-iotests/162 | 1 + tests/qemu-iotests/163 | 1 + tests/qemu-iotests/165 | 1 + tests/qemu-iotests/169 | 1 + tests/qemu-iotests/170 | 1 + tests/qemu-iotests/171 | 1 + tests/qemu-iotests/172 | 1 + tests/qemu-iotests/173 | 1 + tests/qemu-iotests/174 | 1 + tests/qemu-iotests/175 | 1 + tests/qemu-iotests/176 | 1 + tests/qemu-iotests/177 | 1 + tests/qemu-iotests/178 | 1 + tests/qemu-iotests/179 | 1 + tests/qemu-iotests/181 | 1 + tests/qemu-iotests/182 | 1 + tests/qemu-iotests/183 | 1 + tests/qemu-iotests/184 | 1 + tests/qemu-iotests/185 | 1 + tests/qemu-iotests/186 | 1 + tests/qemu-iotests/187 | 1 + tests/qemu-iotests/188 | 1 + tests/qemu-iotests/189 | 1 + tests/qemu-iotests/190 | 1 + tests/qemu-iotests/191 | 1 + tests/qemu-iotests/192 | 1 + tests/qemu-iotests/194 | 1 + tests/qemu-iotests/195 | 1 + tests/qemu-iotests/196 | 1 + tests/qemu-iotests/197 | 1 + tests/qemu-iotests/198 | 1 + tests/qemu-iotests/199 | 1 + tests/qemu-iotests/200 | 1 + tests/qemu-iotests/201 | 1 + tests/qemu-iotests/202 | 1 + tests/qemu-iotests/203 | 1 + tests/qemu-iotests/204 | 1 + tests/qemu-iotests/205 | 1 + tests/qemu-iotests/206 | 1 + tests/qemu-iotests/207 | 1 + tests/qemu-iotests/208 | 1 + tests/qemu-iotests/209 | 1 + tests/qemu-iotests/210 | 1 + tests/qemu-iotests/211 | 1 + tests/qemu-iotests/212 | 1 + tests/qemu-iotests/213 | 1 + tests/qemu-iotests/214 | 1 + tests/qemu-iotests/215 | 1 + tests/qemu-iotests/216 | 1 + tests/qemu-iotests/217 | 1 + tests/qemu-iotests/218 | 1 + tests/qemu-iotests/219 | 1 + tests/qemu-iotests/220 | 1 + tests/qemu-iotests/221 | 1 + tests/qemu-iotests/222 | 1 + tests/qemu-iotests/223 | 1 + tests/qemu-iotests/224 | 1 + tests/qemu-iotests/225 | 1 + tests/qemu-iotests/226 | 1 + tests/qemu-iotests/227 | 1 + tests/qemu-iotests/228 | 1 + tests/qemu-iotests/229 | 1 + tests/qemu-iotests/231 | 1 + tests/qemu-iotests/232 | 1 + tests/qemu-iotests/233 | 1 + tests/qemu-iotests/234 | 1 + tests/qemu-iotests/235 | 1 + tests/qemu-iotests/236 | 1 + tests/qemu-iotests/237 | 1 + tests/qemu-iotests/238 | 1 + tests/qemu-iotests/239 | 1 + tests/qemu-iotests/240 | 1 + tests/qemu-iotests/241 | 1 + tests/qemu-iotests/242 | 1 + tests/qemu-iotests/243 | 1 + tests/qemu-iotests/244 | 1 + tests/qemu-iotests/245 | 1 + tests/qemu-iotests/246 | 1 + tests/qemu-iotests/247 | 1 + tests/qemu-iotests/248 | 1 + tests/qemu-iotests/249 | 1 + tests/qemu-iotests/250 | 1 + tests/qemu-iotests/251 | 1 + tests/qemu-iotests/252 | 1 + tests/qemu-iotests/253 | 1 + tests/qemu-iotests/254 | 1 + tests/qemu-iotests/255 | 1 + tests/qemu-iotests/256 | 1 + tests/qemu-iotests/257 | 1 + tests/qemu-iotests/258 | 1 + tests/qemu-iotests/259 | 1 + tests/qemu-iotests/260 | 1 + tests/qemu-iotests/261 | 1 + tests/qemu-iotests/262 | 1 + tests/qemu-iotests/263 | 1 + tests/qemu-iotests/264 | 1 + tests/qemu-iotests/265 | 1 + tests/qemu-iotests/266 | 1 + tests/qemu-iotests/267 | 1 + tests/qemu-iotests/268 | 1 + tests/qemu-iotests/270 | 1 + tests/qemu-iotests/272 | 1 + tests/qemu-iotests/273 | 1 + tests/qemu-iotests/277 | 1 + tests/qemu-iotests/279 | 1 + tests/qemu-iotests/280 | 1 + tests/qemu-iotests/281 | 1 + tests/qemu-iotests/282 | 1 + tests/qemu-iotests/283 | 1 + tests/qemu-iotests/284 | 1 + tests/qemu-iotests/286 | 1 + tests/qemu-iotests/288 | 1 + tests/qemu-iotests/289 | 1 + tests/qemu-iotests/290 | 1 + 271 files changed, 271 insertions(+) diff --git a/tests/qemu-iotests/001 b/tests/qemu-iotests/001 index d87a535c33..67ff7e3291 100755 --- a/tests/qemu-iotests/001 +++ b/tests/qemu-iotests/001 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test simple read/write using plain bdrv_read/bdrv_write # diff --git a/tests/qemu-iotests/002 b/tests/qemu-iotests/002 index 1a0d411df5..5ce1647531 100755 --- a/tests/qemu-iotests/002 +++ b/tests/qemu-iotests/002 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test simple read/write using plain bdrv_pread/bdrv_pwrite # diff --git a/tests/qemu-iotests/003 b/tests/qemu-iotests/003 index 33eeade0de..03f902a83c 100755 --- a/tests/qemu-iotests/003 +++ b/tests/qemu-iotests/003 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto # # Test simple read/write using bdrv_aio_readv/bdrv_aio_writev # diff --git a/tests/qemu-iotests/004 b/tests/qemu-iotests/004 index d308dc4b49..e955579a67 100755 --- a/tests/qemu-iotests/004 +++ b/tests/qemu-iotests/004 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Make sure we can't read and write outside of the image size. # diff --git a/tests/qemu-iotests/005 b/tests/qemu-iotests/005 index b6d03ac37d..40e64a9a8f 100755 --- a/tests/qemu-iotests/005 +++ b/tests/qemu-iotests/005 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: img auto quick # # Make sure qemu-img can create 5TB images # diff --git a/tests/qemu-iotests/007 b/tests/qemu-iotests/007 index 160683adf8..936d3f14fb 100755 --- a/tests/qemu-iotests/007 +++ b/tests/qemu-iotests/007 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: snapshot auto # # Check for one possible case of qcow2 refcount corruption. # diff --git a/tests/qemu-iotests/008 b/tests/qemu-iotests/008 index 2b81b119bf..fa4990b513 100755 --- a/tests/qemu-iotests/008 +++ b/tests/qemu-iotests/008 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test simple asynchronous read/write operations. # diff --git a/tests/qemu-iotests/009 b/tests/qemu-iotests/009 index 4dc7d210f9..efa852bad3 100755 --- a/tests/qemu-iotests/009 +++ b/tests/qemu-iotests/009 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Nolan I qcow2 corruption - incorrectly reports free clusters # diff --git a/tests/qemu-iotests/010 b/tests/qemu-iotests/010 index df809b3088..4ae9027b47 100755 --- a/tests/qemu-iotests/010 +++ b/tests/qemu-iotests/010 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Nolan II qcow2 corruption - wrong used cluster # diff --git a/tests/qemu-iotests/011 b/tests/qemu-iotests/011 index 57b99ae4a9..5c99ac987f 100755 --- a/tests/qemu-iotests/011 +++ b/tests/qemu-iotests/011 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test for AIO allocation on the same cluster # diff --git a/tests/qemu-iotests/012 b/tests/qemu-iotests/012 index 12957285b3..3a24d2ca8d 100755 --- a/tests/qemu-iotests/012 +++ b/tests/qemu-iotests/012 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: auto quick # # Make sure we can open read-only images # diff --git a/tests/qemu-iotests/013 b/tests/qemu-iotests/013 index 5cb9032f16..d39d0cd88b 100755 --- a/tests/qemu-iotests/013 +++ b/tests/qemu-iotests/013 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto # # qcow2 pattern test, empty and compressed image - 4k cluster patterns # diff --git a/tests/qemu-iotests/014 b/tests/qemu-iotests/014 index e1221c0fff..2d23469332 100755 --- a/tests/qemu-iotests/014 +++ b/tests/qemu-iotests/014 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # qcow2 pattern test, complex patterns including compression and snapshots # Using patterns for 4k cluster size. diff --git a/tests/qemu-iotests/015 b/tests/qemu-iotests/015 index 4d8effd0ae..40c23235a6 100755 --- a/tests/qemu-iotests/015 +++ b/tests/qemu-iotests/015 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw snapshot # # Combined test to grow the refcount table and test snapshots. # diff --git a/tests/qemu-iotests/017 b/tests/qemu-iotests/017 index 0a4b854e65..3cab97ad94 100755 --- a/tests/qemu-iotests/017 +++ b/tests/qemu-iotests/017 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw backing auto quick # # Simple backing file reads # diff --git a/tests/qemu-iotests/018 b/tests/qemu-iotests/018 index c69ce09209..a946243450 100755 --- a/tests/qemu-iotests/018 +++ b/tests/qemu-iotests/018 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw backing auto quick # # Merge backing file into test image when converting the image # diff --git a/tests/qemu-iotests/019 b/tests/qemu-iotests/019 index 813a84acac..a1a2065f6a 100755 --- a/tests/qemu-iotests/019 +++ b/tests/qemu-iotests/019 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw backing auto quick # # When using a backing file for the output image in qemu-img convert, # the backing file clusters must not copied. The data must still be diff --git a/tests/qemu-iotests/020 b/tests/qemu-iotests/020 index 20f8f185d0..a4ae2e1017 100755 --- a/tests/qemu-iotests/020 +++ b/tests/qemu-iotests/020 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw backing auto quick # # Commit changes to backing file # diff --git a/tests/qemu-iotests/021 b/tests/qemu-iotests/021 index f888269fd4..0fc89df2fe 100755 --- a/tests/qemu-iotests/021 +++ b/tests/qemu-iotests/021 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: io auto quick # # Test handling of invalid patterns arguments to qemu-io # diff --git a/tests/qemu-iotests/022 b/tests/qemu-iotests/022 index 99eb08f57f..a116cfe255 100755 --- a/tests/qemu-iotests/022 +++ b/tests/qemu-iotests/022 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw snapshot auto # # Test bdrv_load/save_vmstate using the usual patterns # diff --git a/tests/qemu-iotests/023 b/tests/qemu-iotests/023 index 02ed047820..d19d13ff5d 100755 --- a/tests/qemu-iotests/023 +++ b/tests/qemu-iotests/023 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # qcow2 pattern test with various cluster sizes # diff --git a/tests/qemu-iotests/024 b/tests/qemu-iotests/024 index e2e766241e..de70aeac1c 100755 --- a/tests/qemu-iotests/024 +++ b/tests/qemu-iotests/024 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw backing auto quick # # Rebasing COW images # diff --git a/tests/qemu-iotests/025 b/tests/qemu-iotests/025 index e05d833452..0047969d17 100755 --- a/tests/qemu-iotests/025 +++ b/tests/qemu-iotests/025 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Resizing images # diff --git a/tests/qemu-iotests/026 b/tests/qemu-iotests/026 index b9713eb591..204af667b3 100755 --- a/tests/qemu-iotests/026 +++ b/tests/qemu-iotests/026 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw blkdbg # # qcow2 error path testing # diff --git a/tests/qemu-iotests/027 b/tests/qemu-iotests/027 index 494be0921f..b279c88f33 100755 --- a/tests/qemu-iotests/027 +++ b/tests/qemu-iotests/027 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test that sub-cluster allocating writes zero the rest of the cluster # diff --git a/tests/qemu-iotests/028 b/tests/qemu-iotests/028 index 797dae5350..665889297f 100755 --- a/tests/qemu-iotests/028 +++ b/tests/qemu-iotests/028 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw backing quick # # Test that backing files can be smaller than the image # diff --git a/tests/qemu-iotests/029 b/tests/qemu-iotests/029 index 2161a4b87a..3a20d2d1ff 100755 --- a/tests/qemu-iotests/029 +++ b/tests/qemu-iotests/029 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # qcow2 internal snapshots/VM state tests # diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030 index aa911d266a..a9066d4947 100755 --- a/tests/qemu-iotests/030 +++ b/tests/qemu-iotests/030 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw auto backing # # Tests for image streaming. # diff --git a/tests/qemu-iotests/031 b/tests/qemu-iotests/031 index 646ecd593f..af167e85be 100755 --- a/tests/qemu-iotests/031 +++ b/tests/qemu-iotests/031 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test that all qcow2 header extensions survive a header rewrite # diff --git a/tests/qemu-iotests/032 b/tests/qemu-iotests/032 index 8337a4d825..ebbe7cb0ba 100755 --- a/tests/qemu-iotests/032 +++ b/tests/qemu-iotests/032 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test that AIO requests are drained before an image is closed. This used # to segfault because the request coroutine kept running even after the diff --git a/tests/qemu-iotests/033 b/tests/qemu-iotests/033 index 8b40991d55..da9133c44b 100755 --- a/tests/qemu-iotests/033 +++ b/tests/qemu-iotests/033 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test aligned and misaligned write zeroes operations. # diff --git a/tests/qemu-iotests/034 b/tests/qemu-iotests/034 index da4cea1571..e5d5996aa0 100755 --- a/tests/qemu-iotests/034 +++ b/tests/qemu-iotests/034 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto backing quick # # Test bdrv_pwrite_zeroes with backing files (see also 154) # diff --git a/tests/qemu-iotests/035 b/tests/qemu-iotests/035 index d950a0dd1e..0c0c4fdd42 100755 --- a/tests/qemu-iotests/035 +++ b/tests/qemu-iotests/035 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Let a few AIO requests run in parallel and have them access different L2 # tables so that the cache has a chance to get used up. diff --git a/tests/qemu-iotests/036 b/tests/qemu-iotests/036 index cf522de7a1..a27d4125d2 100755 --- a/tests/qemu-iotests/036 +++ b/tests/qemu-iotests/036 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test qcow2 feature bits # diff --git a/tests/qemu-iotests/037 b/tests/qemu-iotests/037 index e6517acbd4..9bcc7695a6 100755 --- a/tests/qemu-iotests/037 +++ b/tests/qemu-iotests/037 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto backing quick # # Test COW from backing files # diff --git a/tests/qemu-iotests/038 b/tests/qemu-iotests/038 index 707e2d72e9..63dff13827 100755 --- a/tests/qemu-iotests/038 +++ b/tests/qemu-iotests/038 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto backing quick # # Test COW from backing files with AIO # diff --git a/tests/qemu-iotests/039 b/tests/qemu-iotests/039 index ddce48ab47..3cddb8a720 100755 --- a/tests/qemu-iotests/039 +++ b/tests/qemu-iotests/039 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test qcow2 lazy refcounts # diff --git a/tests/qemu-iotests/040 b/tests/qemu-iotests/040 index 32c82b4ec6..1a8bd3f613 100755 --- a/tests/qemu-iotests/040 +++ b/tests/qemu-iotests/040 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw auto # # Tests for image block commit. # diff --git a/tests/qemu-iotests/041 b/tests/qemu-iotests/041 index 5d67bf14bf..b6a14dc1b2 100755 --- a/tests/qemu-iotests/041 +++ b/tests/qemu-iotests/041 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw auto backing # # Tests for image mirroring. # diff --git a/tests/qemu-iotests/042 b/tests/qemu-iotests/042 index 0e85b356b7..6cf823fa74 100755 --- a/tests/qemu-iotests/042 +++ b/tests/qemu-iotests/042 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test qemu-img operation on zero size images # diff --git a/tests/qemu-iotests/043 b/tests/qemu-iotests/043 index b102e49208..83b97cccaf 100755 --- a/tests/qemu-iotests/043 +++ b/tests/qemu-iotests/043 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto backing # # Test that qemu-img info --backing-chain detects infinite loops # diff --git a/tests/qemu-iotests/044 b/tests/qemu-iotests/044 index 7e99ea7c68..64b18eb7c8 100755 --- a/tests/qemu-iotests/044 +++ b/tests/qemu-iotests/044 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Tests growing a large refcount table. # diff --git a/tests/qemu-iotests/045 b/tests/qemu-iotests/045 index 5acc89099c..45eb239baa 100755 --- a/tests/qemu-iotests/045 +++ b/tests/qemu-iotests/045 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Tests for fdsets and getfd. # diff --git a/tests/qemu-iotests/046 b/tests/qemu-iotests/046 index ecbe5fc0f4..47b216f4bf 100755 --- a/tests/qemu-iotests/046 +++ b/tests/qemu-iotests/046 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto aio quick # # Test concurrent cluster allocations # diff --git a/tests/qemu-iotests/047 b/tests/qemu-iotests/047 index 4528465fb0..8dd21e0a81 100755 --- a/tests/qemu-iotests/047 +++ b/tests/qemu-iotests/047 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Regression test for commit b7ab0fea (which was a corruption fix, # despite the commit message claiming otherwise) diff --git a/tests/qemu-iotests/048 b/tests/qemu-iotests/048 index 2af6b74b41..bf8e4bf528 100755 --- a/tests/qemu-iotests/048 +++ b/tests/qemu-iotests/048 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: img auto quick ## ## qemu-img compare test ## diff --git a/tests/qemu-iotests/049 b/tests/qemu-iotests/049 index 051a1c79e0..ed6730c4e8 100755 --- a/tests/qemu-iotests/049 +++ b/tests/qemu-iotests/049 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto # # Check qemu-img option parsing # diff --git a/tests/qemu-iotests/050 b/tests/qemu-iotests/050 index cdc5356541..62cc29f756 100755 --- a/tests/qemu-iotests/050 +++ b/tests/qemu-iotests/050 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto backing quick # # Test qemu-img rebase with zero clusters # diff --git a/tests/qemu-iotests/051 b/tests/qemu-iotests/051 index 034d3a3250..833aeda9f7 100755 --- a/tests/qemu-iotests/051 +++ b/tests/qemu-iotests/051 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test command line configuration of block devices and driver-specific options # diff --git a/tests/qemu-iotests/052 b/tests/qemu-iotests/052 index 45a140910d..44c7895b80 100755 --- a/tests/qemu-iotests/052 +++ b/tests/qemu-iotests/052 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto backing quick # # Test bdrv_read/bdrv_write using BDRV_O_SNAPSHOT # diff --git a/tests/qemu-iotests/053 b/tests/qemu-iotests/053 index 71d299c4f9..9a2958d42d 100755 --- a/tests/qemu-iotests/053 +++ b/tests/qemu-iotests/053 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test qemu-img convert when image length is not a multiple of cluster size # diff --git a/tests/qemu-iotests/054 b/tests/qemu-iotests/054 index a8905b60d0..a796f565e0 100755 --- a/tests/qemu-iotests/054 +++ b/tests/qemu-iotests/054 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test huge qcow2 images # diff --git a/tests/qemu-iotests/055 b/tests/qemu-iotests/055 index 82b9f5f47d..c70664dac6 100755 --- a/tests/qemu-iotests/055 +++ b/tests/qemu-iotests/055 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Tests for drive-backup and blockdev-backup # diff --git a/tests/qemu-iotests/056 b/tests/qemu-iotests/056 index f73fc74457..ffb2077a03 100755 --- a/tests/qemu-iotests/056 +++ b/tests/qemu-iotests/056 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw backing # # Tests for drive-backup # diff --git a/tests/qemu-iotests/057 b/tests/qemu-iotests/057 index a8b4bb60e0..b0d431999e 100755 --- a/tests/qemu-iotests/057 +++ b/tests/qemu-iotests/057 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Tests for internal snapshot. # diff --git a/tests/qemu-iotests/058 b/tests/qemu-iotests/058 index d84740ed9f..ce35ff4ee0 100755 --- a/tests/qemu-iotests/058 +++ b/tests/qemu-iotests/058 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test export internal snapshot by qemu-nbd, convert it by qemu-img. # diff --git a/tests/qemu-iotests/059 b/tests/qemu-iotests/059 index 5438025285..33f5450edd 100755 --- a/tests/qemu-iotests/059 +++ b/tests/qemu-iotests/059 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test case for vmdk # diff --git a/tests/qemu-iotests/060 b/tests/qemu-iotests/060 index 32c0ecce9e..3c72602806 100755 --- a/tests/qemu-iotests/060 +++ b/tests/qemu-iotests/060 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test case for image corruption (overlapping data structures) in qcow2 # diff --git a/tests/qemu-iotests/061 b/tests/qemu-iotests/061 index ce285d3084..1455b2957a 100755 --- a/tests/qemu-iotests/061 +++ b/tests/qemu-iotests/061 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto # # Test case for image option amendment in qcow2. # diff --git a/tests/qemu-iotests/062 b/tests/qemu-iotests/062 index f26b88df9d..321252298d 100755 --- a/tests/qemu-iotests/062 +++ b/tests/qemu-iotests/062 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test case for snapshotting images with unallocated zero clusters in # qcow2 diff --git a/tests/qemu-iotests/063 b/tests/qemu-iotests/063 index c750b3806e..3a44758053 100755 --- a/tests/qemu-iotests/063 +++ b/tests/qemu-iotests/063 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # test of qemu-img convert -n - convert without creation # diff --git a/tests/qemu-iotests/064 b/tests/qemu-iotests/064 index 90673186ec..71fc575b21 100755 --- a/tests/qemu-iotests/064 +++ b/tests/qemu-iotests/064 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test VHDX read/write from a sample image created with Hyper-V # diff --git a/tests/qemu-iotests/065 b/tests/qemu-iotests/065 index 6426474271..2d76287d44 100755 --- a/tests/qemu-iotests/065 +++ b/tests/qemu-iotests/065 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test for additional information emitted by qemu-img info on qcow2 # images diff --git a/tests/qemu-iotests/066 b/tests/qemu-iotests/066 index a4ac613f8e..a780ed7ab5 100755 --- a/tests/qemu-iotests/066 +++ b/tests/qemu-iotests/066 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test case for preallocated zero clusters in qcow2 # diff --git a/tests/qemu-iotests/067 b/tests/qemu-iotests/067 index a63be9cabf..b23f8c65de 100755 --- a/tests/qemu-iotests/067 +++ b/tests/qemu-iotests/067 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test automatic deletion of BDSes created by -drive/drive_add # diff --git a/tests/qemu-iotests/068 b/tests/qemu-iotests/068 index ccd1a9f1db..03e03508a6 100755 --- a/tests/qemu-iotests/068 +++ b/tests/qemu-iotests/068 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test case for loading a saved VM state from a qcow2 image # diff --git a/tests/qemu-iotests/069 b/tests/qemu-iotests/069 index b997b127f0..ccb24bc948 100755 --- a/tests/qemu-iotests/069 +++ b/tests/qemu-iotests/069 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test case for deleting a backing file # diff --git a/tests/qemu-iotests/070 b/tests/qemu-iotests/070 index cb0f927c16..b181e00f9b 100755 --- a/tests/qemu-iotests/070 +++ b/tests/qemu-iotests/070 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test VHDX log replay from an image with a journal that needs to be # replayed diff --git a/tests/qemu-iotests/071 b/tests/qemu-iotests/071 index 88faebcc1d..1d92f7f4a6 100755 --- a/tests/qemu-iotests/071 +++ b/tests/qemu-iotests/071 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test case for the QMP blkdebug and blkverify interfaces # diff --git a/tests/qemu-iotests/072 b/tests/qemu-iotests/072 index f0b73e7e65..c492ab8a78 100755 --- a/tests/qemu-iotests/072 +++ b/tests/qemu-iotests/072 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test case for nested image formats # diff --git a/tests/qemu-iotests/073 b/tests/qemu-iotests/073 index 23a1bdf890..ccdd465bbf 100755 --- a/tests/qemu-iotests/073 +++ b/tests/qemu-iotests/073 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test count_contiguous_clusters in qcow2 # diff --git a/tests/qemu-iotests/074 b/tests/qemu-iotests/074 index db03edf0b0..c32c94b50d 100755 --- a/tests/qemu-iotests/074 +++ b/tests/qemu-iotests/074 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick ## ## qemu-img compare test (qcow2 only ones) ## diff --git a/tests/qemu-iotests/075 b/tests/qemu-iotests/075 index 389d5675fa..ca2ed2a05c 100755 --- a/tests/qemu-iotests/075 +++ b/tests/qemu-iotests/075 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # cloop format input validation tests # diff --git a/tests/qemu-iotests/076 b/tests/qemu-iotests/076 index 0d405ef3f2..1a8927d765 100755 --- a/tests/qemu-iotests/076 +++ b/tests/qemu-iotests/076 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: io # # parallels format input validation tests # diff --git a/tests/qemu-iotests/077 b/tests/qemu-iotests/077 index c284952082..fbb90d8036 100755 --- a/tests/qemu-iotests/077 +++ b/tests/qemu-iotests/077 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test concurrent pread/pwrite # diff --git a/tests/qemu-iotests/078 b/tests/qemu-iotests/078 index 54fc654d8e..0b48b7f137 100755 --- a/tests/qemu-iotests/078 +++ b/tests/qemu-iotests/078 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # bochs format input validation tests # diff --git a/tests/qemu-iotests/079 b/tests/qemu-iotests/079 index 3642b51feb..e00a3cda2f 100755 --- a/tests/qemu-iotests/079 +++ b/tests/qemu-iotests/079 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto # # Test qcow2 preallocation with different cluster_sizes # diff --git a/tests/qemu-iotests/080 b/tests/qemu-iotests/080 index a3d13c414e..e0bdef11f4 100755 --- a/tests/qemu-iotests/080 +++ b/tests/qemu-iotests/080 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto # # qcow2 format input validation tests # diff --git a/tests/qemu-iotests/081 b/tests/qemu-iotests/081 index 537d40dfd5..a8185036cb 100755 --- a/tests/qemu-iotests/081 +++ b/tests/qemu-iotests/081 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test Quorum block driver # diff --git a/tests/qemu-iotests/082 b/tests/qemu-iotests/082 index 3286c2c6db..2259c9d9f7 100755 --- a/tests/qemu-iotests/082 +++ b/tests/qemu-iotests/082 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test qemu-img command line parsing # diff --git a/tests/qemu-iotests/083 b/tests/qemu-iotests/083 index 10fdfc8ebb..bc32b537b2 100755 --- a/tests/qemu-iotests/083 +++ b/tests/qemu-iotests/083 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test NBD client unexpected disconnect # diff --git a/tests/qemu-iotests/084 b/tests/qemu-iotests/084 index c29d7395e9..e51e91a7c8 100755 --- a/tests/qemu-iotests/084 +++ b/tests/qemu-iotests/084 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: img quick # # Test case for VDI header corruption; image too large, and too many blocks. # Also simple test for creating dynamic and static VDI images. diff --git a/tests/qemu-iotests/085 b/tests/qemu-iotests/085 index dd3c993a2d..20bdea3952 100755 --- a/tests/qemu-iotests/085 +++ b/tests/qemu-iotests/085 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Live snapshot tests # diff --git a/tests/qemu-iotests/086 b/tests/qemu-iotests/086 index fea1a7bd8a..c055e7bfe1 100755 --- a/tests/qemu-iotests/086 +++ b/tests/qemu-iotests/086 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test qemu-img progress output # diff --git a/tests/qemu-iotests/087 b/tests/qemu-iotests/087 index bdfdad3454..6eff852f22 100755 --- a/tests/qemu-iotests/087 +++ b/tests/qemu-iotests/087 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test unsupported blockdev-add cases # diff --git a/tests/qemu-iotests/088 b/tests/qemu-iotests/088 index ef1163346c..e3102fe888 100755 --- a/tests/qemu-iotests/088 +++ b/tests/qemu-iotests/088 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # vpc (VHD) format input validation tests # diff --git a/tests/qemu-iotests/089 b/tests/qemu-iotests/089 index 059ad75e28..1041cde0a1 100755 --- a/tests/qemu-iotests/089 +++ b/tests/qemu-iotests/089 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test case for support of JSON filenames # diff --git a/tests/qemu-iotests/090 b/tests/qemu-iotests/090 index 1246e4f910..cda38eeef2 100755 --- a/tests/qemu-iotests/090 +++ b/tests/qemu-iotests/090 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test for discarding compressed clusters on qcow2 images # diff --git a/tests/qemu-iotests/091 b/tests/qemu-iotests/091 index d2a2aca347..988ea12b39 100755 --- a/tests/qemu-iotests/091 +++ b/tests/qemu-iotests/091 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw migration # # Live migration test # diff --git a/tests/qemu-iotests/092 b/tests/qemu-iotests/092 index 40ec62b6f1..bfa116d191 100755 --- a/tests/qemu-iotests/092 +++ b/tests/qemu-iotests/092 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # qcow1 format input validation tests # diff --git a/tests/qemu-iotests/093 b/tests/qemu-iotests/093 index 32ded11430..7745cb04b6 100755 --- a/tests/qemu-iotests/093 +++ b/tests/qemu-iotests/093 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: throttle # # Tests for IO throttling # diff --git a/tests/qemu-iotests/094 b/tests/qemu-iotests/094 index 2d3e1004d3..a295fb20ef 100755 --- a/tests/qemu-iotests/094 +++ b/tests/qemu-iotests/094 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test case for drive-mirror to NBD # diff --git a/tests/qemu-iotests/095 b/tests/qemu-iotests/095 index 155ae86aa7..24c8ca2672 100755 --- a/tests/qemu-iotests/095 +++ b/tests/qemu-iotests/095 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test for commit of larger active layer # diff --git a/tests/qemu-iotests/096 b/tests/qemu-iotests/096 index 5915f92786..b5d7636bdc 100755 --- a/tests/qemu-iotests/096 +++ b/tests/qemu-iotests/096 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test that snapshots move the throttling configuration to the active # layer diff --git a/tests/qemu-iotests/097 b/tests/qemu-iotests/097 index 690f3d3ce1..2a95ee0c0f 100755 --- a/tests/qemu-iotests/097 +++ b/tests/qemu-iotests/097 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto backing # # Commit changes into backing chains and empty the top image if the # backing image is not explicitly specified diff --git a/tests/qemu-iotests/098 b/tests/qemu-iotests/098 index 1e29d96b3d..2b029a41c8 100755 --- a/tests/qemu-iotests/098 +++ b/tests/qemu-iotests/098 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto backing quick # # Test qcow2's bdrv_make_empty for images without internal snapshots # diff --git a/tests/qemu-iotests/099 b/tests/qemu-iotests/099 index 65e8e92572..2f1199ce04 100755 --- a/tests/qemu-iotests/099 +++ b/tests/qemu-iotests/099 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test valid filenames for blkdebug and blkverify representatively for # other protocols (such as NBD) when queried diff --git a/tests/qemu-iotests/101 b/tests/qemu-iotests/101 index a4c1b6366a..4c4a8cea11 100755 --- a/tests/qemu-iotests/101 +++ b/tests/qemu-iotests/101 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test short file I/O # diff --git a/tests/qemu-iotests/102 b/tests/qemu-iotests/102 index b898df436f..0dd3cee426 100755 --- a/tests/qemu-iotests/102 +++ b/tests/qemu-iotests/102 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test case for qemu-io -c map and qemu-img map # diff --git a/tests/qemu-iotests/103 b/tests/qemu-iotests/103 index 8c1ebe0443..5fee8a0119 100755 --- a/tests/qemu-iotests/103 +++ b/tests/qemu-iotests/103 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test case for qcow2 metadata cache size specification # diff --git a/tests/qemu-iotests/104 b/tests/qemu-iotests/104 index c70f28a9a1..3ebb74cf6e 100755 --- a/tests/qemu-iotests/104 +++ b/tests/qemu-iotests/104 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto # # Test image creation with aligned and unaligned sizes # diff --git a/tests/qemu-iotests/105 b/tests/qemu-iotests/105 index 4d55a2d3ef..d804685110 100755 --- a/tests/qemu-iotests/105 +++ b/tests/qemu-iotests/105 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Create, read, write big image # diff --git a/tests/qemu-iotests/106 b/tests/qemu-iotests/106 index b5d1ec4078..9e833a105c 100755 --- a/tests/qemu-iotests/106 +++ b/tests/qemu-iotests/106 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test preallocated resize of raw images # diff --git a/tests/qemu-iotests/107 b/tests/qemu-iotests/107 index 268ba27688..86dc27343e 100755 --- a/tests/qemu-iotests/107 +++ b/tests/qemu-iotests/107 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Tests updates of the qcow2 L1 table # diff --git a/tests/qemu-iotests/108 b/tests/qemu-iotests/108 index 5f7076fba4..6b1ddbb5b6 100755 --- a/tests/qemu-iotests/108 +++ b/tests/qemu-iotests/108 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test case for repairing qcow2 images which cannot be repaired using # the on-disk refcount structures diff --git a/tests/qemu-iotests/109 b/tests/qemu-iotests/109 index a51dd84b3d..cbdaab88dd 100755 --- a/tests/qemu-iotests/109 +++ b/tests/qemu-iotests/109 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test writing image headers of other formats into raw images # diff --git a/tests/qemu-iotests/110 b/tests/qemu-iotests/110 index 139c02c2cf..4e2a3ce04d 100755 --- a/tests/qemu-iotests/110 +++ b/tests/qemu-iotests/110 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto backing quick # # Test case for relative backing file names in complex BDS trees # diff --git a/tests/qemu-iotests/111 b/tests/qemu-iotests/111 index 3b43d1bd83..1a3d1ee741 100755 --- a/tests/qemu-iotests/111 +++ b/tests/qemu-iotests/111 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test case for non-existing backing file when creating a qcow2 image # and not specifying the size diff --git a/tests/qemu-iotests/112 b/tests/qemu-iotests/112 index 20ff5c224a..7a5b859c81 100755 --- a/tests/qemu-iotests/112 +++ b/tests/qemu-iotests/112 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test cases for different refcount_bits values # diff --git a/tests/qemu-iotests/113 b/tests/qemu-iotests/113 index f2703a2c50..5dc92b49ca 100755 --- a/tests/qemu-iotests/113 +++ b/tests/qemu-iotests/113 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test case for accessing creation options on image formats and # protocols not supporting image creation diff --git a/tests/qemu-iotests/114 b/tests/qemu-iotests/114 index 26104fff6c..a3a0e2c807 100755 --- a/tests/qemu-iotests/114 +++ b/tests/qemu-iotests/114 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test invalid backing file format in qcow2 images # diff --git a/tests/qemu-iotests/115 b/tests/qemu-iotests/115 index d254b18342..5c3f60bc1b 100755 --- a/tests/qemu-iotests/115 +++ b/tests/qemu-iotests/115 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test case for non-self-referential qcow2 refcount blocks # diff --git a/tests/qemu-iotests/116 b/tests/qemu-iotests/116 index 941b07a1a9..4f40fcb3d2 100755 --- a/tests/qemu-iotests/116 +++ b/tests/qemu-iotests/116 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test error code paths for invalid QED images # diff --git a/tests/qemu-iotests/117 b/tests/qemu-iotests/117 index f37b34f8b1..8210a0f70d 100755 --- a/tests/qemu-iotests/117 +++ b/tests/qemu-iotests/117 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto # # Test case for shared BDS between backend trees # diff --git a/tests/qemu-iotests/118 b/tests/qemu-iotests/118 index adc8a848b5..d705a01b78 100755 --- a/tests/qemu-iotests/118 +++ b/tests/qemu-iotests/118 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Test case for the QMP 'change' command and all other associated # commands diff --git a/tests/qemu-iotests/119 b/tests/qemu-iotests/119 index ea6770a484..5770b50045 100755 --- a/tests/qemu-iotests/119 +++ b/tests/qemu-iotests/119 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # NBD test case for overriding BDRV_O_PROTOCOL by explicitly specifying # a driver diff --git a/tests/qemu-iotests/120 b/tests/qemu-iotests/120 index 2931a7550f..03d5a3ba33 100755 --- a/tests/qemu-iotests/120 +++ b/tests/qemu-iotests/120 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Non-NBD test cases for overriding BDRV_O_PROTOCOL by explicitly # specifying a driver diff --git a/tests/qemu-iotests/121 b/tests/qemu-iotests/121 index 90ea0db737..0abe27f9f7 100755 --- a/tests/qemu-iotests/121 +++ b/tests/qemu-iotests/121 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test cases for qcow2 refcount table growth # diff --git a/tests/qemu-iotests/122 b/tests/qemu-iotests/122 index f7a3ae684a..5faf9ab034 100755 --- a/tests/qemu-iotests/122 +++ b/tests/qemu-iotests/122 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test some qemu-img convert cases # diff --git a/tests/qemu-iotests/123 b/tests/qemu-iotests/123 index 01b771c76e..e19111f70d 100755 --- a/tests/qemu-iotests/123 +++ b/tests/qemu-iotests/123 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test case for qemu-img convert to NBD # diff --git a/tests/qemu-iotests/124 b/tests/qemu-iotests/124 index 3705cbb6b3..3b21bc497f 100755 --- a/tests/qemu-iotests/124 +++ b/tests/qemu-iotests/124 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw backing # # Tests for incremental drive-backup # diff --git a/tests/qemu-iotests/125 b/tests/qemu-iotests/125 index d510984045..55e45657a6 100755 --- a/tests/qemu-iotests/125 +++ b/tests/qemu-iotests/125 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test preallocated growth of qcow2 images # diff --git a/tests/qemu-iotests/126 b/tests/qemu-iotests/126 index b7fce1e59d..7e4d1b3345 100755 --- a/tests/qemu-iotests/126 +++ b/tests/qemu-iotests/126 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto backing # # Tests handling of colons in filenames (which may be confused with protocol # prefixes) diff --git a/tests/qemu-iotests/127 b/tests/qemu-iotests/127 index a4fc866038..b30a49579f 100755 --- a/tests/qemu-iotests/127 +++ b/tests/qemu-iotests/127 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto backing quick # # Test case for mirroring with dataplane # diff --git a/tests/qemu-iotests/128 b/tests/qemu-iotests/128 index 3606c41760..d0e00d24b1 100755 --- a/tests/qemu-iotests/128 +++ b/tests/qemu-iotests/128 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test that opening O_DIRECT succeeds when image file I/O produces EIO # diff --git a/tests/qemu-iotests/129 b/tests/qemu-iotests/129 index b0da4a5541..0873b4800d 100755 --- a/tests/qemu-iotests/129 +++ b/tests/qemu-iotests/129 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Tests that "bdrv_drain_all" doesn't drain block jobs # diff --git a/tests/qemu-iotests/130 b/tests/qemu-iotests/130 index 77ad2aa13a..9d50960d66 100755 --- a/tests/qemu-iotests/130 +++ b/tests/qemu-iotests/130 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test that temporary backing file overrides (on the command line or in # blockdev-add) don't replace the original path stored in the image during diff --git a/tests/qemu-iotests/131 b/tests/qemu-iotests/131 index 27870231cf..d7456cae5b 100755 --- a/tests/qemu-iotests/131 +++ b/tests/qemu-iotests/131 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # parallels format validation tests (created by QEMU) # diff --git a/tests/qemu-iotests/132 b/tests/qemu-iotests/132 index 39ea43067e..367ea08036 100755 --- a/tests/qemu-iotests/132 +++ b/tests/qemu-iotests/132 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test mirror with unmap # diff --git a/tests/qemu-iotests/133 b/tests/qemu-iotests/133 index 6f7cacc091..602c4b7a96 100755 --- a/tests/qemu-iotests/133 +++ b/tests/qemu-iotests/133 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: auto quick # # Test for reopen # diff --git a/tests/qemu-iotests/134 b/tests/qemu-iotests/134 index 5f0fb86211..30cc53088e 100755 --- a/tests/qemu-iotests/134 +++ b/tests/qemu-iotests/134 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test encrypted read/write using plain bdrv_read/bdrv_write # diff --git a/tests/qemu-iotests/135 b/tests/qemu-iotests/135 index 3b3d1dc2a5..299075b4c9 100755 --- a/tests/qemu-iotests/135 +++ b/tests/qemu-iotests/135 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test VPC open of image with large Max Table Entries value. # diff --git a/tests/qemu-iotests/136 b/tests/qemu-iotests/136 index d59400c9fc..8fce88bd67 100755 --- a/tests/qemu-iotests/136 +++ b/tests/qemu-iotests/136 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Tests for block device statistics # diff --git a/tests/qemu-iotests/137 b/tests/qemu-iotests/137 index 7ae86892f7..1cb2fe1653 100755 --- a/tests/qemu-iotests/137 +++ b/tests/qemu-iotests/137 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto # # Test qcow2 reopen # diff --git a/tests/qemu-iotests/138 b/tests/qemu-iotests/138 index 1d5b0bed6d..04d0bb5487 100755 --- a/tests/qemu-iotests/138 +++ b/tests/qemu-iotests/138 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # General test case for qcow2's image check # diff --git a/tests/qemu-iotests/139 b/tests/qemu-iotests/139 index 7120d3142b..401e8a915d 100755 --- a/tests/qemu-iotests/139 +++ b/tests/qemu-iotests/139 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test cases for the QMP 'blockdev-del' command # diff --git a/tests/qemu-iotests/140 b/tests/qemu-iotests/140 index 8d2ce5d9e3..13bc4ca2d7 100755 --- a/tests/qemu-iotests/140 +++ b/tests/qemu-iotests/140 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test case for ejecting a BlockBackend with an NBD server attached to it # diff --git a/tests/qemu-iotests/141 b/tests/qemu-iotests/141 index 5192d256e3..38736e16f2 100755 --- a/tests/qemu-iotests/141 +++ b/tests/qemu-iotests/141 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test case for ejecting BDSs with block jobs still running on them # diff --git a/tests/qemu-iotests/143 b/tests/qemu-iotests/143 index f649b36195..8e2009df26 100755 --- a/tests/qemu-iotests/143 +++ b/tests/qemu-iotests/143 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: auto quick # # Test case for connecting to a non-existing NBD export name # diff --git a/tests/qemu-iotests/144 b/tests/qemu-iotests/144 index 4569ac0b4b..60e9ddd75f 100755 --- a/tests/qemu-iotests/144 +++ b/tests/qemu-iotests/144 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # Check live snapshot, followed by active commit, and another snapshot. # # This test is to catch the error case of BZ #1300209: diff --git a/tests/qemu-iotests/145 b/tests/qemu-iotests/145 index 9427549651..a2ce92516d 100755 --- a/tests/qemu-iotests/145 +++ b/tests/qemu-iotests/145 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: quick # # Test the combination of -incoming and snapshot=on # diff --git a/tests/qemu-iotests/146 b/tests/qemu-iotests/146 index 2e43abddfc..8bc9bbefa3 100755 --- a/tests/qemu-iotests/146 +++ b/tests/qemu-iotests/146 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: quick # # Test VHD image format creator detection and override # diff --git a/tests/qemu-iotests/147 b/tests/qemu-iotests/147 index d7a9f31089..47dfa62e6b 100755 --- a/tests/qemu-iotests/147 +++ b/tests/qemu-iotests/147 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: img # # Test case for NBD's blockdev-add interface # diff --git a/tests/qemu-iotests/148 b/tests/qemu-iotests/148 index 90931948e3..35f3861dfc 100755 --- a/tests/qemu-iotests/148 +++ b/tests/qemu-iotests/148 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test the rate limit of QMP events # diff --git a/tests/qemu-iotests/149 b/tests/qemu-iotests/149 index b4a21bf7b7..e84f0f8e1f 100755 --- a/tests/qemu-iotests/149 +++ b/tests/qemu-iotests/149 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw sudo # # Copyright (C) 2016 Red Hat, Inc. # diff --git a/tests/qemu-iotests/150 b/tests/qemu-iotests/150 index 3b1f32197a..ac6930ae20 100755 --- a/tests/qemu-iotests/150 +++ b/tests/qemu-iotests/150 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test that qemu-img convert -S 0 fully allocates the target image # diff --git a/tests/qemu-iotests/151 b/tests/qemu-iotests/151 index f2df72c29c..182f6b5321 100755 --- a/tests/qemu-iotests/151 +++ b/tests/qemu-iotests/151 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Tests for active mirroring # diff --git a/tests/qemu-iotests/152 b/tests/qemu-iotests/152 index cc2ea09654..4e179c340f 100755 --- a/tests/qemu-iotests/152 +++ b/tests/qemu-iotests/152 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Tests for drive-mirror with source size unaligned to granularity # diff --git a/tests/qemu-iotests/153 b/tests/qemu-iotests/153 index 2b13111768..ef6a3cfd18 100755 --- a/tests/qemu-iotests/153 +++ b/tests/qemu-iotests/153 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test image locking # diff --git a/tests/qemu-iotests/154 b/tests/qemu-iotests/154 index d68f66b9e0..83900cc072 100755 --- a/tests/qemu-iotests/154 +++ b/tests/qemu-iotests/154 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto backing quick # # qcow2 specific bdrv_pwrite_zeroes tests with backing files (complements 034) # diff --git a/tests/qemu-iotests/155 b/tests/qemu-iotests/155 index 571bce9de4..4ac3f86a8b 100755 --- a/tests/qemu-iotests/155 +++ b/tests/qemu-iotests/155 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Test whether the backing BDSs are correct after completion of a # mirror block job; in "existing" modes (drive-mirror with diff --git a/tests/qemu-iotests/156 b/tests/qemu-iotests/156 index 5559df63a5..4019ada313 100755 --- a/tests/qemu-iotests/156 +++ b/tests/qemu-iotests/156 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Tests oVirt-like storage migration: # - Create snapshot diff --git a/tests/qemu-iotests/157 b/tests/qemu-iotests/157 index 7cbac38099..0dc9ba68d2 100755 --- a/tests/qemu-iotests/157 +++ b/tests/qemu-iotests/157 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: quick # # Test command line configuration of block devices with qdev # diff --git a/tests/qemu-iotests/158 b/tests/qemu-iotests/158 index ba4db6116a..6dcd14aeb2 100755 --- a/tests/qemu-iotests/158 +++ b/tests/qemu-iotests/158 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test encrypted read/write using backing files # diff --git a/tests/qemu-iotests/159 b/tests/qemu-iotests/159 index f9690053a2..4eb476d3a8 100755 --- a/tests/qemu-iotests/159 +++ b/tests/qemu-iotests/159 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # qemu-img dd test with different block sizes # diff --git a/tests/qemu-iotests/160 b/tests/qemu-iotests/160 index 0572b5ae9a..7984a9c6f7 100755 --- a/tests/qemu-iotests/160 +++ b/tests/qemu-iotests/160 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # qemu-img dd test for the skip option # diff --git a/tests/qemu-iotests/161 b/tests/qemu-iotests/161 index f572a19af2..e161fb4679 100755 --- a/tests/qemu-iotests/161 +++ b/tests/qemu-iotests/161 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test reopening a backing image after block-stream and block-commit # diff --git a/tests/qemu-iotests/162 b/tests/qemu-iotests/162 index c0053ed975..cf17f494d8 100755 --- a/tests/qemu-iotests/162 +++ b/tests/qemu-iotests/162 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: quick # # Test case for specifying runtime options of the wrong type to some # block drivers diff --git a/tests/qemu-iotests/163 b/tests/qemu-iotests/163 index 5a3cc840a5..dedce8ef43 100755 --- a/tests/qemu-iotests/163 +++ b/tests/qemu-iotests/163 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Tests for shrinking images # diff --git a/tests/qemu-iotests/165 b/tests/qemu-iotests/165 index fb56a769b4..abc4ffadd5 100755 --- a/tests/qemu-iotests/165 +++ b/tests/qemu-iotests/165 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Tests for persistent dirty bitmaps. # diff --git a/tests/qemu-iotests/169 b/tests/qemu-iotests/169 index 2c5a132aa3..2d41e1cc03 100755 --- a/tests/qemu-iotests/169 +++ b/tests/qemu-iotests/169 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick migration # # Tests for dirty bitmaps migration. # diff --git a/tests/qemu-iotests/170 b/tests/qemu-iotests/170 index 6c8f0e8085..41387e4d66 100755 --- a/tests/qemu-iotests/170 +++ b/tests/qemu-iotests/170 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # qemu-img dd test # diff --git a/tests/qemu-iotests/171 b/tests/qemu-iotests/171 index 341064a1c6..babfe98753 100755 --- a/tests/qemu-iotests/171 +++ b/tests/qemu-iotests/171 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test 'offset' and 'size' options of the raw driver. Make sure we can't # (or can) read and write outside of the image size. diff --git a/tests/qemu-iotests/172 b/tests/qemu-iotests/172 index 7195fb895a..4548e3aab9 100755 --- a/tests/qemu-iotests/172 +++ b/tests/qemu-iotests/172 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: auto # # Test floppy configuration # diff --git a/tests/qemu-iotests/173 b/tests/qemu-iotests/173 index ec6d1705e5..9594f3c5ea 100755 --- a/tests/qemu-iotests/173 +++ b/tests/qemu-iotests/173 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test QAPI commands looking up protocol based images with relative # filename backing strings diff --git a/tests/qemu-iotests/174 b/tests/qemu-iotests/174 index e2f14a38c6..1a141fbc0f 100755 --- a/tests/qemu-iotests/174 +++ b/tests/qemu-iotests/174 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: auto # # Test that qemu-io fail with non-zero exit code # diff --git a/tests/qemu-iotests/175 b/tests/qemu-iotests/175 index 020ed8e61f..9bb7ea6936 100755 --- a/tests/qemu-iotests/175 +++ b/tests/qemu-iotests/175 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: quick # # Test creating raw image preallocation mode # diff --git a/tests/qemu-iotests/176 b/tests/qemu-iotests/176 index 117c8b6954..e5be07d6a6 100755 --- a/tests/qemu-iotests/176 +++ b/tests/qemu-iotests/176 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto backing # # Commit changes into backing chains and empty the top image if the # backing image is not explicitly specified. diff --git a/tests/qemu-iotests/177 b/tests/qemu-iotests/177 index eadc2c7ef6..88b2c977c5 100755 --- a/tests/qemu-iotests/177 +++ b/tests/qemu-iotests/177 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test corner cases with unusual block geometries # diff --git a/tests/qemu-iotests/178 b/tests/qemu-iotests/178 index 7cf0e27154..b911b79915 100755 --- a/tests/qemu-iotests/178 +++ b/tests/qemu-iotests/178 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: img # # qemu-img measure sub-command tests # diff --git a/tests/qemu-iotests/179 b/tests/qemu-iotests/179 index 9372dc30ef..ebd48e6ad2 100755 --- a/tests/qemu-iotests/179 +++ b/tests/qemu-iotests/179 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test case for write zeroes with unmap # diff --git a/tests/qemu-iotests/181 b/tests/qemu-iotests/181 index 438c2dcd80..dadf3bf88e 100755 --- a/tests/qemu-iotests/181 +++ b/tests/qemu-iotests/181 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto migration # # Test postcopy live migration with shared storage # diff --git a/tests/qemu-iotests/182 b/tests/qemu-iotests/182 index 56a2dd58e6..55a0384c08 100755 --- a/tests/qemu-iotests/182 +++ b/tests/qemu-iotests/182 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test image locking for POSIX locks # diff --git a/tests/qemu-iotests/183 b/tests/qemu-iotests/183 index acdbefa310..16390fe93d 100755 --- a/tests/qemu-iotests/183 +++ b/tests/qemu-iotests/183 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw migration # # Test old-style block migration (migrate -b) # diff --git a/tests/qemu-iotests/184 b/tests/qemu-iotests/184 index 33dd8d2a4f..1d923f509d 100755 --- a/tests/qemu-iotests/184 +++ b/tests/qemu-iotests/184 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test I/O throttle block filter driver interface # diff --git a/tests/qemu-iotests/185 b/tests/qemu-iotests/185 index fd5e6ebe11..7bc8fe5767 100755 --- a/tests/qemu-iotests/185 +++ b/tests/qemu-iotests/185 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test exiting qemu while jobs are still running # diff --git a/tests/qemu-iotests/186 b/tests/qemu-iotests/186 index 3ea0442d44..66f2418182 100755 --- a/tests/qemu-iotests/186 +++ b/tests/qemu-iotests/186 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto # # Test 'info block' with all kinds of configurations # diff --git a/tests/qemu-iotests/187 b/tests/qemu-iotests/187 index c6e1dc57a0..46fd5678c7 100755 --- a/tests/qemu-iotests/187 +++ b/tests/qemu-iotests/187 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto # # Test switching between read-only and read-write # diff --git a/tests/qemu-iotests/188 b/tests/qemu-iotests/188 index afca44df54..87e902352d 100755 --- a/tests/qemu-iotests/188 +++ b/tests/qemu-iotests/188 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test encrypted read/write using plain bdrv_read/bdrv_write # diff --git a/tests/qemu-iotests/189 b/tests/qemu-iotests/189 index c9ce9d3bed..2f6f8a9309 100755 --- a/tests/qemu-iotests/189 +++ b/tests/qemu-iotests/189 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test encrypted read/write using backing files # diff --git a/tests/qemu-iotests/190 b/tests/qemu-iotests/190 index 6d41650438..6011be0861 100755 --- a/tests/qemu-iotests/190 +++ b/tests/qemu-iotests/190 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # qemu-img measure sub-command tests on huge qcow2 files # diff --git a/tests/qemu-iotests/191 b/tests/qemu-iotests/191 index b05db68141..bce1d8445e 100755 --- a/tests/qemu-iotests/191 +++ b/tests/qemu-iotests/191 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto # # Test commit block job where top has two parents # diff --git a/tests/qemu-iotests/192 b/tests/qemu-iotests/192 index d2ba55dd90..d809187fca 100755 --- a/tests/qemu-iotests/192 +++ b/tests/qemu-iotests/192 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test NBD export with -incoming (non-shared storage migration use case from # libvirt) diff --git a/tests/qemu-iotests/194 b/tests/qemu-iotests/194 index 9dc1bd3510..b668120ebb 100755 --- a/tests/qemu-iotests/194 +++ b/tests/qemu-iotests/194 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw migration quick # # Copyright (C) 2017 Red Hat, Inc. # diff --git a/tests/qemu-iotests/195 b/tests/qemu-iotests/195 index 48984b7ac1..dab6e0fe9c 100755 --- a/tests/qemu-iotests/195 +++ b/tests/qemu-iotests/195 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test change-backing-file command # diff --git a/tests/qemu-iotests/196 b/tests/qemu-iotests/196 index e8fcf37273..2451515094 100755 --- a/tests/qemu-iotests/196 +++ b/tests/qemu-iotests/196 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick migration # # Test clearing unknown autoclear_features flag by qcow2 after # migration. This test mimics migration to older qemu. diff --git a/tests/qemu-iotests/197 b/tests/qemu-iotests/197 index 95f05b0e34..74e751d06f 100755 --- a/tests/qemu-iotests/197 +++ b/tests/qemu-iotests/197 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test case for copy-on-read into qcow2 # diff --git a/tests/qemu-iotests/198 b/tests/qemu-iotests/198 index fb0d5a29d3..b4c498015f 100755 --- a/tests/qemu-iotests/198 +++ b/tests/qemu-iotests/198 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test commit of encrypted qcow2 files # diff --git a/tests/qemu-iotests/199 b/tests/qemu-iotests/199 index 40774eed74..9cb8c55956 100755 --- a/tests/qemu-iotests/199 +++ b/tests/qemu-iotests/199 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw migration # # Tests for dirty bitmaps postcopy migration. # diff --git a/tests/qemu-iotests/200 b/tests/qemu-iotests/200 index 59f7854b9f..c72cd72e56 100755 --- a/tests/qemu-iotests/200 +++ b/tests/qemu-iotests/200 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Block job co-routine race condition test. # diff --git a/tests/qemu-iotests/201 b/tests/qemu-iotests/201 index 483eb189c5..412a6f1834 100755 --- a/tests/qemu-iotests/201 +++ b/tests/qemu-iotests/201 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw migration # # Test savevm and loadvm after live migration with postcopy flag # diff --git a/tests/qemu-iotests/202 b/tests/qemu-iotests/202 index 920a8683ef..5f8afc85bd 100755 --- a/tests/qemu-iotests/202 +++ b/tests/qemu-iotests/202 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Copyright (C) 2017 Red Hat, Inc. # diff --git a/tests/qemu-iotests/203 b/tests/qemu-iotests/203 index 49eff5d405..3e2e35ad6b 100755 --- a/tests/qemu-iotests/203 +++ b/tests/qemu-iotests/203 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw auto migration # # Copyright (C) 2017 Red Hat, Inc. # diff --git a/tests/qemu-iotests/204 b/tests/qemu-iotests/204 index abb73dc381..e528b796f6 100755 --- a/tests/qemu-iotests/204 +++ b/tests/qemu-iotests/204 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test corner cases with unusual block geometries # diff --git a/tests/qemu-iotests/205 b/tests/qemu-iotests/205 index 43432cb599..c0e107328f 100755 --- a/tests/qemu-iotests/205 +++ b/tests/qemu-iotests/205 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Tests for qmp command nbd-server-remove. # diff --git a/tests/qemu-iotests/206 b/tests/qemu-iotests/206 index e2b50ae24d..4cf41eca7f 100755 --- a/tests/qemu-iotests/206 +++ b/tests/qemu-iotests/206 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Test qcow2 and file image creation # diff --git a/tests/qemu-iotests/207 b/tests/qemu-iotests/207 index 3d9c1208ca..813cfe7a27 100755 --- a/tests/qemu-iotests/207 +++ b/tests/qemu-iotests/207 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Test ssh image creation # diff --git a/tests/qemu-iotests/208 b/tests/qemu-iotests/208 index 1c3fc8c7fd..5ef7bc3caa 100755 --- a/tests/qemu-iotests/208 +++ b/tests/qemu-iotests/208 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Copyright (C) 2018 Red Hat, Inc. # diff --git a/tests/qemu-iotests/209 b/tests/qemu-iotests/209 index 65c1a1e70a..2dd0bbb905 100755 --- a/tests/qemu-iotests/209 +++ b/tests/qemu-iotests/209 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Tests for NBD BLOCK_STATUS extension # diff --git a/tests/qemu-iotests/210 b/tests/qemu-iotests/210 index e49896e23d..f03c13c186 100755 --- a/tests/qemu-iotests/210 +++ b/tests/qemu-iotests/210 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Test luks and file image creation # diff --git a/tests/qemu-iotests/211 b/tests/qemu-iotests/211 index 163994d559..e66737970f 100755 --- a/tests/qemu-iotests/211 +++ b/tests/qemu-iotests/211 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test VDI and file image creation # diff --git a/tests/qemu-iotests/212 b/tests/qemu-iotests/212 index 800f92dd84..b7a53949f8 100755 --- a/tests/qemu-iotests/212 +++ b/tests/qemu-iotests/212 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test parallels and file image creation # diff --git a/tests/qemu-iotests/213 b/tests/qemu-iotests/213 index 1eee45276a..c7b5c0e7e2 100755 --- a/tests/qemu-iotests/213 +++ b/tests/qemu-iotests/213 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test vhdx and file image creation # diff --git a/tests/qemu-iotests/214 b/tests/qemu-iotests/214 index af677d90b8..4c0e8f2b48 100755 --- a/tests/qemu-iotests/214 +++ b/tests/qemu-iotests/214 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto # # Test qcow2 image compression # diff --git a/tests/qemu-iotests/215 b/tests/qemu-iotests/215 index f99bae78c7..d464596f14 100755 --- a/tests/qemu-iotests/215 +++ b/tests/qemu-iotests/215 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test case for copy-on-read into qcow2, using the COR filter driver # diff --git a/tests/qemu-iotests/216 b/tests/qemu-iotests/216 index 372f042d3e..7374bede19 100755 --- a/tests/qemu-iotests/216 +++ b/tests/qemu-iotests/216 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Copy-on-read tests using a COR filter node # diff --git a/tests/qemu-iotests/217 b/tests/qemu-iotests/217 index d89116ccad..df370549f8 100755 --- a/tests/qemu-iotests/217 +++ b/tests/qemu-iotests/217 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # I/O errors when working with internal qcow2 snapshots, and repairing # the result diff --git a/tests/qemu-iotests/218 b/tests/qemu-iotests/218 index 1325ba9eaa..c8cca23161 100755 --- a/tests/qemu-iotests/218 +++ b/tests/qemu-iotests/218 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # This test covers what happens when a mirror block job is cancelled # in various phases of its existence. diff --git a/tests/qemu-iotests/219 b/tests/qemu-iotests/219 index b8774770c4..9523627451 100755 --- a/tests/qemu-iotests/219 +++ b/tests/qemu-iotests/219 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Copyright (C) 2018 Red Hat, Inc. # diff --git a/tests/qemu-iotests/220 b/tests/qemu-iotests/220 index a9259b7127..126749c707 100755 --- a/tests/qemu-iotests/220 +++ b/tests/qemu-iotests/220 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto # # max limits on compression in huge qcow2 files # diff --git a/tests/qemu-iotests/221 b/tests/qemu-iotests/221 index 0e9096fec7..2db84a3962 100755 --- a/tests/qemu-iotests/221 +++ b/tests/qemu-iotests/221 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test qemu-img vs. unaligned images # (See also 253, which is the O_DIRECT version) diff --git a/tests/qemu-iotests/222 b/tests/qemu-iotests/222 index bf1718e179..f1ee316abb 100755 --- a/tests/qemu-iotests/222 +++ b/tests/qemu-iotests/222 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # This test covers the basic fleecing workflow, which provides a # point-in-time snapshot of a node that can be queried over NBD. diff --git a/tests/qemu-iotests/223 b/tests/qemu-iotests/223 index 56fbc5fb09..18ff35ac3a 100755 --- a/tests/qemu-iotests/223 +++ b/tests/qemu-iotests/223 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test reading dirty bitmap over NBD # diff --git a/tests/qemu-iotests/224 b/tests/qemu-iotests/224 index e91fb26fd8..40e6beaa07 100755 --- a/tests/qemu-iotests/224 +++ b/tests/qemu-iotests/224 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test json:{} filenames with qemu-internal BDSs # (the one of commit, to be precise) diff --git a/tests/qemu-iotests/225 b/tests/qemu-iotests/225 index c9a334c7e9..c25ac26949 100755 --- a/tests/qemu-iotests/225 +++ b/tests/qemu-iotests/225 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test vmdk backing file correlation # diff --git a/tests/qemu-iotests/226 b/tests/qemu-iotests/226 index c1e1fb2b1c..6a9adb4a0b 100755 --- a/tests/qemu-iotests/226 +++ b/tests/qemu-iotests/226 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: auto quick # # This test covers expected filetypes for the file, host_cdrom and # host_device drivers. diff --git a/tests/qemu-iotests/227 b/tests/qemu-iotests/227 index 637d7c3726..7e45a47ac6 100755 --- a/tests/qemu-iotests/227 +++ b/tests/qemu-iotests/227 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: quick # # Test query-blockstats with different ways to create a BB # diff --git a/tests/qemu-iotests/228 b/tests/qemu-iotests/228 index 64bc82ee23..5e723d342c 100755 --- a/tests/qemu-iotests/228 +++ b/tests/qemu-iotests/228 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test for when a backing file is considered overridden (thus, a # json:{} filename is generated for the overlay) and when it is not diff --git a/tests/qemu-iotests/229 b/tests/qemu-iotests/229 index 866168b236..9b8ecee2a7 100755 --- a/tests/qemu-iotests/229 +++ b/tests/qemu-iotests/229 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: auto quick # # Test for force canceling a running blockjob that is paused in # an error state. diff --git a/tests/qemu-iotests/231 b/tests/qemu-iotests/231 index c0b053ac30..0f66d0ca36 100755 --- a/tests/qemu-iotests/231 +++ b/tests/qemu-iotests/231 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: quick # # Test legacy and modern option parsing for rbd/ceph. This will not # actually connect to a ceph server, but rather looks for the appropriate diff --git a/tests/qemu-iotests/232 b/tests/qemu-iotests/232 index 685356ac3b..b30faaa218 100755 --- a/tests/qemu-iotests/232 +++ b/tests/qemu-iotests/232 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: quick # # Test for auto-read-only # diff --git a/tests/qemu-iotests/233 b/tests/qemu-iotests/233 index a5c17c3963..7ce5764903 100755 --- a/tests/qemu-iotests/233 +++ b/tests/qemu-iotests/233 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: quick # # Test NBD TLS certificate / authorization integration # diff --git a/tests/qemu-iotests/234 b/tests/qemu-iotests/234 index 324c1549fd..e443fc59cc 100755 --- a/tests/qemu-iotests/234 +++ b/tests/qemu-iotests/234 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: quick migration # # Copyright (C) 2018 Red Hat, Inc. # diff --git a/tests/qemu-iotests/235 b/tests/qemu-iotests/235 index 760826128e..7517f78626 100755 --- a/tests/qemu-iotests/235 +++ b/tests/qemu-iotests/235 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: quick # # Simple mirror test # diff --git a/tests/qemu-iotests/236 b/tests/qemu-iotests/236 index 8ce927a16c..75b63ad4cf 100755 --- a/tests/qemu-iotests/236 +++ b/tests/qemu-iotests/236 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: quick # # Test bitmap merges. # diff --git a/tests/qemu-iotests/237 b/tests/qemu-iotests/237 index 50ba364a3e..4068298f8c 100755 --- a/tests/qemu-iotests/237 +++ b/tests/qemu-iotests/237 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test vmdk and file image creation # diff --git a/tests/qemu-iotests/238 b/tests/qemu-iotests/238 index d4e060228c..662ba94131 100755 --- a/tests/qemu-iotests/238 +++ b/tests/qemu-iotests/238 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: quick # # Regression test for throttle group member unregister segfault with iothread # diff --git a/tests/qemu-iotests/239 b/tests/qemu-iotests/239 index b0991ffe59..4f0037148d 100755 --- a/tests/qemu-iotests/239 +++ b/tests/qemu-iotests/239 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test case for dmg # diff --git a/tests/qemu-iotests/240 b/tests/qemu-iotests/240 index 8b4337b58d..d9428e50bc 100755 --- a/tests/qemu-iotests/240 +++ b/tests/qemu-iotests/240 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: quick # # Test hot plugging and unplugging with iothreads # diff --git a/tests/qemu-iotests/241 b/tests/qemu-iotests/241 index 8dae8d39e4..c962c8b607 100755 --- a/tests/qemu-iotests/241 +++ b/tests/qemu-iotests/241 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test qemu-nbd vs. unaligned images # diff --git a/tests/qemu-iotests/242 b/tests/qemu-iotests/242 index 97617876bc..757ac569bc 100755 --- a/tests/qemu-iotests/242 +++ b/tests/qemu-iotests/242 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test for qcow2 bitmap printed information # diff --git a/tests/qemu-iotests/243 b/tests/qemu-iotests/243 index a61852f6d9..160ea02538 100755 --- a/tests/qemu-iotests/243 +++ b/tests/qemu-iotests/243 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test qcow2 preallocation # diff --git a/tests/qemu-iotests/244 b/tests/qemu-iotests/244 index 2ec1815e6f..037a961422 100755 --- a/tests/qemu-iotests/244 +++ b/tests/qemu-iotests/244 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test qcow2 with external data files # diff --git a/tests/qemu-iotests/245 b/tests/qemu-iotests/245 index 1001275a44..9fc1e3e0c8 100755 --- a/tests/qemu-iotests/245 +++ b/tests/qemu-iotests/245 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Test cases for the QMP 'x-blockdev-reopen' command # diff --git a/tests/qemu-iotests/246 b/tests/qemu-iotests/246 index 59a216a839..71a17a024d 100755 --- a/tests/qemu-iotests/246 +++ b/tests/qemu-iotests/246 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test persistent bitmap resizing. # diff --git a/tests/qemu-iotests/247 b/tests/qemu-iotests/247 index 87e37b39e2..70b9a42a33 100755 --- a/tests/qemu-iotests/247 +++ b/tests/qemu-iotests/247 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test for auto-read-only with commit block job # diff --git a/tests/qemu-iotests/248 b/tests/qemu-iotests/248 index 68c374692e..a4af7b99df 100755 --- a/tests/qemu-iotests/248 +++ b/tests/qemu-iotests/248 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test resume mirror after auto pause on ENOSPC # diff --git a/tests/qemu-iotests/249 b/tests/qemu-iotests/249 index 2b99c9789e..623acdb97c 100755 --- a/tests/qemu-iotests/249 +++ b/tests/qemu-iotests/249 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test that a backing image is put back in read-only mode after # block-commit (both when it fails and when it succeeds). diff --git a/tests/qemu-iotests/250 b/tests/qemu-iotests/250 index 9bb6b94d74..b9ee43214a 100755 --- a/tests/qemu-iotests/250 +++ b/tests/qemu-iotests/250 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test big discard in qcow2 shrink # diff --git a/tests/qemu-iotests/251 b/tests/qemu-iotests/251 index 7918ba3559..b0900898fa 100755 --- a/tests/qemu-iotests/251 +++ b/tests/qemu-iotests/251 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test qemu-img convert --salvage # diff --git a/tests/qemu-iotests/252 b/tests/qemu-iotests/252 index 83280c1715..a6df22ff3f 100755 --- a/tests/qemu-iotests/252 +++ b/tests/qemu-iotests/252 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto backing quick # # Tests for rebasing COW images that require zero cluster support # diff --git a/tests/qemu-iotests/253 b/tests/qemu-iotests/253 index d88d5afa45..35039d20a8 100755 --- a/tests/qemu-iotests/253 +++ b/tests/qemu-iotests/253 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test qemu-img vs. unaligned images; O_DIRECT version # (Originates from 221) diff --git a/tests/qemu-iotests/254 b/tests/qemu-iotests/254 index ee66c986db..f4965d343b 100755 --- a/tests/qemu-iotests/254 +++ b/tests/qemu-iotests/254 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw backing quick # # Test external snapshot with bitmap copying and moving. # diff --git a/tests/qemu-iotests/255 b/tests/qemu-iotests/255 index 4a4818bafb..2cb2a98f7c 100755 --- a/tests/qemu-iotests/255 +++ b/tests/qemu-iotests/255 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test commit job graph modifications while requests are active # diff --git a/tests/qemu-iotests/256 b/tests/qemu-iotests/256 index e34074c83e..a34f7f7785 100755 --- a/tests/qemu-iotests/256 +++ b/tests/qemu-iotests/256 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw auto quick # # Test incremental/backup across iothread contexts # diff --git a/tests/qemu-iotests/257 b/tests/qemu-iotests/257 index 004a433b8b..ce1918fa37 100755 --- a/tests/qemu-iotests/257 +++ b/tests/qemu-iotests/257 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Test bitmap-sync backups (incremental, differential, and partials) # diff --git a/tests/qemu-iotests/258 b/tests/qemu-iotests/258 index 091755a45c..d09174912b 100755 --- a/tests/qemu-iotests/258 +++ b/tests/qemu-iotests/258 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Very specific tests for adjacent commit/stream block jobs # diff --git a/tests/qemu-iotests/259 b/tests/qemu-iotests/259 index 62e29af05f..76cde429c4 100755 --- a/tests/qemu-iotests/259 +++ b/tests/qemu-iotests/259 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test generic image creation fallback (by using NBD) # diff --git a/tests/qemu-iotests/260 b/tests/qemu-iotests/260 index 30c0de380d..f2de0dbf87 100755 --- a/tests/qemu-iotests/260 +++ b/tests/qemu-iotests/260 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Tests for temporary external snapshot when we have bitmaps. # diff --git a/tests/qemu-iotests/261 b/tests/qemu-iotests/261 index ddcb04f285..e8e61f8d6e 100755 --- a/tests/qemu-iotests/261 +++ b/tests/qemu-iotests/261 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test case for qcow2's handling of extra data in snapshot table entries # (and more generally, how certain cases of broken snapshot tables are diff --git a/tests/qemu-iotests/262 b/tests/qemu-iotests/262 index 8835dce7be..6a9925bcac 100755 --- a/tests/qemu-iotests/262 +++ b/tests/qemu-iotests/262 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick migration # # Copyright (C) 2019 Red Hat, Inc. # diff --git a/tests/qemu-iotests/263 b/tests/qemu-iotests/263 index d2c030fae9..54d009ce24 100755 --- a/tests/qemu-iotests/263 +++ b/tests/qemu-iotests/263 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test encrypted write that crosses cluster boundary of two unallocated clusters # Based on 188 diff --git a/tests/qemu-iotests/264 b/tests/qemu-iotests/264 index 879123a343..9ef7fe31de 100755 --- a/tests/qemu-iotests/264 +++ b/tests/qemu-iotests/264 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw # # Test nbd reconnect # diff --git a/tests/qemu-iotests/265 b/tests/qemu-iotests/265 index 00f2ec769e..f796361903 100755 --- a/tests/qemu-iotests/265 +++ b/tests/qemu-iotests/265 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test reverse-ordered qcow2 writes on a sub-cluster level # diff --git a/tests/qemu-iotests/266 b/tests/qemu-iotests/266 index 91bdf8729e..71ce81d0df 100755 --- a/tests/qemu-iotests/266 +++ b/tests/qemu-iotests/266 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test VPC and file image creation # diff --git a/tests/qemu-iotests/267 b/tests/qemu-iotests/267 index 3146273eef..4fd18fefdb 100755 --- a/tests/qemu-iotests/267 +++ b/tests/qemu-iotests/267 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick snapshot # # Test which nodes are involved in internal snapshots # diff --git a/tests/qemu-iotests/268 b/tests/qemu-iotests/268 index 78c3f4db3a..4fce2ef75f 100755 --- a/tests/qemu-iotests/268 +++ b/tests/qemu-iotests/268 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test write request with required alignment larger than the cluster size # diff --git a/tests/qemu-iotests/270 b/tests/qemu-iotests/270 index b9a12b908c..f49894149f 100755 --- a/tests/qemu-iotests/270 +++ b/tests/qemu-iotests/270 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw backing quick # # Test large write to a qcow2 image # diff --git a/tests/qemu-iotests/272 b/tests/qemu-iotests/272 index c2f782d47b..015347a0c9 100755 --- a/tests/qemu-iotests/272 +++ b/tests/qemu-iotests/272 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test compressed write to a qcow2 image at an offset above 4 GB # diff --git a/tests/qemu-iotests/273 b/tests/qemu-iotests/273 index 00ff79bcf8..e537c0be62 100755 --- a/tests/qemu-iotests/273 +++ b/tests/qemu-iotests/273 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: backing quick # # Test multiple blockdev-snapshot calls with 'backing': null # diff --git a/tests/qemu-iotests/277 b/tests/qemu-iotests/277 index a4ef1a38c6..9b0b2317c4 100755 --- a/tests/qemu-iotests/277 +++ b/tests/qemu-iotests/277 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test NBD client reconnection # diff --git a/tests/qemu-iotests/279 b/tests/qemu-iotests/279 index 75a4747e6b..2190adf995 100755 --- a/tests/qemu-iotests/279 +++ b/tests/qemu-iotests/279 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw backing quick # # Test qemu-img --backing-chain --image-opts # diff --git a/tests/qemu-iotests/280 b/tests/qemu-iotests/280 index 69288fdd0e..5a3fca906e 100755 --- a/tests/qemu-iotests/280 +++ b/tests/qemu-iotests/280 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw migration quick # # Copyright (C) 2019 Red Hat, Inc. # diff --git a/tests/qemu-iotests/281 b/tests/qemu-iotests/281 index 0bf973bca6..956698083f 100755 --- a/tests/qemu-iotests/281 +++ b/tests/qemu-iotests/281 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: rw quick # # Test cases for blockdev + IOThread interactions # diff --git a/tests/qemu-iotests/282 b/tests/qemu-iotests/282 index 081eb12080..dfc61a65a8 100755 --- a/tests/qemu-iotests/282 +++ b/tests/qemu-iotests/282 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw img quick # # Test qemu-img file cleanup for LUKS when using a non-UTF8 secret # diff --git a/tests/qemu-iotests/283 b/tests/qemu-iotests/283 index 55b7cff953..e0eefa685c 100755 --- a/tests/qemu-iotests/283 +++ b/tests/qemu-iotests/283 @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# group: auto quick # # Test for backup-top filter permission activation failure # diff --git a/tests/qemu-iotests/284 b/tests/qemu-iotests/284 index 071e89b33e..d0e46d064e 100755 --- a/tests/qemu-iotests/284 +++ b/tests/qemu-iotests/284 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw # # Test ref count checks on encrypted images # diff --git a/tests/qemu-iotests/286 b/tests/qemu-iotests/286 index f14445ba4a..1fd24d5f74 100755 --- a/tests/qemu-iotests/286 +++ b/tests/qemu-iotests/286 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # Test qemu-img snapshot -l # diff --git a/tests/qemu-iotests/288 b/tests/qemu-iotests/288 index 6c62065aef..47aca6592a 100755 --- a/tests/qemu-iotests/288 +++ b/tests/qemu-iotests/288 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: quick # # qemu-img measure tests for LUKS images # diff --git a/tests/qemu-iotests/289 b/tests/qemu-iotests/289 index 1c11d4030e..2710ce882b 100755 --- a/tests/qemu-iotests/289 +++ b/tests/qemu-iotests/289 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw quick # # qcow2 v3-exclusive error path testing # (026 tests paths common to v2 and v3) diff --git a/tests/qemu-iotests/290 b/tests/qemu-iotests/290 index 776b65e915..d3d004fb56 100755 --- a/tests/qemu-iotests/290 +++ b/tests/qemu-iotests/290 @@ -1,4 +1,5 @@ #!/usr/bin/env bash +# group: rw auto quick # # Test how 'qemu-io -c discard' behaves on v2 and v3 qcow2 images # From patchwork Tue Apr 21 07:35:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Sementsov-Ogievskiy X-Patchwork-Id: 284161 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C805C2BA19 for ; Tue, 21 Apr 2020 07:42:06 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 05DB42084D for ; Tue, 21 Apr 2020 07:42:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="qy5dQ+1F" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 05DB42084D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:52630 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQnXh-0005nZ-4S for qemu-devel@archiver.kernel.org; Tue, 21 Apr 2020 03:42:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39928) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQnSe-0006TD-CR for qemu-devel@nongnu.org; Tue, 21 Apr 2020 03:36:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQnSc-0007WB-Th for qemu-devel@nongnu.org; Tue, 21 Apr 2020 03:36:52 -0400 Received: from mail-db8eur05on2136.outbound.protection.outlook.com ([40.107.20.136]:58816 helo=EUR05-DB8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jQnSV-00073m-SM; Tue, 21 Apr 2020 03:36:44 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S/Yx1lnBL/l7aKc+oVWt7BMIR//kNAZRsG1HLL35U+kCHSvHpeDOUHIpnNX9elPxE/HaJupBDmf71xDdnJc4k30n+Q7efqcBbp8uwMzAXQX4K1v2JQhhar6JBG35zN5noMkVdMkL9waecISp1PrCcP0NSVdFRI6Rfeore/aVWoAVra5tuAd+GsJYhs3Pz90/LoXzW6KFH5QMvdQ9DugdiAnmBxKeTdrBB2S+SBLvRGaJyFkJlGNWzbgb/EkiKNxR+S5rgQZLE58gfmqAFvx1mq7tXaD1Gz2/LLxDs+DTm8LLNm1cCGNzc1neSEYOkaZjFaKZk1IFEyKIWMFuQjvvtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aqmcm+6C8aRnE8QN4csrd3KC2TSVAgQSiNqec//Qs5U=; b=gpH20xM1hvY3MueGUFkshDd5KcvD83P7y19OVjbaJ4ZRovPJkV189KLltqgMVczztCq+xfPj5bT86nAt1If48vxqsaFrciQ3zSbEj/58hsvLJeJNivactyL8j0L97cWYuExHlOBRbCNv4APhPc1XLF39UhxR35H5UkVZIWEld4tUXTZRN3d75QiVFFJcPMzVH2krsQrtwt4KZpS+4lnADeWSChGVv5s5bn+gtIS0JXovSr6AhJCTnd1qShMh/hOoQ6OqeSKUkw70k0l5YCjr4aSnuqke+8tRV8fk46KK7e7Yhyrl2DjQQXXajhLzSvtDUxJpQy/UrOi8WwswxHpy4g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aqmcm+6C8aRnE8QN4csrd3KC2TSVAgQSiNqec//Qs5U=; b=qy5dQ+1FdcGQYZskbaIGGqaU2wyfzthDi3biXUOxyK3gX5GcDN7DWYvk87SzO0X+spWnII9HhzTXojVTmt9UcN1g5IFpQSuFsNcCuxabMkSQ1TE3Wmb0lcL48Tm+M9ob4LwGT7BcagI1Z08F+BtYbBEnc7c1Pc7l2Kz27riLzbQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=vsementsov@virtuozzo.com; Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM7PR08MB5397.eurprd08.prod.outlook.com (2603:10a6:20b:dd::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.27; Tue, 21 Apr 2020 07:36:40 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::acfa:5:88c8:b7b9]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::acfa:5:88c8:b7b9%3]) with mapi id 15.20.2921.027; Tue, 21 Apr 2020 07:36:40 +0000 From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Subject: [PATCH v3 07/10] iotests: add testenv.py Date: Tue, 21 Apr 2020 10:35:58 +0300 Message-Id: <20200421073601.28710-8-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20200421073601.28710-1-vsementsov@virtuozzo.com> References: <20200421073601.28710-1-vsementsov@virtuozzo.com> X-ClientProxiedBy: AM3PR07CA0137.eurprd07.prod.outlook.com (2603:10a6:207:8::23) To AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (185.215.60.142) by AM3PR07CA0137.eurprd07.prod.outlook.com (2603:10a6:207:8::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.9 via Frontend Transport; Tue, 21 Apr 2020 07:36:40 +0000 X-Mailer: git-send-email 2.21.0 X-Originating-IP: [185.215.60.142] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0cfbd752-3bfa-4577-97e2-08d7e5c6bb5c X-MS-TrafficTypeDiagnostic: AM7PR08MB5397: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-Forefront-PRVS: 038002787A X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM7PR08MB5494.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10019020)(4636009)(39850400004)(346002)(396003)(376002)(136003)(366004)(36756003)(1076003)(6916009)(5660300002)(30864003)(6666004)(6512007)(186003)(4326008)(316002)(2616005)(956004)(16526019)(69590400007)(66556008)(66476007)(66946007)(26005)(2906002)(8936002)(8676002)(81156014)(6506007)(6486002)(478600001)(86362001)(52116002)(2004002); DIR:OUT; SFP:1102; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: olUFlbDMaswz6QfQnE5JBabFJc1Ze8OcrcW0DshTlSVFEYaXDfP8LHLKFEHPUN6MKxLHGdengKTIFbAkE6xsrCTuJAjmZLkWMWe4x56ZTl67CoBvy2/3TVhiQDnTFigvIdBh+oLGi2BkdZVb3xpYbAjIwrWVcLT4mkuXaJ1sR4P2rLT2UyIbdEJNj/uO8+8bZiHdlyWbzdEgVLG/5k7aJXJDB/fiOeMoTEvVgbZx0x3RKn5qlb4/vkUCaFC1opH1UfV52kOi1byikl3b6/VMI0RXTbydfJauSPplkWod4PuNDKc6E1eJ3y2p1MUZGNP2z8TfnR+fzUrxBFYRIQzsER4cJxB6LkKBbsy9KFKUAMmVTL0BGZErBBNQyEs3DH3T7wBeRXD2VcvgGYlSgzKICcc1nYXSUgnjwUuAOzMFz1IHeq9iHfl8GjSm9R/fL+CTrLydNO7vAzJTdqCE4tRUxt4ohtoqiq/aLVXDLsDrwxC4JB+FqyTB+JldWFhLqVlCLoQ7fzU0Uy0L8ly7wb0v6jqjckue3N/SRMTW80wt2uCn+4CBDizFax8YZWeGUY5/iI87wHe7niHCNcIFJwMnUjXP6rmpKV7zTSbfWAHmtEo= X-MS-Exchange-AntiSpam-MessageData: t+HmsL8MEJZJZTabImNF+mDd0CaozVdCTTLdAxCAEbu8cJ/BdDwgHwgTmNNvPPeSSLp4wtwIqrOA5Y0TD+uthlbPfQ9VQA6H9FFynAkx3C9xIAflBZe4JbYd8J1/cJ0GiNA0dp2LW7OPVr0OzeAB4A== X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0cfbd752-3bfa-4577-97e2-08d7e5c6bb5c X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2020 07:36:40.8884 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: c6IsrEnlp8Jtr+BU6RQfpgCTyv7U574NSaA8bCjBkG6Y1EdWcCnwR/lCC3JT13yMrR6whFJlDfa1sCgUBKtfSFihBFUVgLFTRJ3FwLtQCgc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5397 Received-SPF: pass client-ip=40.107.20.136; envelope-from=vsementsov@virtuozzo.com; helo=EUR05-DB8-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/21 03:36:40 X-ACL-Warn: Detected OS = Windows NT kernel [generic] [fuzzy] X-Received-From: 40.107.20.136 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: kwolf@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com, den@openvz.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Add TestEnv class, which will handle test environment in a new python iotests running framework. Difference with current ./check interface: - -v (verbose) option dropped, as it is unused - -xdiff option is dropped, until somebody complains that it is needed - same for -n option Signed-off-by: Vladimir Sementsov-Ogievskiy --- RFC question here: What about moving to classic double-dash long options (and short one-dash-one-letter options)? So, to convert -qcow2 --> -f qcow2 -misalign --> --misalign etc. This may be done later, or I can do it in next version, if all agree that it's good idea. tests/qemu-iotests/testenv.py | 332 ++++++++++++++++++++++++++++++++++ 1 file changed, 332 insertions(+) create mode 100755 tests/qemu-iotests/testenv.py diff --git a/tests/qemu-iotests/testenv.py b/tests/qemu-iotests/testenv.py new file mode 100755 index 0000000000..d1c2d41974 --- /dev/null +++ b/tests/qemu-iotests/testenv.py @@ -0,0 +1,332 @@ +#!/usr/bin/env python3 +# +# Parse command line options to manage test environment variables. +# +# Copyright (c) 2020 Virtuozzo International GmbH +# +# 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 . +# + +import os +import sys +import tempfile +from pathlib import Path +import shutil +import collections +import subprocess +import argparse + + +def get_default_machine(qemu_prog): + outp = subprocess.run([qemu_prog, '-machine', 'help'], check=True, + text=True, stdout=subprocess.PIPE).stdout + + machines = outp.split('\n') + default_machine = next(m for m in machines if m.endswith(' (default)')) + default_machine = default_machine.split(' ', 1)[0] + + alias_suf = ' (alias of {})'.format(default_machine) + alias = next((m for m in machines if m.endswith(alias_suf)), None) + if alias is not None: + default_machine = alias.split(' ', 1)[0] + + return default_machine + + +""" EnvVarDescriptor +name - variable name in upper case. +inherit - variable defaults to same variable from os.environ. +default - default value for the variable. None means absence by default. +help - description. Unused now, just in-place documentation. May take place in + help message at some point. +""" +EnvVarDescriptor = collections.namedtuple('EnvVarDescriptor', + ('name', 'inherit', 'default', + 'help')) + + +class TestEnv: + """ + Manage system environment for running tests + + The following variables are supported/provided. They are represented by + lower-cased TestEnv attributes. + """ + env_descriptors = [EnvVarDescriptor(*d) for d in ( + # name, inherit, default, description + + # Directories + ('TEST_DIR', True, os.path.join(os.getcwd(), 'scratch'), + 'directory for all intermediate test files'), + ('SOCK_DIR', True, None, 'directory for unix sockets'), + ('SAMPLE_IMG_DIR', True, None, 'TODO: ???'), + ('OUTPUT_DIR', False, os.getcwd(), 'TODO: ???'), + + # Binaries + ('PYTHON', False, '/usr/bin/python3 -B', 'python3 for bash tests'), + ('QEMU_PROG', True, None, 'qemu binary'), + ('QEMU_IMG_PROG', True, None, 'qemu-img binary'), + ('QEMU_IO_PROG', True, None, 'qemu-io binary'), + ('QEMU_NBD_PROG', True, None, 'qemu-nbd binary'), + ('SOCKET_SCM_HELPER', False, None, 'socket_scm_helper binary'), + + # Options for binaries + # RFC: Interesting, that only IMG and NBD options may be passed by + # user, QEMU and IO options are only calculated. Looks inconsistent. + ('QEMU_OPTIONS', False, None, 'qemu command line arguments'), + ('QEMU_IMG_OPTIONS', True, None, 'qemu command line arguments'), + ('QEMU_IO_OPTIONS', False, None, 'qemu command line arguments'), + ('QEMU_NBD_OPTIONS', True, None, 'qemu command line arguments'), + + ('IMGOPTS', False, None, 'options to pass to qemu-img create/convert'), + + ('IMGFMT', False, 'raw', 'image format, set by cmdline'), + ('IMGPROTO', False, 'file', 'image protocol, set by cmdline'), + ('AIOMODE', False, 'threads', 'image protocol, set by cmdline'), + ('CACHEMODE', False, 'writeback', 'cache mode, set by cmdline'), + + ('VALGRIND_QEMU', False, None, 'use valgrind, set by cmdline'), + + # Helping variables, not passed by user, only calculated + ('CACHEMODE_IS_DEFAULT', False, None, + 'cache mode was not set by user'), + ('IMGFMT_GENERIC', False, None, 'TODO: ???'), + ('IMGOPTSSYNTAX', False, None, 'TODO: ???'), + ('IMGKEYSECRET', False, None, 'TODO: ???'), + ('QEMU_DEFAULT_MACHINE', False, None, 'TODO: ???'), + )] + + @staticmethod + def create_argparser(): + p = argparse.ArgumentParser(description="Test environment preparation", + add_help=False, usage=argparse.SUPPRESS) + + p.add_argument('-d', dest='debug', action='store_true', help='debug') + p.add_argument('-misalign', action='store_true', + help='misalign memory allocations') + + format_list = ['raw', 'bochs', 'parallels', 'qcow', 'qcow2', 'qed', + 'vdi', 'vpc', 'vhdx', 'vmdk', 'luks', 'dmg'] + g = p.add_argument_group( + 'image format options', + 'The following options sets IMGFMT environment variable. ' + 'At most one chose is allowed, default is "raw"') + g = g.add_mutually_exclusive_group() + for fmt in format_list: + g.add_argument('-' + fmt, dest='imgfmt', action='store_const', + const=fmt) + + protocol_list = ['file', 'rbd', 'sheepdoc', 'nbd', 'ssh', 'nfs', + 'vxhs'] + g = p.add_argument_group( + 'image protocol options', + 'The following options sets IMGPROTO environment variably. ' + 'At most one chose is allowed, default is "file"') + g = g.add_mutually_exclusive_group() + for prt in protocol_list: + g.add_argument('-' + prt, dest='imgproto', action='store_const', + const=prt) + + g = p.add_mutually_exclusive_group() + g.add_argument('-nocache', dest='cachemode', action='store_const', + const='none', help='set cache mode "none" (O_DIRECT), ' + 'sets CACHEMODE environment variable') + g.add_argument('-c', dest='cachemode', + help='sets CACHEMODE environment variable') + + p.add_argument('-i', dest='aiomode', default='threads', + help='sets AIOMODE environment variable') + + g = p.add_argument_group('bash tests options', + 'The following options are ignored by ' + 'python tests. TODO: support them in ' + 'iotests.py') + g.add_argument('-o', dest='imgopts', + help='options to pass to qemu-img create/convert, sets ' + 'IMGOPTS environment variable') + p.add_argument('-valgrind', dest='VALGRIND_QEMU', action='store_const', + const='y', help='use valgrind, sets VALGRIND_QEMU ' + 'environment variable') + + return p + + argparser = create_argparser.__func__() + + def __contains__(self, item): + return hasattr(self, item) + + def __setitem__(self, key, value): + setattr(self, key, value) + + def __getitem__(self, key): + return getattr(self, key) + + def setdefault(self, attr, value): + if attr not in self: + self[attr] = value + + def init_paths(self): + self.build_iotests = os.getcwd() + + if os.path.islink(sys.argv[0]): + # called from the build tree + self.source_iotests = os.path.dirname(os.readlink(sys.argv[0])) + else: + self.source_iotests = self.build_iotests + + self.build_root = os.path.join(self.build_iotests, '..', '..') + + def init_handle_argv(self, argv): + self.args, self.remaining_argv = self.argparser.parse_known_args(argv) + + for k, v in vars(self.args).items(): + if v is not None: + self[k] = v + + def init_handle_env_descriptors(self): + for d in self.env_descriptors: + if d.name.lower() in self: + continue # set by command line argument + + if d.inherit and d.name in os.environ: + self[d.name.lower()] = os.environ[d.name] + elif d.default is not None: + self[d.name.lower()] = d.default + + def init_find_binaries(self): + self.setdefault('qemu_img_prog', + os.path.join(self.build_root, 'qemu-img')) + self.setdefault('qemu_io_prog', + os.path.join(self.build_root, 'qemu-io')) + self.setdefault('qemu_nbd_prog', + os.path.join(self.build_root, 'qemu-nbd')) + + if 'qemu_prog' not in self: + arch = os.uname().machine + if 'ppc64' in arch: + arch = 'ppc64' + self.qemu_prog = os.path.join(self.build_root, arch + '-softmmu', + 'qemu-system-' + arch) + + for b in [self.qemu_img_prog, self.qemu_io_prog, self.qemu_nbd_prog, + self.qemu_prog]: + if not os.path.exists(b): + exit('Not such file: ' + b) + if not os.access(b, os.X_OK): + exit('Not executable: ' + b) + + helper_path = os.path.join(self.build_iotests, 'socket_scm_helper') + if os.access(helper_path, os.X_OK): + self.socket_scm_helper = helper_path + + def __init__(self, argv): + """ Parse args and environment """ + + self.init_paths() + self.init_handle_argv(argv) + + self.cachemode_is_default = 'false' if 'cachemode' in self else 'true' + + self.init_handle_env_descriptors() + self.init_find_binaries() + + self.imgfmt_generic = self.imgfmt not in ['bochs', 'cloop', 'dmg'] + self.imgfmt_generic = 'true' if self.imgfmt_generic else 'false' + + self.qemu_io_options = f'--cache {self.cachemode} --aio {self.aiomode}' + if self.misalign: + self.qemu_io_options += ' --misalign' + + self.qemu_io_options_no_fmt = self.qemu_io_options + + if self.imgfmt == 'luks': + self.imgoptssyntax = 'true' + self.imgkeysecret = '123456' + if 'imgopts' not in self: + self.imgopts = 'iter-time=10' + elif 'iter-time=' not in self.imgopts: + self.imgopts += ',iter-time=10' + else: + self.imgoptssyntax = 'false' + self.qemu_io_options += ' -f ' + self.imgfmt + + self.qemu_options = '-nodefaults -display none -accel qtest' + if self.qemu_prog.endswith(('qemu-system-arm', 'qemu-system-aarch64')): + self.qemu_options += ' -machine virt' + elif self.qemu_prog.endswith('qemu-system-tricore'): + self.qemu_options += ' -machine tricore_testboard' + + self.setdefault('sample_img_dir', + os.path.join(self.source_iotests, 'sample_images')) + + self.qemu_default_machine = get_default_machine(self.qemu_prog) + + self.tmp_sock_dir = False + if 'sock_dir' not in self: + self.sock_dir = tempfile.mkdtemp() + self.tmp_sock_dir = True + + for d in (self.test_dir, self.sock_dir): + Path(d).mkdir(parents=True, exist_ok=True) + + def close(self): + if self.tmp_sock_dir: + shutil.rmtree(self.sock_dir) + + def __enter__(self): + return self + + def __exit__(self, *args): + self.close() + + def get_env(self): + env = {} + for d in self.env_descriptors: + if d.name.lower() in self: + env[d.name] = self[d.name.lower()] + + return env + + def print_env(self): + template = """\ +QEMU -- "{QEMU_PROG}" {QEMU_OPTIONS} +QEMU_IMG -- "{QEMU_IMG_PROG}" {QEMU_IMG_OPTIONS} +QEMU_IO -- "{QEMU_IO_PROG}" {QEMU_IO_OPTIONS} +QEMU_NBD -- "{QEMU_NBD_PROG}" {QEMU_NBD_OPTIONS} +IMGFMT -- {IMGFMT}{imgopts} +IMGPROTO -- {IMGPROTO} +PLATFORM -- {platform} +TEST_DIR -- {TEST_DIR} +SOCK_DIR -- {SOCK_DIR} +SOCKET_SCM_HELPER -- {SOCKET_SCM_HELPER}""" + + args = collections.defaultdict(str, self.get_env()) + + if 'IMGOPTS' in args: + args['imgopts'] = ' (' + args['IMGOPTS'] + ')' + + u = os.uname() + args['platform'] = f'{u.sysname}/{u.machine} {u.nodename} {u.release}' + + print(template.format_map(args)) + + +if __name__ == '__main__': + if len(sys.argv) == 2 and sys.argv[1] in ['-h', '--help']: + TestEnv.argparser.print_help() + exit() + + with TestEnv(sys.argv) as te: + te.print_env() + print('\nUnhandled options: ', te.remaining_argv) From patchwork Tue Apr 21 07:35:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Sementsov-Ogievskiy X-Patchwork-Id: 284163 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E99E1C2BA19 for ; Tue, 21 Apr 2020 07:38:55 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A26282073A for ; Tue, 21 Apr 2020 07:38:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="TMKC7yRE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A26282073A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:52562 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQnUc-0000dF-Mf for qemu-devel@archiver.kernel.org; Tue, 21 Apr 2020 03:38:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39910) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQnSd-0006RM-Kj for qemu-devel@nongnu.org; Tue, 21 Apr 2020 03:36:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQnSa-0007TE-Uv for qemu-devel@nongnu.org; Tue, 21 Apr 2020 03:36:51 -0400 Received: from mail-eopbgr60110.outbound.protection.outlook.com ([40.107.6.110]:39054 helo=EUR04-DB3-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jQnSX-0007DY-Ov; Tue, 21 Apr 2020 03:36:45 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H+alcGCY2LNPVfa09uy0y+O9VP4C2+IssEwxps+Hz+ilS6Y4Tp+x5ZDT6bqnvr8SvTU/1WSKkZr2n71C1zsaf8XlVZjYXQ87MfHMk5xEFQtn4cMD8MRlVQeCHux7KjmHbk7Eo01c0fPeFiQqf6iSTYOOzu1Ovw7MzLcNzmgeD/M9XiYrIu25x3M+2B3F/eeL0hEk4UUZGqqANpaPqZDscRIYvK07vgwgETVtoGbFGHLaaPThPIyuKAAXkl9Sh/iytKJjXsy0yrwVlcDcbxG+wFX6VKCO2yCgMGa8DIjWOJjrQR49CYSyFoclxmLI21YHt0iT7E2iuuBpb8CuozaE0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=m7qXc0mBRMxF3klrxWdsWu5jeW783gCTlOQq9zWOV4Q=; b=PGJj+gu1IGVjsLBsonG8nSyoF+ElZ6Nv9hk4v1zsUqI4x27stkdRTbwiuHYcCjogU72qJ1gzdJqoLe7cmkwUj5frEW1yL6ZUApl0US0yL/3oc0Od66OIOtKdvVKuOAqeDst733tyW6l1w0ZtWzQhKzK+APxBToKn9rpswfGm8dAChkTD0Nfhq6JkUW8jjcBlSvFxIMRzDb1daUhCZ+q9NOgGJt+jtnFVO1n9J+JHRdXKC1l4z+/5ObdxAHL3ZelDfWsoTtQpU19Qpi22tuFg+iGjSGyF0/qd012NILHxSOqxTKjk3yxrZdAB6d0+hkHVxSVLRSKI3ZICJ0jRpfeUKQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=m7qXc0mBRMxF3klrxWdsWu5jeW783gCTlOQq9zWOV4Q=; b=TMKC7yRE8fLsE4XJosDjQcA1CGVM8FjyVU5DqH3bQilqHxXvmG50gSHoQ12mLKGA/4VC7SC4eNlwUC3UvkgzsgOtbgKwVWwXD5QfbRh1GlLPem2FVXs8MgEWQaEvpP0vjGMK1cJAfHLKmcZJ9w4C2pV6XfADmh5x6PDlvSinygc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=vsementsov@virtuozzo.com; Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM7PR08MB5351.eurprd08.prod.outlook.com (2603:10a6:20b:dc::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.28; Tue, 21 Apr 2020 07:36:42 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::acfa:5:88c8:b7b9]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::acfa:5:88c8:b7b9%3]) with mapi id 15.20.2921.027; Tue, 21 Apr 2020 07:36:42 +0000 From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Subject: [PATCH v3 08/10] iotests: add testrunner.py Date: Tue, 21 Apr 2020 10:35:59 +0300 Message-Id: <20200421073601.28710-9-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20200421073601.28710-1-vsementsov@virtuozzo.com> References: <20200421073601.28710-1-vsementsov@virtuozzo.com> X-ClientProxiedBy: AM3PR07CA0137.eurprd07.prod.outlook.com (2603:10a6:207:8::23) To AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (185.215.60.142) by AM3PR07CA0137.eurprd07.prod.outlook.com (2603:10a6:207:8::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.9 via Frontend Transport; Tue, 21 Apr 2020 07:36:41 +0000 X-Mailer: git-send-email 2.21.0 X-Originating-IP: [185.215.60.142] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3ebc4476-2f33-4459-afe9-08d7e5c6bbfe X-MS-TrafficTypeDiagnostic: AM7PR08MB5351: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5236; X-Forefront-PRVS: 038002787A X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM7PR08MB5494.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10019020)(4636009)(136003)(366004)(39850400004)(346002)(396003)(376002)(8676002)(6666004)(66476007)(8936002)(316002)(6512007)(6486002)(86362001)(1076003)(52116002)(69590400007)(956004)(5660300002)(2616005)(6916009)(81156014)(26005)(2906002)(6506007)(66946007)(186003)(66556008)(478600001)(16526019)(4326008)(36756003)(2004002); DIR:OUT; SFP:1102; Received-SPF: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UmNqMVc4bVkDQaMHo2NuXsDJeTe3uqQtWRNa72JyQD+FocqKjZd4uB5Pc66CEj90EdntDiTAmvrVzfg1FC2+vjbmPIcB1YcmiyDb1O2laEBxzolP3WfvBNimJ+gNASUhfO5OqK8aebNTvI87IPKy93pGclcd2uGOlbvh4WFYRHC9XcyqzKX/dCImbO8PDrSA6hy64RfN7IGTCS1HSXQpEzWZsfRg1zkpEHtbKWYCutQlun5gb7DXS+SNpsTx7MKwSygwMNHzjT41N1UNlr2k7M2dsnOm/gUlNO24HL5hx4B4OI2cDSsS9svsAvZ96056Nd3FJowh19iz7ufaveyIpzHPlXpkXg1ixJNpRu+v8Y4VOfdO99vTl5wCHyp+w/Vl5zVNeWbekBQdpnGldIP1Z7EAmHCLyh+ejf8FX9FGKaWh4xTxWZKBextAKOC7CsTborDIqO4Mi0oX60hnPWGVyr4lyRoWN5KvzZbr0XvSxNxYrK4cf5OHwYQ0YysQkukvwzCyxG4u3joYG+Cx+gLWZnmN9u+I03u1Z2S/3yfy37zbNRMN3oEUKiDL3cZpfZKkRxTU8unwxpkvTIKU59tXABOJPzcKjdooGGtuI514Q50= X-MS-Exchange-AntiSpam-MessageData: grzO3Rd9mgKd1r7EoSd3UNdx219HKHxoYwaHAnYRcjfPU0bMM76hIsM8271Nzv5JanrK2M7mQdC0hOldEWRIQxkYbG1NBbZi2BUo4mX+lDrLmiuk+r/KhUdBANoUZAb5XNxZGTLhyshkkab4wq/U7A== X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ebc4476-2f33-4459-afe9-08d7e5c6bbfe X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2020 07:36:41.9208 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1EE6fCepOQoFSIb9xFcWXwvrPBPLDo8QOmXuBRuytsW9sZy/kAmus7uRgJIH0fkjgzvyT41UxzOEdiS7gB97VL3lY34M+SxqqWS/gS3W5q8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5351 Received-SPF: pass client-ip=40.107.6.110; envelope-from=vsementsov@virtuozzo.com; helo=EUR04-DB3-obe.outbound.protection.outlook.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/21 03:36:42 X-ACL-Warn: Detected OS = Windows 7 or 8 [fuzzy] X-Received-From: 40.107.6.110 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: kwolf@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com, den@openvz.org Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Add TestRunner class, which will run tests in a new python iotests running framework. There are some differences with current ./check behavior, most significant are: - Consider all tests self-executable, just run them, don't run python by hand. - Elapsed time is cached in json file - Elapsed time precision increased a bit - use python difflib instead of "diff -w", to ignore spaces at line ends strip lines by hand. Do not ignore other spaces. Signed-off-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/testrunner.py | 334 +++++++++++++++++++++++++++++++ 1 file changed, 334 insertions(+) create mode 100644 tests/qemu-iotests/testrunner.py diff --git a/tests/qemu-iotests/testrunner.py b/tests/qemu-iotests/testrunner.py new file mode 100644 index 0000000000..bb9bbe304b --- /dev/null +++ b/tests/qemu-iotests/testrunner.py @@ -0,0 +1,334 @@ +# Class for actual tests running. +# +# Copyright (c) 2020 Virtuozzo International GmbH +# +# 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 . +# + +import os +import random +from pathlib import Path +import datetime +import time +import difflib +import subprocess +import collections +import contextlib +import json +import argparse + +from testenv import TestEnv + + +def silent_unlink(path: Path): + try: + path.unlink() + except OSError: + pass + + +def file_diff(file1, file2): + with open(file1) as f1, open(file2) as f2: + # We want to ignore spaces at line ends. There are a lot of mess about + # it in iotests. + # TODO: fix all tests to not produce extra spaces, fix all .out files + # and use strict diff here! + seq1 = [line.rstrip() for line in f1] + seq2 = [line.rstrip() for line in f2] + return list(difflib.unified_diff(seq1, seq2, file1, file2)) + + +class LastElapsedTime: + """ Cache for elapsed time for tests, to show it during new test run + + Use get() in any time. But, if use update you should then call save(), + or use update() inside with-block. + """ + def __init__(self, cache_file, env): + self.env = env + self.cache_file = cache_file + + try: + with open(cache_file) as f: + self.cache = json.load(f) + except (OSError, ValueError): + self.cache = {} + + def get(self, test, default=None): + if test not in self.cache: + return default + + if self.env.imgproto not in self.cache[test]: + return default + + return self.cache[test][self.env.imgproto].get(self.env.imgfmt, + default) + + def update(self, test, elapsed): + d = self.cache.setdefault(test, {}) + d = d.setdefault(self.env.imgproto, {}) + d[self.env.imgfmt] = elapsed + + def save(self): + with open(self.cache_file, 'w') as f: + json.dump(self.cache, f) + + def __enter__(self): + return self + + def __exit__(self, type, value, traceback): + self.save() + + +TestResult = collections.namedtuple( + 'TestResult', + ['status', 'description', 'elapsed', 'diff', 'casenotrun'], + defaults=('', '', '', '')) + + +class TestRunner: + @staticmethod + def colored_status(status): + if status == 'pass': + col = '\033[32m' + elif status == 'fail': + col = '\033[1m\033[31m' + elif status == 'not run': + col = '\033[33m' + else: + col = '' + + return col + status + '\033[0m' + + @staticmethod + def create_argparser(): + p = argparse.ArgumentParser(description="Run tests", + add_help=False, usage=argparse.SUPPRESS) + + p.add_argument('-makecheck', action='store_true', + help='pretty print output for make check') + + return p + + argparser = create_argparser.__func__() + + def __init__(self, argv, env: TestEnv): + self.env = env + self.test_run_env = self.env.get_env() + if 'MALLOC_PERTURB_' not in os.environ and \ + 'MALLOC_PERTURB_' not in self.test_run_env: + x = random.randrange(1, 255) + self.test_run_env['MALLOC_PERTURB_'] = str(x) + + args, self.remaining_argv = self.argparser.parse_known_args(argv) + self.makecheck = args.makecheck + + self.last_elapsed = LastElapsedTime('.last-elapsed-cache', env) + + def __enter__(self): + self._stack = contextlib.ExitStack() + self._stack.enter_context(self.env) + self._stack.enter_context(self.last_elapsed) + return self + + def __exit__(self, *args): + self._stack.close() + + def test_print_one_line(self, test, starttime, endtime=None, status='...', + lasttime=None, thistime=None, description='', + test_field_width=None, end='\n'): + """ Print short test info before/after test run """ + test = os.path.basename(test) + + if test_field_width is None: + test_field_width = 8 + + if self.makecheck and status != '...': + if status and status != 'pass': + status = f' [{status}]' + else: + status = '' + + print(f' TEST iotest-{self.env.imgfmt}: {test}{status}') + return + + if lasttime: + lasttime = f' (last: {lasttime}s)' + else: + lasttime = '' + if thistime: + thistime = f'{thistime:.1f}s' + else: + thistime = '...' + + if endtime: + endtime = f'[{endtime}]' + else: + endtime = '' + + if status == 'pass': + col = '\033[32m' + elif status == 'fail': + col = '\033[1m\033[31m' + elif status == 'not run': + col = '\033[33m' + else: + col = '' + + col_end = '\033[0m' + + print(f'{test:{test_field_width}} {col}{status:10}{col_end} ' + f'[{starttime}] {endtime:13}{thistime:5} {lasttime:14} ' + f'{description}', end=end) + + def find_reference(self, test): + if self.env.cachemode == 'none': + ref = f'{test}.out.nocache' + if os.path.isfile(ref): + return ref + + ref = f'{test}.out.{self.env.imgfmt}' + if os.path.isfile(ref): + return ref + + ref = f'{test}.{self.env.qemu_default_machine}.out' + if os.path.isfile(ref): + return ref + + return f'{test}.out' + + def do_run_test(self, test): + f_test = Path(test) + f_bad = Path(f_test.name + '.out.bad') + f_notrun = Path(f_test.name + '.notrun') + f_casenotrun = Path(f_test.name + '.casenotrun') + f_reference = Path(self.find_reference(test)) + + if not f_test.exists(): + return TestResult(status='fail', + description=f'No such test file: {f_test}') + + if not os.access(str(f_test), os.X_OK): + exit(f'Not executable: {f_test}') + + if not f_reference.exists(): + return TestResult(status='fail', + description='No qualified output ' + f'(expected {f_reference})') + + for f in (f_bad, f_notrun, f_casenotrun): + silent_unlink(f) + + args = [str(f_test.resolve())] + if self.env.debug: + args.append('-d') + + env = os.environ.copy() + env.update(self.test_run_env) + + t0 = time.time() + with f_bad.open('w') as f: + ret = subprocess.run(args, cwd=str(f_test.parent), env=env, + stdout=f, stderr=subprocess.STDOUT).returncode + elapsed = round(time.time() - t0, 1) + + if ret != 0: + return TestResult(status='fail', elapsed=elapsed, + description=f'failed, exit status {ret}', + diff=file_diff(str(f_reference), str(f_bad))) + + if f_notrun.exists(): + return TestResult(status='not run', elapsed=elapsed, + description=f_notrun.read_text().strip()) + + casenotrun = False + if f_casenotrun.exists(): + casenotrun = f_casenotrun.read_text() + + diff = file_diff(str(f_reference), str(f_bad)) + if diff: + return TestResult(status='fail', elapsed=elapsed, + description='output mismatch (see {f_bad})', + diff=diff, casenotrun=casenotrun) + else: + f_bad.unlink() + self.last_elapsed.update(test, elapsed) + return TestResult(status='pass', elapsed=elapsed, + casenotrun=casenotrun) + + def run_test(self, test, test_field_width=None): + last_el = self.last_elapsed.get(test) + start = datetime.datetime.now().strftime('%H:%M:%S') + + self.test_print_one_line(test=test, starttime=start, lasttime=last_el, + end='\r', test_field_width=test_field_width) + + res = self.do_run_test(test) + + end = datetime.datetime.now().strftime('%H:%M:%S') + self.test_print_one_line(test=test, status=res.status, + starttime=start, endtime=end, + lasttime=last_el, thistime=res.elapsed, + description=res.description, + test_field_width=test_field_width) + + if res.casenotrun: + print(res.casenotrun) + + return res + + def run_tests(self, tests): + n_run = 0 + failed = [] + notrun = [] + casenotrun = [] + + if not self.makecheck: + self.env.print_env() + print() + + test_field_width = max(len(os.path.basename(t)) for t in tests) + 2 + + for t in tests: + name = os.path.basename(t) + res = self.run_test(t, test_field_width=test_field_width) + + assert res.status in ('pass', 'fail', 'not run') + + if res.casenotrun: + casenotrun.append(t) + + if res.status != 'not run': + n_run += 1 + + if res.status == 'fail': + failed.append(name) + if self.makecheck: + self.env.print_env() + if res.diff: + print('\n'.join(res.diff)) + elif res.status == 'not run': + notrun.append(name) + + if notrun: + print('Not run:', ' '.join(notrun)) + + if casenotrun: + print('Some cases not run in:', ' '.join(notrun)) + + if failed: + print('Failures:', ' '.join(failed)) + print(f'Failed {len(failed)} of {n_run} iotests') + else: + print(f'Passed all {n_run} iotests')