get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/806847/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 806847,
    "url": "http://patchwork.ozlabs.org/api/patches/806847/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1503965694-10794-50-git-send-email-mdroth@linux.vnet.ibm.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": "<1503965694-10794-50-git-send-email-mdroth@linux.vnet.ibm.com>",
    "list_archive_url": null,
    "date": "2017-08-29T00:14:24",
    "name": "[49/79] tests: check-qom-proplist: add checks for cmdline-created objects",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "89ec0ee5c679a5f562110b7f6f7deaa3f6913e79",
    "submitter": {
        "id": 5549,
        "url": "http://patchwork.ozlabs.org/api/people/5549/?format=api",
        "name": "Michael Roth",
        "email": "mdroth@linux.vnet.ibm.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/1503965694-10794-50-git-send-email-mdroth@linux.vnet.ibm.com/mbox/",
    "series": [
        {
            "id": 281,
            "url": "http://patchwork.ozlabs.org/api/series/281/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=281",
            "date": "2017-08-29T00:13:45",
            "name": "Patch Round-up for stable 2.9.1, freeze on 2017-09-04",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/281/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/806847/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/806847/checks/",
    "tags": {},
    "related": [],
    "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>)",
        "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 3xh8xQ1bMbz9s7M\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 29 Aug 2017 10:42:50 +1000 (AEST)",
            "from localhost ([::1]:42027 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 1dmUcC-00085H-3H\n\tfor incoming@patchwork.ozlabs.org; Mon, 28 Aug 2017 20:42:48 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:48399)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <mdroth@linux.vnet.ibm.com>) id 1dmUCe-0001Tk-0P\n\tfor qemu-devel@nongnu.org; Mon, 28 Aug 2017 20:16:25 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <mdroth@linux.vnet.ibm.com>) id 1dmUCb-0005kE-8C\n\tfor qemu-devel@nongnu.org; Mon, 28 Aug 2017 20:16:23 -0400",
            "from mx0b-001b2d01.pphosted.com ([148.163.158.5]:53635\n\thelo=mx0a-001b2d01.pphosted.com)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <mdroth@linux.vnet.ibm.com>)\n\tid 1dmUCa-0005jW-Va\n\tfor qemu-devel@nongnu.org; Mon, 28 Aug 2017 20:16:21 -0400",
            "from pps.filterd (m0098421.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv7T0E9w6081539\n\tfor <qemu-devel@nongnu.org>; Mon, 28 Aug 2017 20:16:20 -0400",
            "from e37.co.us.ibm.com (e37.co.us.ibm.com [32.97.110.158])\n\tby mx0a-001b2d01.pphosted.com with ESMTP id 2cmurncru1-1\n\t(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT)\n\tfor <qemu-devel@nongnu.org>; Mon, 28 Aug 2017 20:16:20 -0400",
            "from localhost\n\tby e37.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use\n\tOnly! Violators will be prosecuted\n\tfor <qemu-devel@nongnu.org> from <mdroth@linux.vnet.ibm.com>;\n\tMon, 28 Aug 2017 18:16:19 -0600",
            "from b03cxnp08025.gho.boulder.ibm.com (9.17.130.17)\n\tby e37.co.us.ibm.com (192.168.1.137) with IBM ESMTP SMTP Gateway:\n\tAuthorized Use Only! Violators will be prosecuted; \n\tMon, 28 Aug 2017 18:16:14 -0600",
            "from b03ledav005.gho.boulder.ibm.com\n\t(b03ledav005.gho.boulder.ibm.com [9.17.130.236])\n\tby b03cxnp08025.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with\n\tESMTP id v7T0GEWb62718104; Mon, 28 Aug 2017 17:16:14 -0700",
            "from b03ledav005.gho.boulder.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 092F2BE038;\n\tMon, 28 Aug 2017 18:16:14 -0600 (MDT)",
            "from localhost (unknown [9.80.85.217])\n\tby b03ledav005.gho.boulder.ibm.com (Postfix) with ESMTP id C9923BE039;\n\tMon, 28 Aug 2017 18:16:13 -0600 (MDT)"
        ],
        "From": "Michael Roth <mdroth@linux.vnet.ibm.com>",
        "To": "qemu-devel@nongnu.org",
        "Date": "Mon, 28 Aug 2017 19:14:24 -0500",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1503965694-10794-1-git-send-email-mdroth@linux.vnet.ibm.com>",
        "References": "<1503965694-10794-1-git-send-email-mdroth@linux.vnet.ibm.com>",
        "X-TM-AS-GCONF": "00",
        "x-cbid": "17082900-0024-0000-0000-0000171CE4CB",
        "X-IBM-SpamModules-Scores": "",
        "X-IBM-SpamModules-Versions": "BY=3.00007630; HX=3.00000241; KW=3.00000007;\n\tPH=3.00000004; SC=3.00000226; SDB=6.00909028; UDB=6.00455849;\n\tIPR=6.00689279; \n\tBA=6.00005557; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009;\n\tZB=6.00000000; \n\tZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00016909;\n\tXFM=3.00000015; UTC=2017-08-29 00:16:17",
        "X-IBM-AV-DETECTION": "SAVI=unused REMOTE=unused XFE=unused",
        "x-cbparentid": "17082900-0025-0000-0000-00004C7F054C",
        "Message-Id": "<1503965694-10794-50-git-send-email-mdroth@linux.vnet.ibm.com>",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10432:, ,\n\tdefinitions=2017-08-28_13:, , signatures=0",
        "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n\tspamscore=0 suspectscore=3\n\tmalwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam\n\tadjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000\n\tdefinitions=main-1708290001",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy]",
        "X-Received-From": "148.163.158.5",
        "Subject": "[Qemu-devel] [PATCH 49/79] tests: check-qom-proplist: add checks\n\tfor cmdline-created objects",
        "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": "Markus Armbruster <armbru@redhat.com>, qemu-stable@nongnu.org,\n\t\"Dr. David Alan Gilbert\" <dgilbert@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": "check-qom-proplist originally added tests for verifying that\nobject-creation helpers object_new_with_{props,propv} behaved in\nsimilar fashion to the \"traditional\" method involving setting each\nindividual property separately after object creation rather than\nvia a single call.\n\nAnother similar \"helper\" for creating Objects exists in the form of\nobjects specified via -object command-line parameters. By that\nrationale, we extend check-qom-proplist to include similar checks\nfor command-line-created objects by employing the same\nqemu_opts_parse()-based parsing the vl.c employs.\n\nThis parser has a side-effect of parsing the object's options into\na QemuOpt structure and registering this in the global QemuOptsList\nusing the Object's ID. This can conflict with future Object instances\nthat attempt to use the same ID if we don't ensure this is cleaned\nup as part of Object finalization, so we include a FIXME stub to test\nfor this case, which will then be resolved in a subsequent patch.\n\nSuggested-by: Daniel Berrange <berrange@redhat.com>\nCc: \"Dr. David Alan Gilbert\" <dgilbert@redhat.com>\nCc: Markus Armbruster <armbru@redhat.com>\nCc: Eric Blake <eblake@redhat.com>\nCc: Daniel Berrange <berrange@redhat.com>\nCc: qemu-stable@nongnu.org\nSigned-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>\nReviewed-by: Markus Armbruster <armbru@redhat.com>\nMessage-Id: <1496531612-22166-2-git-send-email-mdroth@linux.vnet.ibm.com>\n[Comment formatting tidied up]\nSigned-off-by: Markus Armbruster <armbru@redhat.com>\n\n(cherry picked from commit a1af255f065ccf3f47a7bfe88f1dbc9eeca36935)\nSigned-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>\n---\n tests/check-qom-proplist.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 56 insertions(+)",
    "diff": "diff --git a/tests/check-qom-proplist.c b/tests/check-qom-proplist.c\nindex a16cefc..e3b3ae4 100644\n--- a/tests/check-qom-proplist.c\n+++ b/tests/check-qom-proplist.c\n@@ -23,6 +23,9 @@\n #include \"qapi/error.h\"\n #include \"qom/object.h\"\n #include \"qemu/module.h\"\n+#include \"qemu/option.h\"\n+#include \"qemu/config-file.h\"\n+#include \"qom/object_interfaces.h\"\n \n \n #define TYPE_DUMMY \"qemu-dummy\"\n@@ -162,6 +165,10 @@ static const TypeInfo dummy_info = {\n     .instance_finalize = dummy_finalize,\n     .class_size = sizeof(DummyObjectClass),\n     .class_init = dummy_class_init,\n+    .interfaces = (InterfaceInfo[]) {\n+        { TYPE_USER_CREATABLE },\n+        { }\n+    }\n };\n \n \n@@ -320,6 +327,14 @@ static const TypeInfo dummy_backend_info = {\n     .class_size = sizeof(DummyBackendClass),\n };\n \n+static QemuOptsList qemu_object_opts = {\n+    .name = \"object\",\n+    .implied_opt_name = \"qom-type\",\n+    .head = QTAILQ_HEAD_INITIALIZER(qemu_object_opts.head),\n+    .desc = {\n+        { }\n+    },\n+};\n \n \n static void test_dummy_createv(void)\n@@ -388,6 +403,46 @@ static void test_dummy_createlist(void)\n     object_unparent(OBJECT(dobj));\n }\n \n+static void test_dummy_createcmdl(void)\n+{\n+    QemuOpts *opts;\n+    DummyObject *dobj;\n+    Error *err = NULL;\n+    const char *params = TYPE_DUMMY \\\n+                         \",id=dev0,\" \\\n+                         \"bv=yes,sv=Hiss hiss hiss,av=platypus\";\n+\n+    qemu_add_opts(&qemu_object_opts);\n+    opts = qemu_opts_parse(&qemu_object_opts, params, true, &err);\n+    g_assert(err == NULL);\n+    g_assert(opts);\n+\n+    dobj = DUMMY_OBJECT(user_creatable_add_opts(opts, &err));\n+    g_assert(err == NULL);\n+    g_assert(dobj);\n+    g_assert_cmpstr(dobj->sv, ==, \"Hiss hiss hiss\");\n+    g_assert(dobj->bv == true);\n+    g_assert(dobj->av == DUMMY_PLATYPUS);\n+\n+    user_creatable_del(\"dev0\", &err);\n+    g_assert(err == NULL);\n+    error_free(err);\n+\n+    /*\n+     * cmdline-parsing via qemu_opts_parse() results in a QemuOpts entry\n+     * corresponding to the Object's ID to be added to the QemuOptsList\n+     * for objects. To avoid having this entry conflict with future\n+     * Objects using the same ID (which can happen in cases where\n+     * qemu_opts_parse() is used to parse the object params, such as\n+     * with hmp_object_add() at the time of this comment), we need to\n+     * check for this in user_creatable_del() and remove the QemuOpts if\n+     * it is present.\n+     *\n+     * FIXME: add an assert to verify that the QemuOpts is cleaned up\n+     * once the corresponding cleanup code is added.\n+     */\n+}\n+\n static void test_dummy_badenum(void)\n {\n     Error *err = NULL;\n@@ -525,6 +580,7 @@ int main(int argc, char **argv)\n \n     g_test_add_func(\"/qom/proplist/createlist\", test_dummy_createlist);\n     g_test_add_func(\"/qom/proplist/createv\", test_dummy_createv);\n+    g_test_add_func(\"/qom/proplist/createcmdline\", test_dummy_createcmdl);\n     g_test_add_func(\"/qom/proplist/badenum\", test_dummy_badenum);\n     g_test_add_func(\"/qom/proplist/getenum\", test_dummy_getenum);\n     g_test_add_func(\"/qom/proplist/iterator\", test_dummy_iterator);\n",
    "prefixes": [
        "49/79"
    ]
}