From patchwork Thu Aug 18 06:49:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 17151 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 79A41C3272 for ; Thu, 18 Aug 2022 06:49:48 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 48EF961FBC; Thu, 18 Aug 2022 08:49:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1660805388; bh=ddiDn4wIQpHPXpH+3oQHD9fg+6Q9Y6R+CrEvhwYRXHg=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=0y2jDMtA9ANObfiultZT4eXTGWtKz7PMNzck88Y5KmA/b2/MTn7OhZNZz43ysghkk nIG5lYlMy/aOsWvUq14TfJnVcU/WmajyOiqRlv1RaPRbVQWH2j+dbDAMKjpFS2JISX nQAar4wPj5105m/BrD1K5oA2i56r0qgU5TS0n9Pr0DjamuLM/k2mjsgHqLYlNSTepY B687vRUzLhWUP+vCy5LakibgSE3fsIRqMwTwAnvIdsVYn57um7G6UVKUve4wZBdl5p lmmRdYvNKVlpxSeQuOALN0vz87V6jv8HlmeFKS7aSNK6Mt1W7lY24YQhIsL3TMMp0S aB8OgXEcq2AAQ== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 28CBF61FBC for ; Thu, 18 Aug 2022 08:49:46 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="kxDxwbWE"; dkim-atps=neutral Received: from pyrite.rasen.tech (KD027085204050.au-net.ne.jp [27.85.204.50]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id A4E0F51C; Thu, 18 Aug 2022 08:49:44 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1660805385; bh=ddiDn4wIQpHPXpH+3oQHD9fg+6Q9Y6R+CrEvhwYRXHg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kxDxwbWEN1khBOH8f4+VnKQq/lFFVZPOiDmySohZsKF1OkqErhwBfxQTqOk/O519n kF8X0c9gDP2krBfFjCbJIuTBvPTTphk3GhFeI7kc+SkXMXT62SoZ7E/YlFqS8pUogt FIHiiyNzhvsELVGDgiOANqBOq0145iAGm3cNlzoU= To: libcamera-devel@lists.libcamera.org Date: Thu, 18 Aug 2022 15:49:20 +0900 Message-Id: <20220818064923.2573060-6-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220818064923.2573060-1-paul.elder@ideasonboard.com> References: <20220818064923.2573060-1-paul.elder@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 5/7] test: generated_serializer: Test Flags that is struct member X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Paul Elder via libcamera-devel From: Paul Elder Reply-To: Paul Elder Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Add a Flags field to the test struct to test serialization/deserialization of Flags that are struct members. Signed-off-by: Paul Elder Reviewed-by: Laurent Pinchart --- Changes in v2: - use new attribute-based mojom definition for Flags --- .../generated_serializer_test.cpp | 19 +++++++++++++++++++ .../include/libcamera/ipa/test.mojom | 8 ++++++++ 2 files changed, 27 insertions(+) diff --git a/test/serialization/generated_serializer/generated_serializer_test.cpp b/test/serialization/generated_serializer/generated_serializer_test.cpp index a4639a80..a2d71d62 100644 --- a/test/serialization/generated_serializer/generated_serializer_test.cpp +++ b/test/serialization/generated_serializer/generated_serializer_test.cpp @@ -53,6 +53,11 @@ if (struct1.field != struct2.field) { \ t.i = 58527; t.c = ipa::test::IPAOperationInit; + Flags flags; + flags |= ipa::test::ErrorFlags::Error1; + flags |= ipa::test::ErrorFlags::Error2; + t.f = flags; + std::vector serialized; std::tie(serialized, ignore) = @@ -72,6 +77,10 @@ if (struct1.field != struct2.field) { \ TEST_FIELD_EQUALITY(t, u, i); TEST_FIELD_EQUALITY(t, u, c); + if (t.f != u.f) { + cerr << "Flags f field incorrect" << endl; + return TestFail; + } /* Test vector of generated structs */ std::vector v = { t, u }; @@ -96,12 +105,22 @@ if (struct1.field != struct2.field) { \ TEST_FIELD_EQUALITY(v[0], w[0], i); TEST_FIELD_EQUALITY(v[0], w[0], c); + if (v[0].f != w[0].f) { + cerr << "Flags f field incorrect" << endl; + return TestFail; + } + TEST_FIELD_EQUALITY(v[1], w[1], s1); TEST_FIELD_EQUALITY(v[1], w[1], s2); TEST_FIELD_EQUALITY(v[1], w[1], s3); TEST_FIELD_EQUALITY(v[1], w[1], i); TEST_FIELD_EQUALITY(v[1], w[1], c); + if (v[1].f != w[1].f) { + cerr << "Flags f field incorrect" << endl; + return TestFail; + } + return TestPass; } diff --git a/test/serialization/generated_serializer/include/libcamera/ipa/test.mojom b/test/serialization/generated_serializer/include/libcamera/ipa/test.mojom index 73081b40..698f4e89 100644 --- a/test/serialization/generated_serializer/include/libcamera/ipa/test.mojom +++ b/test/serialization/generated_serializer/include/libcamera/ipa/test.mojom @@ -9,6 +9,13 @@ enum IPAOperationCode { IPAOperationStop, }; +enum ErrorFlags { + Error1 = 0x1, + Error2 = 0x2, + Error3 = 0x4, + Error4 = 0x8, +}; + struct IPASettings {}; struct TestStruct { @@ -19,6 +26,7 @@ struct TestStruct { int32 i; string s3; IPAOperationCode c; + [Flags] ErrorFlags f; }; interface IPATestInterface {