Show a cover letter.

GET /api/covers/812493/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 812493,
    "url": "http://patchwork.ozlabs.org/api/covers/812493/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20170911172022.4738-1-eblake@redhat.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170911172022.4738-1-eblake@redhat.com>",
    "list_archive_url": null,
    "date": "2017-09-11T17:19:44",
    "name": "[v7,00/38] Preliminary libqtest cleanups",
    "submitter": {
        "id": 6591,
        "url": "http://patchwork.ozlabs.org/api/people/6591/?format=api",
        "name": "Eric Blake",
        "email": "eblake@redhat.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/cover/20170911172022.4738-1-eblake@redhat.com/mbox/",
    "series": [
        {
            "id": 2534,
            "url": "http://patchwork.ozlabs.org/api/series/2534/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=2534",
            "date": "2017-09-11T17:19:47",
            "name": "Preliminary libqtest cleanups",
            "version": 7,
            "mbox": "http://patchwork.ozlabs.org/series/2534/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/812493/comments/",
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)",
            "ext-mx05.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com",
            "ext-mx05.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=eblake@redhat.com"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xrZxH5sl8z9s83\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 12 Sep 2017 03:41:55 +1000 (AEST)",
            "from localhost ([::1]:59433 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1drSiX-0000VW-P3\n\tfor incoming@patchwork.ozlabs.org; Mon, 11 Sep 2017 13:41:53 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:38085)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <eblake@redhat.com>) id 1drSNs-0006pt-Nb\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 13:20:34 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <eblake@redhat.com>) id 1drSNo-0000vs-AR\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 13:20:32 -0400",
            "from mx1.redhat.com ([209.132.183.28]:41580)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <eblake@redhat.com>) id 1drSNo-0000vP-1F\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 13:20:28 -0400",
            "from smtp.corp.redhat.com\n\t(int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 1722A36C1F6\n\tfor <qemu-devel@nongnu.org>; Mon, 11 Sep 2017 17:20:27 +0000 (UTC)",
            "from red.redhat.com (ovpn-120-44.rdu2.redhat.com [10.10.120.44])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 909DC5D968;\n\tMon, 11 Sep 2017 17:20:24 +0000 (UTC)"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.3.2 mx1.redhat.com 1722A36C1F6",
        "From": "Eric Blake <eblake@redhat.com>",
        "To": "qemu-devel@nongnu.org",
        "Date": "Mon, 11 Sep 2017 12:19:44 -0500",
        "Message-Id": "<20170911172022.4738-1-eblake@redhat.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.14",
        "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.29]);\n\tMon, 11 Sep 2017 17:20:27 +0000 (UTC)",
        "Content-Transfer-Encoding": "quoted-printable",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]",
        "X-Received-From": "209.132.183.28",
        "Subject": "[Qemu-devel] [PATCH v7 00/38] Preliminary libqtest cleanups",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.21",
        "Precedence": "list",
        "List-Id": "<qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Cc": "pbonzini@redhat.com, thuth@redhat.com, armbru@redhat.com",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"
    },
    "content": "I'm trying to get rid of some of the duplication in libqtest.h\nbefore tackling the project of making qmp() easier to use. v6\ngot some positive review on the direction of making dependence\non global_qtest explicit (compared to v5 where I went the\nopposite direction and tried to use global_qtest even more than\nit was already being abused for), so most of the changes in\nthis posting are related to additional cleanups or addressing\ngood review comments.\n\nStill to come: I still have work pending on overhauling the\nqmp() and qtest_qmp() code, using naming that makes more\nsense, as well as getting us to the point that we can reliably\nuse -Wformat checking on qmp().\n\nAvailable as a tag at:\ngit fetch git://repo.or.cz/qemu/ericb.git qapi-qmp-cleanup-v7\n\nSince v6 (https://lists.gnu.org/archive/html/qemu-devel/2017-09/msg00308.html):\n- Add review tags where appropriate\n- merge a couple of patches [Thomas]\n- split ahci into multiple patches [Thomas]\n- add qtest_[v]startf rather than overloading (and churn) on\nqtest_start [Thomas]\n- catch more depedencies on global_qtest under tests/libqos/\n- lots more patches added to make use of global_qtest obvious\n- drop .gitignore changes for a later series\n\n001/38:[----] [--] 'test-qga: Kill broken and dead QGA_TEST_SIDE_EFFECTING code'\n002/38:[----] [--] 'qtest: Don't perform side effects inside assertion'\n003/38:[----] [--] 'numa-test: Use hmp()'\n004/38:[----] [--] 'tests: Clean up wait for event'\n005/38:[----] [--] 'libqtest: Remove dead qtest_instances variable'\n006/38:[----] [--] 'libqtest: Use qemu_strtoul()'\n007/38:[0020] [FC] 'libqtest: Inline qtest_query_target_endianness()'\n008/38:[0019] [FC] 'libqos: Track QTestState with QPCIBus'\n009/38:[down] 'libqos: Track QTestState with QVirtioBus'\n010/38:[down] 'libqos: Move/rename qpci_unplug_acpi_device_test() to pci.c'\n011/38:[0045] [FC] 'libqos: Use explicit QTestState for pci operations'\n012/38:[0179] [FC] 'libqos: Use explicit QTestState for virtio operations'\n013/38:[0011] [FC] 'libqos: Use explicit QTestState for fw_cfg operations'\n014/38:[0015] [FC] 'libqos: Use explicit QTestState for rtas operations'\n015/38:[down] 'libqos: Use explicit QTestState for i2c operations'\n016/38:[down] 'libqos: Use explicit QTestState for ahci operations'\n017/38:[down] 'libqos: Use explicit QTestState for remaining libqos operations'\n018/38:[0079] [FC] 'ahci-test: Drop dependence on global_qtest'\n019/38:[0012] [FC] 'ivshmem-test: Drop dependence on global_qtest'\n020/38:[----] [--] 'postcopy-test: Drop dependence on global_qtest'\n021/38:[----] [--] 'vhost-user-test: Drop dependence on global_qtest'\n022/38:[----] [-C] 'qmp-test: Drop dependence on global_qtest'\n023/38:[----] [--] 'tests/boot-sector: Drop dependence on global_qtest'\n024/38:[0079] [FC] 'tests/acpi-utils: Drop dependence on global_qtest'\n025/38:[----] [--] 'wdt_ib700-test: Drop dependence on global_qtest'\n026/38:[down] 'libqtest: Merge qtest_end() into qtest_quit()'\n027/38:[down] 'libqtest: Swap order of qtest_init() and qtest_start()'\n028/38:[down] 'libqtest: Add qtest_[v]startf()'\n029/38:[down] 'libqtest: Merge qtest_init() into qtest_start()'\n030/38:[0008] [FC] 'qtest: Avoid passing raw strings through hmp()'\n031/38:[down] 'libqtest: Merge qtest_clock_*() with clock_*()'\n032/38:[down] 'libqtest: Merge qtest_irq*() with irq*()'\n033/38:[down] 'libqtest: Merge qtest_{in,out}[bwl]() with {in,out}[bwl]()'\n034/38:[down] 'libqtest: Merge qtest_{read,write}[bwlq]() with {read,write}[bwlq]()'\n035/38:[down] 'libqtest: Merge qtest_{mem,buf}{read,write}() with {mem,buf}{read,write}()'\n036/38:[down] 'libqtest: Merge qtest_memset() with qmemset()'\n037/38:[0088] [FC] 'libqtest: Separate qmp_discard_response() from command'\n038/38:[down] 'libqtest: Merge qtest_hmp() with hmp()'\n\nEric Blake (37):\n  test-qga: Kill broken and dead QGA_TEST_SIDE_EFFECTING code\n  qtest: Don't perform side effects inside assertion\n  numa-test: Use hmp()\n  libqtest: Remove dead qtest_instances variable\n  libqtest: Use qemu_strtoul()\n  libqtest: Inline qtest_query_target_endianness()\n  libqos: Track QTestState with QPCIBus\n  libqos: Track QTestState with QVirtioBus\n  libqos: Move/rename qpci_unplug_acpi_device_test() to pci.c\n  libqos: Use explicit QTestState for pci operations\n  libqos: Use explicit QTestState for virtio operations\n  libqos: Use explicit QTestState for fw_cfg operations\n  libqos: Use explicit QTestState for rtas operations\n  libqos: Use explicit QTestState for i2c operations\n  libqos: Use explicit QTestState for ahci operations\n  libqos: Use explicit QTestState for remaining libqos operations\n  ahci-test: Drop dependence on global_qtest\n  ivshmem-test: Drop dependence on global_qtest\n  postcopy-test: Drop dependence on global_qtest\n  vhost-user-test: Drop dependence on global_qtest\n  qmp-test: Drop dependence on global_qtest\n  tests/boot-sector: Drop dependence on global_qtest\n  tests/acpi-utils: Drop dependence on global_qtest\n  wdt_ib700-test: Drop dependence on global_qtest\n  libqtest: Merge qtest_end() into qtest_quit()\n  libqtest: Swap order of qtest_init() and qtest_start()\n  libqtest: Add qtest_[v]startf()\n  libqtest: Merge qtest_init() into qtest_start()\n  qtest: Avoid passing raw strings through hmp()\n  libqtest: Merge qtest_clock_*() with clock_*()\n  libqtest: Merge qtest_irq*() with irq*()\n  libqtest: Merge qtest_{in,out}[bwl]() with {in,out}[bwl]()\n  libqtest: Merge qtest_{read,write}[bwlq]() with {read,write}[bwlq]()\n  libqtest: Merge qtest_{mem,buf}{read,write}() with\n    {mem,buf}{read,write}()\n  libqtest: Merge qtest_memset() with qmemset()\n  libqtest: Separate qmp_discard_response() from command\n  libqtest: Merge qtest_hmp() with hmp()\n\nMarkus Armbruster (1):\n  tests: Clean up wait for event\n\n tests/libqtest.h               | 522 +++++++----------------------------------\n tests/acpi-utils.h             |  67 +++---\n tests/boot-sector.h            |   6 +-\n tests/libqos/ahci.h            |   2 +-\n tests/libqos/fw_cfg.h          |  10 +-\n tests/libqos/i2c.h             |   7 +-\n tests/libqos/libqos.h          |   5 +-\n tests/libqos/malloc-pc.h       |   4 +-\n tests/libqos/malloc-spapr.h    |   2 +-\n tests/libqos/malloc.h          |   1 +\n tests/libqos/pci-pc.h          |   2 +-\n tests/libqos/pci-spapr.h       |   2 +-\n tests/libqos/pci.h             |   5 +-\n tests/libqos/rtas.h            |   9 +-\n tests/libqos/virtio-mmio.h     |   6 +-\n tests/libqos/virtio-pci.h      |   2 -\n tests/libqos/virtio.h          |  13 +-\n tests/multiboot/libc.h         |   2 +-\n tests/libqtest.c               | 192 ++++++++-------\n qtest.c                        |  80 +++++--\n tests/ac97-test.c              |   4 +-\n tests/acpi-utils.c             |  19 +-\n tests/ahci-test.c              |  92 ++++----\n tests/bios-tables-test.c       | 199 ++++++++--------\n tests/boot-order-test.c        |  31 ++-\n tests/boot-sector.c            |   8 +-\n tests/boot-serial-test.c       |  12 +-\n tests/device-introspect-test.c |  30 +--\n tests/display-vga-test.c       |  18 +-\n tests/drive_del-test.c         |  26 +-\n tests/ds1338-test.c            |   6 +-\n tests/e1000-test.c             |  10 +-\n tests/e1000e-test.c            |  46 ++--\n tests/eepro100-test.c          |  11 +-\n tests/endianness-test.c        |  57 ++---\n tests/es1370-test.c            |   4 +-\n tests/fdc-test.c               | 144 ++++++------\n tests/fw_cfg-test.c            |  13 +-\n tests/hd-geo-test.c            |  20 +-\n tests/i440fx-test.c            |  24 +-\n tests/i82801b11-test.c         |   5 +-\n tests/ide-test.c               |  58 +++--\n tests/intel-hda-test.c         |   9 +-\n tests/ioh3420-test.c           |   7 +-\n tests/ipmi-bt-test.c           |  29 +--\n tests/ipmi-kcs-test.c          |  23 +-\n tests/ipoctal232-test.c        |   5 +-\n tests/ivshmem-test.c           |  27 +--\n tests/libqos/ahci.c            |  47 ++--\n tests/libqos/fw_cfg.c          |  14 +-\n tests/libqos/i2c-imx.c         |  67 +++---\n tests/libqos/i2c-omap.c        |  45 ++--\n tests/libqos/libqos-pc.c       |   2 +-\n tests/libqos/libqos.c          |  52 +---\n tests/libqos/malloc-pc.c       |   8 +-\n tests/libqos/malloc-spapr.c    |   4 +-\n tests/libqos/pci-pc.c          |  81 +++----\n tests/libqos/pci-spapr.c       |  45 ++--\n tests/libqos/pci.c             |  22 +-\n tests/libqos/rtas.c            |  36 +--\n tests/libqos/virtio-mmio.c     |  61 +++--\n tests/libqos/virtio-pci.c      |  14 +-\n tests/libqos/virtio.c          |  87 ++++---\n tests/m25p80-test.c            |  89 ++++---\n tests/m48t59-test.c            |  14 +-\n tests/megasas-test.c           |   7 +-\n tests/multiboot/libc.c         |   2 +-\n tests/ne2000-test.c            |   4 +-\n tests/numa-test.c              | 102 +++-----\n tests/nvme-test.c              |   7 +-\n tests/pc-cpu-test.c            |  24 +-\n tests/pcnet-test.c             |   4 +-\n tests/pnv-xscom-test.c         |  18 +-\n tests/postcopy-test.c          |  93 ++++----\n tests/prom-env-test.c          |  15 +-\n tests/pvpanic-test.c           |   8 +-\n tests/pxe-test.c               |  16 +-\n tests/q35-test.c               |  24 +-\n tests/qmp-test.c               |  43 ++--\n tests/qom-test.c               |   7 +-\n tests/rtas-test.c              |   3 +-\n tests/rtc-test.c               |  94 ++++----\n tests/rtl8139-test.c           |  17 +-\n tests/spapr-phb-test.c         |   5 +-\n tests/tco-test.c               |  45 ++--\n tests/test-arm-mptimer.c       |  43 ++--\n tests/test-filter-mirror.c     |  19 +-\n tests/test-filter-redirector.c |  66 +++---\n tests/test-hmp.c               |  13 +-\n tests/test-netfilter.c         |   9 +-\n tests/test-qga.c               |  90 -------\n tests/test-x86-cpuid-compat.c  |  13 +-\n tests/tmp105-test.c            |   7 +-\n tests/tpci200-test.c           |   4 +-\n tests/usb-hcd-ehci-test.c      |  27 ++-\n tests/usb-hcd-ohci-test.c      |   4 +-\n tests/usb-hcd-uhci-test.c      |   7 +-\n tests/usb-hcd-xhci-test.c      |  19 +-\n tests/vhost-user-test.c        | 105 +++------\n tests/virtio-9p-test.c         |   5 +-\n tests/virtio-balloon-test.c    |   4 +-\n tests/virtio-blk-test.c        |  83 ++++---\n tests/virtio-console-test.c    |  10 +-\n tests/virtio-net-test.c        |  30 ++-\n tests/virtio-rng-test.c        |   9 +-\n tests/virtio-scsi-test.c       |  22 +-\n tests/virtio-serial-test.c     |   4 +-\n tests/vmgenid-test.c           |  51 ++--\n tests/vmxnet3-test.c           |   4 +-\n tests/wdt_ib700-test.c         |  92 ++++----\n 110 files changed, 1632 insertions(+), 2210 deletions(-)"
}