All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
	Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
	platform-driver-x86@vger.kernel.org
Subject: Re: [PATCH v5 00/14] software node: add support for reference properties
Date: Mon, 14 Oct 2019 16:57:47 -0700	[thread overview]
Message-ID: <20191014235747.GA105649@dtor-ws> (raw)
In-Reply-To: <20191014073837.GI32742@smile.fi.intel.com>

On Mon, Oct 14, 2019 at 10:38:37AM +0300, Andy Shevchenko wrote:
> On Fri, Oct 11, 2019 at 04:07:07PM -0700, Dmitry Torokhov wrote:
> > These series implement "references" properties for software nodes as true
> > properties, instead of managing them completely separately.
> > 
> > The first 10 patches are generic cleanups and consolidation and
> > unification of the existing code; patch #11 implements moving of small
> > properties inline when copying property entries; patch #12 implements
> > PROPERTY_ENTRY_REF() and friends; patch #13 converts the user of
> > references to the property syntax, and patch #14 removes the remains of
> > references as entities that are managed separately.
> 
> Can we get some test cases?

Something like this? (I'll beef it up if we decide KUnit is OK for
this).

From 0b8256ceed44760e63becb5b9636099d9fc17a4c Mon Sep 17 00:00:00 2001
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: Mon, 14 Oct 2019 16:55:12 -0700
Subject: [PATCH] software node: add basic init tests

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
 drivers/base/test/Makefile              |  2 +
 drivers/base/test/property-entry-test.c | 56 +++++++++++++++++++++++++
 2 files changed, 58 insertions(+)
 create mode 100644 drivers/base/test/property-entry-test.c

diff --git a/drivers/base/test/Makefile b/drivers/base/test/Makefile
index 0f1f7277a013..22143102e5d2 100644
--- a/drivers/base/test/Makefile
+++ b/drivers/base/test/Makefile
@@ -1,2 +1,4 @@
 # SPDX-License-Identifier: GPL-2.0
 obj-$(CONFIG_TEST_ASYNC_DRIVER_PROBE)	+= test_async_driver_probe.o
+
+obj-$(CONFIG_KUNIT) += property-entry-test.o
diff --git a/drivers/base/test/property-entry-test.c b/drivers/base/test/property-entry-test.c
new file mode 100644
index 000000000000..cd6a405734a0
--- /dev/null
+++ b/drivers/base/test/property-entry-test.c
@@ -0,0 +1,56 @@
+// SPDX-License-Identifier: GPL-2.0
+// Unit tests for property entries API
+//
+// Copyright 2019 Google LLC.
+
+#include <kunit/test.h>
+#include <linux/property.h>
+#include <linux/types.h>
+
+static void pe_test_move_inline_u8(struct kunit *test)
+{
+	u8 u8_array_small[8] = { 0 };
+	u8 u8_array_big[128] = { 0 };
+	struct property_entry entries[] = {
+		PROPERTY_ENTRY_U8_ARRAY("small", u8_array_small),
+		PROPERTY_ENTRY_U8_ARRAY("big", u8_array_big),
+		{ }
+	};
+	struct property_entry *copy;
+
+	copy = property_entries_dup(entries);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, copy);
+	KUNIT_EXPECT_TRUE(test, copy[0].is_inline);
+	KUNIT_EXPECT_FALSE(test, copy[1].is_inline);
+}
+
+static void pe_test_move_inline_str(struct kunit *test)
+{
+	char *str_array_small[] = { "a" };
+	char *str_array_big[] = { "a", "b", "c", "d" };
+	struct property_entry entries[] = {
+		PROPERTY_ENTRY_STRING_ARRAY("small", str_array_small),
+		PROPERTY_ENTRY_STRING_ARRAY("big", str_array_big),
+		{ }
+	};
+	struct property_entry *copy;
+
+	copy = property_entries_dup(entries);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, copy);
+	KUNIT_EXPECT_TRUE(test, copy[0].is_inline);
+	KUNIT_EXPECT_FALSE(test, copy[1].is_inline);
+}
+
+
+static struct kunit_case property_entry_test_cases[] = {
+	KUNIT_CASE(pe_test_move_inline_u8),
+	KUNIT_CASE(pe_test_move_inline_str),
+	{ }
+};
+
+static struct kunit_suite property_entry_test_suite = {
+	.name = "property-entry",
+	.test_cases = property_entry_test_cases,
+};
+
+kunit_test_suite(property_entry_test_suite);
-- 
2.23.0.700.g56cf767bdb-goog


-- 
Dmitry

  reply	other threads:[~2019-10-14 23:57 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-11 23:07 [PATCH v5 00/14] software node: add support for reference properties Dmitry Torokhov
2019-10-11 23:07 ` [PATCH v5 01/14] software node: remove DEV_PROP_MAX Dmitry Torokhov
2019-10-11 23:07 ` [PATCH v5 02/14] software node: introduce PROPERTY_ENTRY_ARRAY_XXX_LEN() Dmitry Torokhov
2019-10-15 12:02   ` Andy Shevchenko
2019-10-11 23:07 ` [PATCH v5 03/14] efi/apple-properties: use PROPERTY_ENTRY_U8_ARRAY_LEN Dmitry Torokhov
2019-10-15 12:01   ` Andy Shevchenko
2019-10-15 18:02     ` Dmitry Torokhov
2019-10-11 23:07 ` [PATCH v5 04/14] software node: mark internal macros with double underscores Dmitry Torokhov
2019-10-15 12:03   ` Andy Shevchenko
2019-10-15 18:09     ` Dmitry Torokhov
2019-10-11 23:07 ` [PATCH v5 05/14] software node: clean up property_copy_string_array() Dmitry Torokhov
2019-10-15 12:07   ` Andy Shevchenko
2019-10-15 18:12     ` Dmitry Torokhov
2019-10-16  7:53       ` Andy Shevchenko
2019-10-16 17:00         ` Dmitry Torokhov
2019-10-17  7:02           ` Andy Shevchenko
2019-10-11 23:07 ` [PATCH v5 06/14] software node: get rid of property_set_pointer() Dmitry Torokhov
2019-10-15 12:09   ` Andy Shevchenko
2019-10-15 18:14     ` Dmitry Torokhov
2019-10-11 23:07 ` [PATCH v5 07/14] software node: remove property_entry_read_uNN_array functions Dmitry Torokhov
2019-10-11 23:07 ` [PATCH v5 08/14] software node: unify PROPERTY_ENTRY_XXX macros Dmitry Torokhov
2019-10-11 23:07 ` [PATCH v5 09/14] software node: simplify property_entry_read_string_array() Dmitry Torokhov
2019-10-11 23:07 ` [PATCH v5 10/14] software node: rename is_array to is_inline Dmitry Torokhov
2019-10-14  7:37   ` Andy Shevchenko
2019-10-15 18:22     ` Dmitry Torokhov
2019-10-16  7:59       ` Andy Shevchenko
2019-10-16 16:54         ` Dmitry Torokhov
2019-10-17  7:16           ` Andy Shevchenko
2019-10-17 16:00             ` Dmitry Torokhov
2019-10-17 16:02   ` Dmitry Torokhov
2019-10-11 23:07 ` [PATCH v5 11/14] software node: move small properties inline when copying Dmitry Torokhov
2019-10-15 12:20   ` Andy Shevchenko
2019-10-15 18:25     ` Dmitry Torokhov
2019-10-16  7:48       ` Andy Shevchenko
2019-10-16 16:01         ` Dmitry Torokhov
2019-10-16 16:18           ` Andy Shevchenko
2019-10-16 16:23             ` Andy Shevchenko
2019-10-16 16:44               ` Dmitry Torokhov
2019-10-17 16:04   ` Dmitry Torokhov
2019-10-11 23:07 ` [PATCH v5 12/14] software node: implement reference properties Dmitry Torokhov
2019-10-11 23:07 ` [PATCH v5 13/14] platform/x86: intel_cht_int33fe: use inline " Dmitry Torokhov
2019-10-16  8:01   ` Andy Shevchenko
2019-10-11 23:07 ` [PATCH v5 14/14] software node: remove separate handling of references Dmitry Torokhov
2019-10-14  7:38 ` [PATCH v5 00/14] software node: add support for reference properties Andy Shevchenko
2019-10-14 23:57   ` Dmitry Torokhov [this message]
2019-10-16  8:02     ` Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191014235747.GA105649@dtor-ws \
    --to=dmitry.torokhov@gmail.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=ard.biesheuvel@linaro.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=rafael@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.