From patchwork Sat Nov 1 17:02:27 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Marc_Mar=C3=AD?= X-Patchwork-Id: 405800 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 367AA1400B6 for ; Sun, 2 Nov 2014 04:06:41 +1100 (AEDT) Received: from localhost ([::1]:53181 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xkc8N-0002f3-8g for incoming@patchwork.ozlabs.org; Sat, 01 Nov 2014 13:06:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40864) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xkc5m-0006k0-IF for qemu-devel@nongnu.org; Sat, 01 Nov 2014 13:04:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xkc5Z-0000u8-18 for qemu-devel@nongnu.org; Sat, 01 Nov 2014 13:03:58 -0400 Received: from mail-wi0-x22f.google.com ([2a00:1450:400c:c05::22f]:39858) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xkc5Y-0000to-O0 for qemu-devel@nongnu.org; Sat, 01 Nov 2014 13:03:44 -0400 Received: by mail-wi0-f175.google.com with SMTP id ex7so3512998wid.2 for ; Sat, 01 Nov 2014 10:03:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; bh=lDtgTFFWbYR+55hOH55jpeYXBb9KcHZ4+Nc2FAI+fh4=; b=sJYVULfoHP1gEUapc83lKvTdAwcr2X5WOmUcHAsUIttwUSIEy3F3yRMuw2pEodWTrQ nNKuZFRpztNa8tCc4Pqw9P6vbnUYPPC/b2rXdvVtRUYtNLLOWY7OWySVbN6rP4nkFq4z NEuDeYNsKl2V+ix3ZSTirsq7Iw+IAKZQPJ10YYdTRuVj8fAzid74KowhthvzyaUFHBuq nO1dxl5d88Drh08Ns5roM/I/9cJ/Q8t5HgpRuiviR1EAF5xRbNX5Dxr2WtnrOiuI2BjT QqqqbC/XU/sNiCPMhVBMbnw1pFdHhZnvi1sPX6nOnwzXqDnY5+uFFxqEWSz9H/+SwgP/ t+NA== X-Received: by 10.194.184.140 with SMTP id eu12mr18429046wjc.47.1414861423901; Sat, 01 Nov 2014 10:03:43 -0700 (PDT) Received: from localhost.localdomain ([80.31.85.60]) by mx.google.com with ESMTPSA id q10sm15882205wjq.35.2014.11.01.10.03.41 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 01 Nov 2014 10:03:43 -0700 (PDT) From: =?UTF-8?q?Marc=20Mar=C3=AD?= To: qemu-devel@nongnu.org Date: Sat, 1 Nov 2014 18:02:27 +0100 Message-Id: <1414861350-13099-3-git-send-email-marc.mari.barcelo@gmail.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1414861350-13099-1-git-send-email-marc.mari.barcelo@gmail.com> References: <1414861350-13099-1-git-send-email-marc.mari.barcelo@gmail.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:400c:c05::22f Cc: =?UTF-8?q?Marc=20Mar=C3=AD?= , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Stefan Hajnoczi Subject: [Qemu-devel] [PATCH v2 2/5] tests: Prepare virtio-blk-test for multi-arch implementation X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Modularize functions in virtio-blk-test and add PCI suffix for PCI specific components. Signed-off-by: Marc MarĂ­ --- tests/virtio-blk-test.c | 57 +++++++++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/tests/virtio-blk-test.c b/tests/virtio-blk-test.c index 33e8094..6f07d5a 100644 --- a/tests/virtio-blk-test.c +++ b/tests/virtio-blk-test.c @@ -55,11 +55,11 @@ typedef struct QVirtioBlkReq { uint8_t status; } QVirtioBlkReq; -static QPCIBus *test_start(void) +static char *drive_create(void) { - char *cmdline; - char tmp_path[] = "/tmp/qtest.XXXXXX"; int fd, ret; + char *tmp_path = malloc(18); + strncpy(tmp_path, "/tmp/qtest.XXXXXX", 18); /* Create a temporary raw image */ fd = mkstemp(tmp_path); @@ -68,6 +68,16 @@ static QPCIBus *test_start(void) g_assert_cmpint(ret, ==, 0); close(fd); + return tmp_path; +} + +static QPCIBus *pci_test_start(void) +{ + char *cmdline; + char *tmp_path; + + tmp_path = drive_create(); + cmdline = g_strdup_printf("-drive if=none,id=drive0,file=%s " "-drive if=none,id=drive1,file=/dev/null " "-device virtio-blk-pci,id=drv0,drive=drive0," @@ -85,7 +95,7 @@ static void test_end(void) qtest_end(); } -static QVirtioPCIDevice *virtio_blk_init(QPCIBus *bus, int slot) +static QVirtioPCIDevice *virtio_blk_pci_init(QPCIBus *bus, int slot) { QVirtioPCIDevice *dev; @@ -150,9 +160,9 @@ static void pci_basic(void) uint8_t status; char *data; - bus = test_start(); + bus = pci_test_start(); - dev = virtio_blk_init(bus, PCI_SLOT); + dev = virtio_blk_pci_init(bus, PCI_SLOT); /* MSI-X is not enabled */ addr = dev->addr + QVIRTIO_DEVICE_SPECIFIC_NO_MSIX; @@ -276,8 +286,10 @@ static void pci_basic(void) /* End test */ guest_free(alloc, vqpci->vq.desc); + pc_alloc_uninit(alloc); qvirtio_pci_device_disable(dev); g_free(dev); + qpci_free_pc(bus); test_end(); } @@ -297,9 +309,9 @@ static void pci_indirect(void) uint8_t status; char *data; - bus = test_start(); + bus = pci_test_start(); - dev = virtio_blk_init(bus, PCI_SLOT); + dev = virtio_blk_pci_init(bus, PCI_SLOT); /* MSI-X is not enabled */ addr = dev->addr + QVIRTIO_DEVICE_SPECIFIC_NO_MSIX; @@ -376,8 +388,10 @@ static void pci_indirect(void) /* End test */ guest_free(alloc, vqpci->vq.desc); + pc_alloc_uninit(alloc); qvirtio_pci_device_disable(dev); g_free(dev); + qpci_free_pc(bus); test_end(); } @@ -389,9 +403,9 @@ static void pci_config(void) void *addr; uint64_t capacity; - bus = test_start(); + bus = pci_test_start(); - dev = virtio_blk_init(bus, PCI_SLOT); + dev = virtio_blk_pci_init(bus, PCI_SLOT); /* MSI-X is not enabled */ addr = dev->addr + QVIRTIO_DEVICE_SPECIFIC_NO_MSIX; @@ -412,6 +426,7 @@ static void pci_config(void) qvirtio_pci_device_disable(dev); g_free(dev); + qpci_free_pc(bus); test_end(); } @@ -431,10 +446,10 @@ static void pci_msix(void) uint8_t status; char *data; - bus = test_start(); + bus = pci_test_start(); alloc = pc_alloc_init(); - dev = virtio_blk_init(bus, PCI_SLOT); + dev = virtio_blk_pci_init(bus, PCI_SLOT); qpci_msix_enable(dev->pdev); qvirtio_pci_set_msix_configuration_vector(dev, alloc, 0); @@ -520,10 +535,12 @@ static void pci_msix(void) guest_free(alloc, req_addr); /* End test */ - guest_free(alloc, (uint64_t)vqpci->vq.desc); + guest_free(alloc, vqpci->vq.desc); + pc_alloc_uninit(alloc); qpci_msix_disable(dev->pdev); qvirtio_pci_device_disable(dev); g_free(dev); + qpci_free_pc(bus); test_end(); } @@ -542,10 +559,10 @@ static void pci_idx(void) uint8_t status; char *data; - bus = test_start(); + bus = pci_test_start(); alloc = pc_alloc_init(); - dev = virtio_blk_init(bus, PCI_SLOT); + dev = virtio_blk_pci_init(bus, PCI_SLOT); qpci_msix_enable(dev->pdev); qvirtio_pci_set_msix_configuration_vector(dev, alloc, 0); @@ -643,24 +660,26 @@ static void pci_idx(void) /* End test */ guest_free(alloc, vqpci->vq.desc); + pc_alloc_uninit(alloc); qpci_msix_disable(dev->pdev); qvirtio_pci_device_disable(dev); g_free(dev); + qpci_free_pc(bus); test_end(); } -static void hotplug(void) +static void pci_hotplug(void) { QPCIBus *bus; QVirtioPCIDevice *dev; - bus = test_start(); + bus = pci_test_start(); /* plug secondary disk */ qpci_plug_device_test("virtio-blk-pci", "drv1", PCI_SLOT_HP, "'drive': 'drive1'"); - dev = virtio_blk_init(bus, PCI_SLOT_HP); + dev = virtio_blk_pci_init(bus, PCI_SLOT_HP); g_assert(dev); qvirtio_pci_device_disable(dev); g_free(dev); @@ -681,7 +700,7 @@ int main(int argc, char **argv) g_test_add_func("/virtio/blk/pci/config", pci_config); g_test_add_func("/virtio/blk/pci/msix", pci_msix); g_test_add_func("/virtio/blk/pci/idx", pci_idx); - g_test_add_func("/virtio/blk/pci/hotplug", hotplug); + g_test_add_func("/virtio/blk/pci/hotplug", pci_hotplug); ret = g_test_run();