All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brendan Higgins <brendanhiggins@google.com>
To: frowand.list@gmail.com, gregkh@linuxfoundation.org,
	keescook@google.com, kieran.bingham@ideasonboard.com,
	mcgrof@kernel.org, robh@kernel.org, sboyd@kernel.org,
	shuah@kernel.org
Cc: devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org,
	kunit-dev@googlegroups.com, linux-doc@vger.kernel.org,
	linux-fsdevel@vger.kernel.org, linux-kbuild@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
	linux-nvdimm@lists.01.org, linux-um@lists.infradead.org,
	Alexander.Levin@microsoft.com, Tim.Bird@sony.com,
	amir73il@gmail.com, dan.carpenter@oracle.com,
	dan.j.williams@intel.com, daniel@ffwll.ch, jdike@addtoit.com,
	joel@jms.id.au, julia.lawall@lip6.fr, khilman@baylibre.com,
	knut.omang@oracle.com, logang@deltatee.com, mpe@ellerman.id.au,
	pmladek@suse.com, richard@nod.at, rientjes@google.com,
	rostedt@goodmis.org, wfg@linux.intel.com,
	Brendan Higgins <brendanhiggins@google.com>
Subject: [PATCH v2 07/17] kunit: test: add initial tests
Date: Wed,  1 May 2019 16:01:16 -0700	[thread overview]
Message-ID: <20190501230126.229218-8-brendanhiggins@google.com> (raw)
In-Reply-To: <20190501230126.229218-1-brendanhiggins@google.com>

Add a test for string stream along with a simpler example.

Signed-off-by: Brendan Higgins <brendanhiggins@google.com>
---
 kunit/Kconfig              | 12 ++++++
 kunit/Makefile             |  4 ++
 kunit/example-test.c       | 88 ++++++++++++++++++++++++++++++++++++++
 kunit/string-stream-test.c | 61 ++++++++++++++++++++++++++
 4 files changed, 165 insertions(+)
 create mode 100644 kunit/example-test.c
 create mode 100644 kunit/string-stream-test.c

diff --git a/kunit/Kconfig b/kunit/Kconfig
index 64480092b2c24..5cb500355c873 100644
--- a/kunit/Kconfig
+++ b/kunit/Kconfig
@@ -13,4 +13,16 @@ config KUNIT
 	  special hardware. For more information, please see
 	  Documentation/kunit/
 
+config KUNIT_TEST
+	bool "KUnit test for KUnit"
+	depends on KUNIT
+	help
+	  Enables KUnit test to test KUnit.
+
+config KUNIT_EXAMPLE_TEST
+	bool "Example test for KUnit"
+	depends on KUNIT
+	help
+	  Enables example KUnit test to demo features of KUnit.
+
 endmenu
diff --git a/kunit/Makefile b/kunit/Makefile
index 6ddc622ee6b1c..60a9ea6cb4697 100644
--- a/kunit/Makefile
+++ b/kunit/Makefile
@@ -1,3 +1,7 @@
 obj-$(CONFIG_KUNIT) +=			test.o \
 					string-stream.o \
 					kunit-stream.o
+
+obj-$(CONFIG_KUNIT_TEST) +=		string-stream-test.o
+
+obj-$(CONFIG_KUNIT_EXAMPLE_TEST) +=	example-test.o
diff --git a/kunit/example-test.c b/kunit/example-test.c
new file mode 100644
index 0000000000000..3947dd7c8f922
--- /dev/null
+++ b/kunit/example-test.c
@@ -0,0 +1,88 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Example KUnit test to show how to use KUnit.
+ *
+ * Copyright (C) 2019, Google LLC.
+ * Author: Brendan Higgins <brendanhiggins@google.com>
+ */
+
+#include <kunit/test.h>
+
+/*
+ * This is the most fundamental element of KUnit, the test case. A test case
+ * makes a set EXPECTATIONs and ASSERTIONs about the behavior of some code; if
+ * any expectations or assertions are not met, the test fails; otherwise, the
+ * test passes.
+ *
+ * In KUnit, a test case is just a function with the signature
+ * `void (*)(struct kunit *)`. `struct kunit` is a context object that stores
+ * information about the current test.
+ */
+static void example_simple_test(struct kunit *test)
+{
+	/*
+	 * This is an EXPECTATION; it is how KUnit tests things. When you want
+	 * to test a piece of code, you set some expectations about what the
+	 * code should do. KUnit then runs the test and verifies that the code's
+	 * behavior matched what was expected.
+	 */
+	KUNIT_EXPECT_EQ(test, 1 + 1, 2);
+}
+
+/*
+ * This is run once before each test case, see the comment on
+ * example_test_module for more information.
+ */
+static int example_test_init(struct kunit *test)
+{
+	kunit_info(test, "initializing\n");
+
+	return 0;
+}
+
+/*
+ * Here we make a list of all the test cases we want to add to the test module
+ * below.
+ */
+static struct kunit_case example_test_cases[] = {
+	/*
+	 * This is a helper to create a test case object from a test case
+	 * function; its exact function is not important to understand how to
+	 * use KUnit, just know that this is how you associate test cases with a
+	 * test module.
+	 */
+	KUNIT_CASE(example_simple_test),
+	{},
+};
+
+/*
+ * This defines a suite or grouping of tests.
+ *
+ * Test cases are defined as belonging to the suite by adding them to
+ * `kunit_cases`.
+ *
+ * Often it is desirable to run some function which will set up things which
+ * will be used by every test; this is accomplished with an `init` function
+ * which runs before each test case is invoked. Similarly, an `exit` function
+ * may be specified which runs after every test case and can be used to for
+ * cleanup. For clarity, running tests in a test module would behave as follows:
+ *
+ * module.init(test);
+ * module.test_case[0](test);
+ * module.exit(test);
+ * module.init(test);
+ * module.test_case[1](test);
+ * module.exit(test);
+ * ...;
+ */
+static struct kunit_module example_test_module = {
+	.name = "example",
+	.init = example_test_init,
+	.test_cases = example_test_cases,
+};
+
+/*
+ * This registers the above test module telling KUnit that this is a suite of
+ * tests that need to be run.
+ */
+module_test(example_test_module);
diff --git a/kunit/string-stream-test.c b/kunit/string-stream-test.c
new file mode 100644
index 0000000000000..b2a98576797c9
--- /dev/null
+++ b/kunit/string-stream-test.c
@@ -0,0 +1,61 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * KUnit test for struct string_stream.
+ *
+ * Copyright (C) 2019, Google LLC.
+ * Author: Brendan Higgins <brendanhiggins@google.com>
+ */
+
+#include <linux/slab.h>
+#include <kunit/test.h>
+#include <kunit/string-stream.h>
+
+static void string_stream_test_get_string(struct kunit *test)
+{
+	struct string_stream *stream = new_string_stream();
+	char *output;
+
+	string_stream_add(stream, "Foo");
+	string_stream_add(stream, " %s", "bar");
+
+	output = string_stream_get_string(stream);
+	KUNIT_EXPECT_STREQ(test, output, "Foo bar");
+	kfree(output);
+	destroy_string_stream(stream);
+}
+
+static void string_stream_test_add_and_clear(struct kunit *test)
+{
+	struct string_stream *stream = new_string_stream();
+	char *output;
+	int i;
+
+	for (i = 0; i < 10; i++)
+		string_stream_add(stream, "A");
+
+	output = string_stream_get_string(stream);
+	KUNIT_EXPECT_STREQ(test, output, "AAAAAAAAAA");
+	KUNIT_EXPECT_EQ(test, stream->length, 10);
+	KUNIT_EXPECT_FALSE(test, string_stream_is_empty(stream));
+	kfree(output);
+
+	string_stream_clear(stream);
+
+	output = string_stream_get_string(stream);
+	KUNIT_EXPECT_STREQ(test, output, "");
+	KUNIT_EXPECT_TRUE(test, string_stream_is_empty(stream));
+	destroy_string_stream(stream);
+}
+
+static struct kunit_case string_stream_test_cases[] = {
+	KUNIT_CASE(string_stream_test_get_string),
+	KUNIT_CASE(string_stream_test_add_and_clear),
+	{}
+};
+
+static struct kunit_module string_stream_test_module = {
+	.name = "string-stream-test",
+	.test_cases = string_stream_test_cases
+};
+module_test(string_stream_test_module);
+
-- 
2.21.0.593.g511ec345e18-goog

WARNING: multiple messages have this Message-ID (diff)
From: brendanhiggins at google.com (Brendan Higgins)
Subject: [PATCH v2 07/17] kunit: test: add initial tests
Date: Wed,  1 May 2019 16:01:16 -0700	[thread overview]
Message-ID: <20190501230126.229218-8-brendanhiggins@google.com> (raw)
In-Reply-To: <20190501230126.229218-1-brendanhiggins@google.com>

Add a test for string stream along with a simpler example.

Signed-off-by: Brendan Higgins <brendanhiggins at google.com>
---
 kunit/Kconfig              | 12 ++++++
 kunit/Makefile             |  4 ++
 kunit/example-test.c       | 88 ++++++++++++++++++++++++++++++++++++++
 kunit/string-stream-test.c | 61 ++++++++++++++++++++++++++
 4 files changed, 165 insertions(+)
 create mode 100644 kunit/example-test.c
 create mode 100644 kunit/string-stream-test.c

diff --git a/kunit/Kconfig b/kunit/Kconfig
index 64480092b2c24..5cb500355c873 100644
--- a/kunit/Kconfig
+++ b/kunit/Kconfig
@@ -13,4 +13,16 @@ config KUNIT
 	  special hardware. For more information, please see
 	  Documentation/kunit/
 
+config KUNIT_TEST
+	bool "KUnit test for KUnit"
+	depends on KUNIT
+	help
+	  Enables KUnit test to test KUnit.
+
+config KUNIT_EXAMPLE_TEST
+	bool "Example test for KUnit"
+	depends on KUNIT
+	help
+	  Enables example KUnit test to demo features of KUnit.
+
 endmenu
diff --git a/kunit/Makefile b/kunit/Makefile
index 6ddc622ee6b1c..60a9ea6cb4697 100644
--- a/kunit/Makefile
+++ b/kunit/Makefile
@@ -1,3 +1,7 @@
 obj-$(CONFIG_KUNIT) +=			test.o \
 					string-stream.o \
 					kunit-stream.o
+
+obj-$(CONFIG_KUNIT_TEST) +=		string-stream-test.o
+
+obj-$(CONFIG_KUNIT_EXAMPLE_TEST) +=	example-test.o
diff --git a/kunit/example-test.c b/kunit/example-test.c
new file mode 100644
index 0000000000000..3947dd7c8f922
--- /dev/null
+++ b/kunit/example-test.c
@@ -0,0 +1,88 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Example KUnit test to show how to use KUnit.
+ *
+ * Copyright (C) 2019, Google LLC.
+ * Author: Brendan Higgins <brendanhiggins at google.com>
+ */
+
+#include <kunit/test.h>
+
+/*
+ * This is the most fundamental element of KUnit, the test case. A test case
+ * makes a set EXPECTATIONs and ASSERTIONs about the behavior of some code; if
+ * any expectations or assertions are not met, the test fails; otherwise, the
+ * test passes.
+ *
+ * In KUnit, a test case is just a function with the signature
+ * `void (*)(struct kunit *)`. `struct kunit` is a context object that stores
+ * information about the current test.
+ */
+static void example_simple_test(struct kunit *test)
+{
+	/*
+	 * This is an EXPECTATION; it is how KUnit tests things. When you want
+	 * to test a piece of code, you set some expectations about what the
+	 * code should do. KUnit then runs the test and verifies that the code's
+	 * behavior matched what was expected.
+	 */
+	KUNIT_EXPECT_EQ(test, 1 + 1, 2);
+}
+
+/*
+ * This is run once before each test case, see the comment on
+ * example_test_module for more information.
+ */
+static int example_test_init(struct kunit *test)
+{
+	kunit_info(test, "initializing\n");
+
+	return 0;
+}
+
+/*
+ * Here we make a list of all the test cases we want to add to the test module
+ * below.
+ */
+static struct kunit_case example_test_cases[] = {
+	/*
+	 * This is a helper to create a test case object from a test case
+	 * function; its exact function is not important to understand how to
+	 * use KUnit, just know that this is how you associate test cases with a
+	 * test module.
+	 */
+	KUNIT_CASE(example_simple_test),
+	{},
+};
+
+/*
+ * This defines a suite or grouping of tests.
+ *
+ * Test cases are defined as belonging to the suite by adding them to
+ * `kunit_cases`.
+ *
+ * Often it is desirable to run some function which will set up things which
+ * will be used by every test; this is accomplished with an `init` function
+ * which runs before each test case is invoked. Similarly, an `exit` function
+ * may be specified which runs after every test case and can be used to for
+ * cleanup. For clarity, running tests in a test module would behave as follows:
+ *
+ * module.init(test);
+ * module.test_case[0](test);
+ * module.exit(test);
+ * module.init(test);
+ * module.test_case[1](test);
+ * module.exit(test);
+ * ...;
+ */
+static struct kunit_module example_test_module = {
+	.name = "example",
+	.init = example_test_init,
+	.test_cases = example_test_cases,
+};
+
+/*
+ * This registers the above test module telling KUnit that this is a suite of
+ * tests that need to be run.
+ */
+module_test(example_test_module);
diff --git a/kunit/string-stream-test.c b/kunit/string-stream-test.c
new file mode 100644
index 0000000000000..b2a98576797c9
--- /dev/null
+++ b/kunit/string-stream-test.c
@@ -0,0 +1,61 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * KUnit test for struct string_stream.
+ *
+ * Copyright (C) 2019, Google LLC.
+ * Author: Brendan Higgins <brendanhiggins at google.com>
+ */
+
+#include <linux/slab.h>
+#include <kunit/test.h>
+#include <kunit/string-stream.h>
+
+static void string_stream_test_get_string(struct kunit *test)
+{
+	struct string_stream *stream = new_string_stream();
+	char *output;
+
+	string_stream_add(stream, "Foo");
+	string_stream_add(stream, " %s", "bar");
+
+	output = string_stream_get_string(stream);
+	KUNIT_EXPECT_STREQ(test, output, "Foo bar");
+	kfree(output);
+	destroy_string_stream(stream);
+}
+
+static void string_stream_test_add_and_clear(struct kunit *test)
+{
+	struct string_stream *stream = new_string_stream();
+	char *output;
+	int i;
+
+	for (i = 0; i < 10; i++)
+		string_stream_add(stream, "A");
+
+	output = string_stream_get_string(stream);
+	KUNIT_EXPECT_STREQ(test, output, "AAAAAAAAAA");
+	KUNIT_EXPECT_EQ(test, stream->length, 10);
+	KUNIT_EXPECT_FALSE(test, string_stream_is_empty(stream));
+	kfree(output);
+
+	string_stream_clear(stream);
+
+	output = string_stream_get_string(stream);
+	KUNIT_EXPECT_STREQ(test, output, "");
+	KUNIT_EXPECT_TRUE(test, string_stream_is_empty(stream));
+	destroy_string_stream(stream);
+}
+
+static struct kunit_case string_stream_test_cases[] = {
+	KUNIT_CASE(string_stream_test_get_string),
+	KUNIT_CASE(string_stream_test_add_and_clear),
+	{}
+};
+
+static struct kunit_module string_stream_test_module = {
+	.name = "string-stream-test",
+	.test_cases = string_stream_test_cases
+};
+module_test(string_stream_test_module);
+
-- 
2.21.0.593.g511ec345e18-goog

WARNING: multiple messages have this Message-ID (diff)
From: brendanhiggins@google.com (Brendan Higgins)
Subject: [PATCH v2 07/17] kunit: test: add initial tests
Date: Wed,  1 May 2019 16:01:16 -0700	[thread overview]
Message-ID: <20190501230126.229218-8-brendanhiggins@google.com> (raw)
Message-ID: <20190501230116.kN8TempGtKq8a-gFdEgb0-DeOf7ibkA7HmZi_80cfWE@z> (raw)
In-Reply-To: <20190501230126.229218-1-brendanhiggins@google.com>

Add a test for string stream along with a simpler example.

Signed-off-by: Brendan Higgins <brendanhiggins at google.com>
---
 kunit/Kconfig              | 12 ++++++
 kunit/Makefile             |  4 ++
 kunit/example-test.c       | 88 ++++++++++++++++++++++++++++++++++++++
 kunit/string-stream-test.c | 61 ++++++++++++++++++++++++++
 4 files changed, 165 insertions(+)
 create mode 100644 kunit/example-test.c
 create mode 100644 kunit/string-stream-test.c

diff --git a/kunit/Kconfig b/kunit/Kconfig
index 64480092b2c24..5cb500355c873 100644
--- a/kunit/Kconfig
+++ b/kunit/Kconfig
@@ -13,4 +13,16 @@ config KUNIT
 	  special hardware. For more information, please see
 	  Documentation/kunit/
 
+config KUNIT_TEST
+	bool "KUnit test for KUnit"
+	depends on KUNIT
+	help
+	  Enables KUnit test to test KUnit.
+
+config KUNIT_EXAMPLE_TEST
+	bool "Example test for KUnit"
+	depends on KUNIT
+	help
+	  Enables example KUnit test to demo features of KUnit.
+
 endmenu
diff --git a/kunit/Makefile b/kunit/Makefile
index 6ddc622ee6b1c..60a9ea6cb4697 100644
--- a/kunit/Makefile
+++ b/kunit/Makefile
@@ -1,3 +1,7 @@
 obj-$(CONFIG_KUNIT) +=			test.o \
 					string-stream.o \
 					kunit-stream.o
+
+obj-$(CONFIG_KUNIT_TEST) +=		string-stream-test.o
+
+obj-$(CONFIG_KUNIT_EXAMPLE_TEST) +=	example-test.o
diff --git a/kunit/example-test.c b/kunit/example-test.c
new file mode 100644
index 0000000000000..3947dd7c8f922
--- /dev/null
+++ b/kunit/example-test.c
@@ -0,0 +1,88 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Example KUnit test to show how to use KUnit.
+ *
+ * Copyright (C) 2019, Google LLC.
+ * Author: Brendan Higgins <brendanhiggins at google.com>
+ */
+
+#include <kunit/test.h>
+
+/*
+ * This is the most fundamental element of KUnit, the test case. A test case
+ * makes a set EXPECTATIONs and ASSERTIONs about the behavior of some code; if
+ * any expectations or assertions are not met, the test fails; otherwise, the
+ * test passes.
+ *
+ * In KUnit, a test case is just a function with the signature
+ * `void (*)(struct kunit *)`. `struct kunit` is a context object that stores
+ * information about the current test.
+ */
+static void example_simple_test(struct kunit *test)
+{
+	/*
+	 * This is an EXPECTATION; it is how KUnit tests things. When you want
+	 * to test a piece of code, you set some expectations about what the
+	 * code should do. KUnit then runs the test and verifies that the code's
+	 * behavior matched what was expected.
+	 */
+	KUNIT_EXPECT_EQ(test, 1 + 1, 2);
+}
+
+/*
+ * This is run once before each test case, see the comment on
+ * example_test_module for more information.
+ */
+static int example_test_init(struct kunit *test)
+{
+	kunit_info(test, "initializing\n");
+
+	return 0;
+}
+
+/*
+ * Here we make a list of all the test cases we want to add to the test module
+ * below.
+ */
+static struct kunit_case example_test_cases[] = {
+	/*
+	 * This is a helper to create a test case object from a test case
+	 * function; its exact function is not important to understand how to
+	 * use KUnit, just know that this is how you associate test cases with a
+	 * test module.
+	 */
+	KUNIT_CASE(example_simple_test),
+	{},
+};
+
+/*
+ * This defines a suite or grouping of tests.
+ *
+ * Test cases are defined as belonging to the suite by adding them to
+ * `kunit_cases`.
+ *
+ * Often it is desirable to run some function which will set up things which
+ * will be used by every test; this is accomplished with an `init` function
+ * which runs before each test case is invoked. Similarly, an `exit` function
+ * may be specified which runs after every test case and can be used to for
+ * cleanup. For clarity, running tests in a test module would behave as follows:
+ *
+ * module.init(test);
+ * module.test_case[0](test);
+ * module.exit(test);
+ * module.init(test);
+ * module.test_case[1](test);
+ * module.exit(test);
+ * ...;
+ */
+static struct kunit_module example_test_module = {
+	.name = "example",
+	.init = example_test_init,
+	.test_cases = example_test_cases,
+};
+
+/*
+ * This registers the above test module telling KUnit that this is a suite of
+ * tests that need to be run.
+ */
+module_test(example_test_module);
diff --git a/kunit/string-stream-test.c b/kunit/string-stream-test.c
new file mode 100644
index 0000000000000..b2a98576797c9
--- /dev/null
+++ b/kunit/string-stream-test.c
@@ -0,0 +1,61 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * KUnit test for struct string_stream.
+ *
+ * Copyright (C) 2019, Google LLC.
+ * Author: Brendan Higgins <brendanhiggins at google.com>
+ */
+
+#include <linux/slab.h>
+#include <kunit/test.h>
+#include <kunit/string-stream.h>
+
+static void string_stream_test_get_string(struct kunit *test)
+{
+	struct string_stream *stream = new_string_stream();
+	char *output;
+
+	string_stream_add(stream, "Foo");
+	string_stream_add(stream, " %s", "bar");
+
+	output = string_stream_get_string(stream);
+	KUNIT_EXPECT_STREQ(test, output, "Foo bar");
+	kfree(output);
+	destroy_string_stream(stream);
+}
+
+static void string_stream_test_add_and_clear(struct kunit *test)
+{
+	struct string_stream *stream = new_string_stream();
+	char *output;
+	int i;
+
+	for (i = 0; i < 10; i++)
+		string_stream_add(stream, "A");
+
+	output = string_stream_get_string(stream);
+	KUNIT_EXPECT_STREQ(test, output, "AAAAAAAAAA");
+	KUNIT_EXPECT_EQ(test, stream->length, 10);
+	KUNIT_EXPECT_FALSE(test, string_stream_is_empty(stream));
+	kfree(output);
+
+	string_stream_clear(stream);
+
+	output = string_stream_get_string(stream);
+	KUNIT_EXPECT_STREQ(test, output, "");
+	KUNIT_EXPECT_TRUE(test, string_stream_is_empty(stream));
+	destroy_string_stream(stream);
+}
+
+static struct kunit_case string_stream_test_cases[] = {
+	KUNIT_CASE(string_stream_test_get_string),
+	KUNIT_CASE(string_stream_test_add_and_clear),
+	{}
+};
+
+static struct kunit_module string_stream_test_module = {
+	.name = "string-stream-test",
+	.test_cases = string_stream_test_cases
+};
+module_test(string_stream_test_module);
+
-- 
2.21.0.593.g511ec345e18-goog

WARNING: multiple messages have this Message-ID (diff)
From: Brendan Higgins <brendanhiggins@google.com>
To: frowand.list@gmail.com, gregkh@linuxfoundation.org,
	keescook@google.com, kieran.bingham@ideasonboard.com,
	mcgrof@kernel.org, robh@kernel.org, sboyd@kernel.org,
	shuah@kernel.org
Cc: pmladek@suse.com, linux-doc@vger.kernel.org, amir73il@gmail.com,
	Brendan Higgins <brendanhiggins@google.com>,
	dri-devel@lists.freedesktop.org, Alexander.Levin@microsoft.com,
	linux-kselftest@vger.kernel.org, linux-nvdimm@lists.01.org,
	khilman@baylibre.com, knut.omang@oracle.com, wfg@linux.intel.com,
	joel@jms.id.au, rientjes@google.com, jdike@addtoit.com,
	dan.carpenter@oracle.com, devicetree@vger.kernel.org,
	linux-kbuild@vger.kernel.org, Tim.Bird@sony.com,
	linux-um@lists.infradead.org, rostedt@goodmis.org,
	julia.lawall@lip6.fr, dan.j.williams@intel.com,
	kunit-dev@googlegroups.com, richard@nod.at,
	linux-kernel@vger.kernel.org, daniel@ffwll.ch,
	mpe@ellerman.id.au, linux-fsdevel@vger.kernel.org,
	logang@deltatee.com
Subject: [PATCH v2 07/17] kunit: test: add initial tests
Date: Wed,  1 May 2019 16:01:16 -0700	[thread overview]
Message-ID: <20190501230126.229218-8-brendanhiggins@google.com> (raw)
In-Reply-To: <20190501230126.229218-1-brendanhiggins@google.com>

Add a test for string stream along with a simpler example.

Signed-off-by: Brendan Higgins <brendanhiggins@google.com>
---
 kunit/Kconfig              | 12 ++++++
 kunit/Makefile             |  4 ++
 kunit/example-test.c       | 88 ++++++++++++++++++++++++++++++++++++++
 kunit/string-stream-test.c | 61 ++++++++++++++++++++++++++
 4 files changed, 165 insertions(+)
 create mode 100644 kunit/example-test.c
 create mode 100644 kunit/string-stream-test.c

diff --git a/kunit/Kconfig b/kunit/Kconfig
index 64480092b2c24..5cb500355c873 100644
--- a/kunit/Kconfig
+++ b/kunit/Kconfig
@@ -13,4 +13,16 @@ config KUNIT
 	  special hardware. For more information, please see
 	  Documentation/kunit/
 
+config KUNIT_TEST
+	bool "KUnit test for KUnit"
+	depends on KUNIT
+	help
+	  Enables KUnit test to test KUnit.
+
+config KUNIT_EXAMPLE_TEST
+	bool "Example test for KUnit"
+	depends on KUNIT
+	help
+	  Enables example KUnit test to demo features of KUnit.
+
 endmenu
diff --git a/kunit/Makefile b/kunit/Makefile
index 6ddc622ee6b1c..60a9ea6cb4697 100644
--- a/kunit/Makefile
+++ b/kunit/Makefile
@@ -1,3 +1,7 @@
 obj-$(CONFIG_KUNIT) +=			test.o \
 					string-stream.o \
 					kunit-stream.o
+
+obj-$(CONFIG_KUNIT_TEST) +=		string-stream-test.o
+
+obj-$(CONFIG_KUNIT_EXAMPLE_TEST) +=	example-test.o
diff --git a/kunit/example-test.c b/kunit/example-test.c
new file mode 100644
index 0000000000000..3947dd7c8f922
--- /dev/null
+++ b/kunit/example-test.c
@@ -0,0 +1,88 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Example KUnit test to show how to use KUnit.
+ *
+ * Copyright (C) 2019, Google LLC.
+ * Author: Brendan Higgins <brendanhiggins@google.com>
+ */
+
+#include <kunit/test.h>
+
+/*
+ * This is the most fundamental element of KUnit, the test case. A test case
+ * makes a set EXPECTATIONs and ASSERTIONs about the behavior of some code; if
+ * any expectations or assertions are not met, the test fails; otherwise, the
+ * test passes.
+ *
+ * In KUnit, a test case is just a function with the signature
+ * `void (*)(struct kunit *)`. `struct kunit` is a context object that stores
+ * information about the current test.
+ */
+static void example_simple_test(struct kunit *test)
+{
+	/*
+	 * This is an EXPECTATION; it is how KUnit tests things. When you want
+	 * to test a piece of code, you set some expectations about what the
+	 * code should do. KUnit then runs the test and verifies that the code's
+	 * behavior matched what was expected.
+	 */
+	KUNIT_EXPECT_EQ(test, 1 + 1, 2);
+}
+
+/*
+ * This is run once before each test case, see the comment on
+ * example_test_module for more information.
+ */
+static int example_test_init(struct kunit *test)
+{
+	kunit_info(test, "initializing\n");
+
+	return 0;
+}
+
+/*
+ * Here we make a list of all the test cases we want to add to the test module
+ * below.
+ */
+static struct kunit_case example_test_cases[] = {
+	/*
+	 * This is a helper to create a test case object from a test case
+	 * function; its exact function is not important to understand how to
+	 * use KUnit, just know that this is how you associate test cases with a
+	 * test module.
+	 */
+	KUNIT_CASE(example_simple_test),
+	{},
+};
+
+/*
+ * This defines a suite or grouping of tests.
+ *
+ * Test cases are defined as belonging to the suite by adding them to
+ * `kunit_cases`.
+ *
+ * Often it is desirable to run some function which will set up things which
+ * will be used by every test; this is accomplished with an `init` function
+ * which runs before each test case is invoked. Similarly, an `exit` function
+ * may be specified which runs after every test case and can be used to for
+ * cleanup. For clarity, running tests in a test module would behave as follows:
+ *
+ * module.init(test);
+ * module.test_case[0](test);
+ * module.exit(test);
+ * module.init(test);
+ * module.test_case[1](test);
+ * module.exit(test);
+ * ...;
+ */
+static struct kunit_module example_test_module = {
+	.name = "example",
+	.init = example_test_init,
+	.test_cases = example_test_cases,
+};
+
+/*
+ * This registers the above test module telling KUnit that this is a suite of
+ * tests that need to be run.
+ */
+module_test(example_test_module);
diff --git a/kunit/string-stream-test.c b/kunit/string-stream-test.c
new file mode 100644
index 0000000000000..b2a98576797c9
--- /dev/null
+++ b/kunit/string-stream-test.c
@@ -0,0 +1,61 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * KUnit test for struct string_stream.
+ *
+ * Copyright (C) 2019, Google LLC.
+ * Author: Brendan Higgins <brendanhiggins@google.com>
+ */
+
+#include <linux/slab.h>
+#include <kunit/test.h>
+#include <kunit/string-stream.h>
+
+static void string_stream_test_get_string(struct kunit *test)
+{
+	struct string_stream *stream = new_string_stream();
+	char *output;
+
+	string_stream_add(stream, "Foo");
+	string_stream_add(stream, " %s", "bar");
+
+	output = string_stream_get_string(stream);
+	KUNIT_EXPECT_STREQ(test, output, "Foo bar");
+	kfree(output);
+	destroy_string_stream(stream);
+}
+
+static void string_stream_test_add_and_clear(struct kunit *test)
+{
+	struct string_stream *stream = new_string_stream();
+	char *output;
+	int i;
+
+	for (i = 0; i < 10; i++)
+		string_stream_add(stream, "A");
+
+	output = string_stream_get_string(stream);
+	KUNIT_EXPECT_STREQ(test, output, "AAAAAAAAAA");
+	KUNIT_EXPECT_EQ(test, stream->length, 10);
+	KUNIT_EXPECT_FALSE(test, string_stream_is_empty(stream));
+	kfree(output);
+
+	string_stream_clear(stream);
+
+	output = string_stream_get_string(stream);
+	KUNIT_EXPECT_STREQ(test, output, "");
+	KUNIT_EXPECT_TRUE(test, string_stream_is_empty(stream));
+	destroy_string_stream(stream);
+}
+
+static struct kunit_case string_stream_test_cases[] = {
+	KUNIT_CASE(string_stream_test_get_string),
+	KUNIT_CASE(string_stream_test_add_and_clear),
+	{}
+};
+
+static struct kunit_module string_stream_test_module = {
+	.name = "string-stream-test",
+	.test_cases = string_stream_test_cases
+};
+module_test(string_stream_test_module);
+
-- 
2.21.0.593.g511ec345e18-goog


_______________________________________________
linux-um mailing list
linux-um@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-um


  parent reply	other threads:[~2019-05-01 23:01 UTC|newest]

Thread overview: 694+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-01 23:01 [PATCH v2 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework Brendan Higgins
2019-05-01 23:01 ` Brendan Higgins
2019-05-01 23:01 ` Brendan Higgins
2019-05-01 23:01 ` brendanhiggins
2019-05-01 23:01 ` [PATCH v2 01/17] kunit: test: add KUnit test runner core Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 02/17] kunit: test: add test resource management API Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` brendanhiggins
2019-05-01 23:01 ` [PATCH v2 03/17] kunit: test: add string_stream a std::stream like string builder Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` brendanhiggins
     [not found]   ` <20190501230126.229218-4-brendanhiggins-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2019-05-03  1:26     ` shuah
2019-05-03  1:26       ` shuah
2019-05-03  1:26       ` shuah
2019-05-03  1:26       ` shuah
2019-05-03  1:26       ` shuah
2019-05-03  4:37       ` Brendan Higgins
2019-05-03  4:37         ` Brendan Higgins
2019-05-03  4:37         ` Brendan Higgins
2019-05-03  4:37         ` brendanhiggins
2019-05-03  4:37         ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 04/17] kunit: test: add kunit_stream a std::stream like logger Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` brendanhiggins
2019-05-02 11:00   ` Greg KH
2019-05-02 11:00     ` Greg KH
2019-05-02 11:00     ` Greg KH
2019-05-02 11:00     ` gregkh
2019-05-02 11:00     ` Greg KH
2019-05-02 20:25     ` Brendan Higgins
2019-05-02 20:25       ` Brendan Higgins
2019-05-02 20:25       ` Brendan Higgins
2019-05-02 20:25       ` brendanhiggins
2019-05-02 20:25       ` Brendan Higgins
2019-05-02 21:18       ` Frank Rowand
2019-05-02 21:18         ` Frank Rowand
2019-05-02 21:18         ` Frank Rowand
2019-05-02 21:18         ` frowand.list
2019-05-02 21:18         ` Frank Rowand
2019-05-02 21:18         ` Frank Rowand
2019-05-03  1:50   ` shuah
2019-05-03  1:50     ` shuah
2019-05-03  1:50     ` shuah
2019-05-03  1:50     ` shuah
2019-05-03  5:48     ` Brendan Higgins
2019-05-03  5:48       ` Brendan Higgins
2019-05-03  5:48       ` Brendan Higgins
2019-05-03  5:48       ` brendanhiggins
2019-05-03  5:48       ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 05/17] kunit: test: add the concept of expectations Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` brendanhiggins
2019-05-01 23:01 ` [PATCH v2 06/17] kbuild: enable building KUnit Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` brendanhiggins
2019-05-10  3:03   ` Masahiro Yamada
2019-05-10  3:03     ` Masahiro Yamada
2019-05-10  3:03     ` Masahiro Yamada
2019-05-10  3:03     ` Masahiro Yamada
2019-05-10  3:03     ` yamada.masahiro
2019-05-10  3:03     ` Masahiro Yamada
     [not found]     ` <CAK7LNAQ+SRMn8UFjW1dZv_TrL0qjD2v2S=rXgtUpiA-urr1DDA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-05-10 10:27       ` Brendan Higgins
2019-05-10 10:27         ` Brendan Higgins
2019-05-10 10:27         ` Brendan Higgins
2019-05-10 10:27         ` Brendan Higgins
2019-05-10 10:27         ` brendanhiggins
2019-05-10 10:27         ` Brendan Higgins
2019-05-10 10:30         ` Masahiro Yamada
2019-05-10 10:30           ` Masahiro Yamada
2019-05-10 10:30           ` Masahiro Yamada
2019-05-10 10:30           ` Masahiro Yamada
2019-05-10 10:30           ` yamada.masahiro
2019-05-10 10:30           ` Masahiro Yamada
2019-05-10 10:33           ` Brendan Higgins
2019-05-10 10:33             ` Brendan Higgins
2019-05-10 10:33             ` Brendan Higgins
2019-05-10 10:33             ` Brendan Higgins
2019-05-10 10:33             ` brendanhiggins
2019-05-10 10:33             ` Brendan Higgins
2019-05-01 23:01 ` Brendan Higgins [this message]
2019-05-01 23:01   ` [PATCH v2 07/17] kunit: test: add initial tests Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` brendanhiggins
2019-05-02 10:58   ` Greg KH
2019-05-02 10:58     ` Greg KH
2019-05-02 10:58     ` Greg KH
2019-05-02 10:58     ` gregkh
2019-05-02 10:58     ` Greg KH
2019-05-02 20:30     ` Brendan Higgins
2019-05-02 20:30       ` Brendan Higgins
2019-05-02 20:30       ` Brendan Higgins
2019-05-02 20:30       ` brendanhiggins
2019-05-02 20:30       ` Brendan Higgins
2019-05-03  1:27   ` shuah
2019-05-03  1:27     ` shuah
2019-05-03  1:27     ` shuah
2019-05-03  1:27     ` shuah
     [not found]     ` <d4934565-9b41-880e-3bbe-984224b50fac-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2019-05-03  5:18       ` Brendan Higgins
2019-05-03  5:18         ` Brendan Higgins
2019-05-03  5:18         ` Brendan Higgins
2019-05-03  5:18         ` brendanhiggins
2019-05-03  5:18         ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 08/17] kunit: test: add support for test abort Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` brendanhiggins
     [not found]   ` <20190501230126.229218-9-brendanhiggins-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2019-05-03  3:14     ` Logan Gunthorpe
2019-05-03  3:14       ` Logan Gunthorpe
2019-05-03  3:14       ` Logan Gunthorpe
2019-05-03  3:14       ` logang
2019-05-03  3:14       ` Logan Gunthorpe
2019-05-03  6:48       ` Brendan Higgins
2019-05-03  6:48         ` Brendan Higgins
2019-05-03  6:48         ` Brendan Higgins
2019-05-03  6:48         ` brendanhiggins
2019-05-03  6:48         ` Brendan Higgins
     [not found]         ` <CAFd5g47hxAd=+72xbPJbWPdZCXRXmtLpsGhUh=zc7MSwfcaGJQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-05-03 12:33           ` Logan Gunthorpe
2019-05-03 12:33             ` Logan Gunthorpe
2019-05-03 12:33             ` Logan Gunthorpe
2019-05-03 12:33             ` logang
2019-05-03 12:33             ` Logan Gunthorpe
2019-05-06  8:48             ` Brendan Higgins
2019-05-06  8:48               ` Brendan Higgins
2019-05-06  8:48               ` Brendan Higgins
2019-05-06  8:48               ` brendanhiggins
2019-05-06  8:48               ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 09/17] kunit: test: add tests for kunit " Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` brendanhiggins
2019-05-01 23:01 ` [PATCH v2 10/17] kunit: test: add the concept of assertions Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` brendanhiggins
2019-05-01 23:01 ` [PATCH v2 11/17] kunit: test: add test managed resource tests Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` brendanhiggins
2019-05-03 14:34   ` shuah
2019-05-03 14:34     ` shuah
2019-05-03 14:34     ` shuah
2019-05-03 14:34     ` shuah
2019-05-06  9:03     ` Brendan Higgins
2019-05-06  9:03       ` Brendan Higgins
2019-05-06  9:03       ` brendanhiggins
2019-05-06  9:03       ` Brendan Higgins
2019-05-01 23:01 ` [PATCH v2 12/17] kunit: tool: add Python wrappers for running KUnit tests Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` brendanhiggins
2019-05-02 11:02   ` Greg KH
2019-05-02 11:02     ` Greg KH
2019-05-02 11:02     ` Greg KH
2019-05-02 11:02     ` gregkh
2019-05-02 11:02     ` Greg KH
2019-05-02 18:07     ` Brendan Higgins
2019-05-02 18:07       ` Brendan Higgins
2019-05-02 18:07       ` Brendan Higgins
2019-05-02 18:07       ` brendanhiggins
2019-05-02 18:07       ` Brendan Higgins
2019-05-02 21:16       ` Frank Rowand
2019-05-02 21:16         ` Frank Rowand
2019-05-02 21:16         ` Frank Rowand
2019-05-02 21:16         ` frowand.list
2019-05-02 21:16         ` Frank Rowand
     [not found]         ` <a49c5088-a821-210c-66de-f422536f5b01-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-05-02 23:45           ` Brendan Higgins
2019-05-02 23:45             ` Brendan Higgins
2019-05-02 23:45             ` Brendan Higgins
2019-05-02 23:45             ` brendanhiggins
2019-05-02 23:45             ` Brendan Higgins
     [not found]             ` <CAFd5g44iWRchQKdJYtjRtPY6e-6e0eXpKXXsx5Ooi6sWE474KA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-05-03  1:45               ` Frank Rowand
2019-05-03  1:45                 ` Frank Rowand
2019-05-03  1:45                 ` Frank Rowand
2019-05-03  1:45                 ` frowand.list
2019-05-03  1:45                 ` Frank Rowand
2019-05-03  5:36                 ` Brendan Higgins
2019-05-03  5:36                   ` Brendan Higgins
2019-05-03  5:36                   ` Brendan Higgins
2019-05-03  5:36                   ` brendanhiggins
2019-05-03  5:36                   ` Brendan Higgins
2019-05-03 18:59                   ` Frank Rowand
2019-05-03 18:59                     ` Frank Rowand
2019-05-03 18:59                     ` Frank Rowand
2019-05-03 18:59                     ` frowand.list
2019-05-03 18:59                     ` Frank Rowand
     [not found]                     ` <052fa196-4ea9-8384-79b7-fe6bacc0ee82-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-05-03 23:14                       ` Brendan Higgins
2019-05-03 23:14                         ` Brendan Higgins
2019-05-03 23:14                         ` Brendan Higgins
2019-05-03 23:14                         ` brendanhiggins
2019-05-03 23:14                         ` Brendan Higgins
2019-05-04 10:42                         ` Greg KH
2019-05-04 10:42                           ` Greg KH
2019-05-04 10:42                           ` Greg KH
2019-05-04 10:42                           ` gregkh
2019-05-04 10:42                           ` Greg KH
     [not found]                         ` <CAFd5g47aY-CL+d7DfiyTidY4aAVY+eg1TM1UJ4nYqKSfHOi-0w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-05-06  0:19                           ` Frank Rowand
2019-05-06  0:19                             ` Frank Rowand
2019-05-06  0:19                             ` Frank Rowand
2019-05-06  0:19                             ` frowand.list
2019-05-06  0:19                             ` Frank Rowand
2019-05-06 17:43                             ` Kees Cook
2019-05-06 17:43                               ` Kees Cook
2019-05-06 17:43                               ` Kees Cook
2019-05-06 17:43                               ` Kees Cook
2019-05-06 17:43                               ` keescook
2019-05-06 17:43                               ` Kees Cook
2019-05-06 21:42                               ` Brendan Higgins
2019-05-06 21:42                                 ` Brendan Higgins
2019-05-06 21:42                                 ` Brendan Higgins
2019-05-06 21:42                                 ` Brendan Higgins
2019-05-06 21:42                                 ` brendanhiggins
2019-05-06 21:42                                 ` Brendan Higgins
2019-05-06 21:39                             ` Brendan Higgins
2019-05-06 21:39                               ` Brendan Higgins
2019-05-06 21:39                               ` Brendan Higgins
2019-05-06 21:39                               ` brendanhiggins
2019-05-06 21:39                               ` Brendan Higgins
     [not found]                               ` <CAFd5g46=ZU58uJ=Qhs3soBzJjzJKJFY0_uzZ7fe1CxPfJioNOA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-05-07 19:13                                 ` Tim.Bird-7U/KSKJipcs
2019-05-07 19:13                                   ` Tim.Bird
2019-05-07 19:13                                   ` Tim.Bird
2019-05-07 19:13                                   ` Tim.Bird
2019-05-07 19:13                                   ` Tim.Bird
2019-05-07 19:13                                   ` Tim.Bird
2019-05-03  6:41             ` Greg KH
2019-05-03  6:41               ` Greg KH
2019-05-03  6:41               ` Greg KH
2019-05-03  6:41               ` gregkh
2019-05-03  6:41               ` Greg KH
2019-05-01 23:01 ` [PATCH v2 13/17] kunit: defconfig: add defconfigs for building " Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` brendanhiggins
2019-05-01 23:01   ` Brendan Higgins
     [not found] ` <20190501230126.229218-1-brendanhiggins-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2019-05-01 23:01   ` [PATCH v2 14/17] Documentation: kunit: add documentation for KUnit Brendan Higgins
2019-05-01 23:01     ` Brendan Higgins
2019-05-01 23:01     ` Brendan Higgins
2019-05-01 23:01     ` brendanhiggins
2019-05-01 23:01     ` Brendan Higgins
     [not found]     ` <20190501230126.229218-15-brendanhiggins-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2019-05-09  5:08       ` Randy Dunlap
2019-05-09  5:08         ` Randy Dunlap
2019-05-09  5:08         ` Randy Dunlap
2019-05-09  5:08         ` rdunlap
2019-05-09  5:08         ` Randy Dunlap
2019-05-09 17:38         ` Brendan Higgins
2019-05-09 17:38           ` Brendan Higgins
2019-05-09 17:38           ` Brendan Higgins
2019-05-09 17:38           ` Brendan Higgins
2019-05-09 17:38           ` brendanhiggins
2019-05-09 17:38           ` Brendan Higgins
2019-05-01 23:01   ` [PATCH v2 15/17] MAINTAINERS: add entry for KUnit the unit testing framework Brendan Higgins
2019-05-01 23:01     ` Brendan Higgins
2019-05-01 23:01     ` Brendan Higgins
2019-05-01 23:01     ` brendanhiggins
2019-05-01 23:01     ` Brendan Higgins
2019-05-03 14:38     ` shuah
2019-05-03 14:38       ` shuah
2019-05-03 14:38       ` shuah
2019-05-03 14:38       ` shuah
2019-05-03 14:38       ` shuah
2019-05-06  9:18       ` Brendan Higgins
2019-05-06  9:18         ` Brendan Higgins
2019-05-06  9:18         ` Brendan Higgins
2019-05-06  9:18         ` brendanhiggins
2019-05-06  9:18         ` Brendan Higgins
2019-05-01 23:01   ` [PATCH v2 16/17] kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec() Brendan Higgins
2019-05-01 23:01     ` Brendan Higgins
2019-05-01 23:01     ` Brendan Higgins
2019-05-01 23:01     ` brendanhiggins
2019-05-01 23:01     ` Brendan Higgins
2019-05-02 11:03     ` Greg KH
2019-05-02 11:03       ` Greg KH
2019-05-02 11:03       ` Greg KH
2019-05-02 11:03       ` gregkh
2019-05-02 11:03       ` Greg KH
2019-05-02 18:14       ` Tim.Bird
2019-05-02 18:14         ` Tim.Bird
2019-05-02 18:14         ` Tim.Bird
2019-05-02 18:14         ` Tim.Bird
2019-05-02 18:14         ` Tim.Bird
2019-05-02 18:14         ` Tim.Bird
2019-05-02 18:45         ` Brendan Higgins
2019-05-02 18:45           ` Brendan Higgins
2019-05-02 18:45           ` Brendan Higgins
2019-05-02 18:45           ` brendanhiggins
2019-05-02 18:45           ` Brendan Higgins
2019-05-03  6:42           ` Greg KH
2019-05-03  6:42             ` Greg KH
2019-05-03  6:42             ` Greg KH
2019-05-03  6:42             ` gregkh
2019-05-03  6:42             ` Greg KH
2019-05-03 23:41             ` Brendan Higgins
2019-05-03 23:41               ` Brendan Higgins
2019-05-03 23:41               ` Brendan Higgins
2019-05-03 23:41               ` brendanhiggins
2019-05-03 23:41               ` Brendan Higgins
2019-05-04 10:40               ` Greg KH
2019-05-04 10:40                 ` Greg KH
2019-05-04 10:40                 ` Greg KH
2019-05-04 10:40                 ` gregkh
2019-05-04 10:40                 ` Greg KH
2019-05-01 23:01 ` [PATCH v2 17/17] MAINTAINERS: add proc sysctl KUnit test to PROC SYSCTL section Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` Brendan Higgins
2019-05-01 23:01   ` brendanhiggins
2019-05-02 10:50 ` [PATCH v2 00/17] kunit: introduce KUnit, the Linux kernel unit testing framework Greg KH
2019-05-02 10:50   ` Greg KH
2019-05-02 10:50   ` Greg KH
2019-05-02 10:50   ` gregkh
2019-05-02 10:50   ` Greg KH
2019-05-02 11:05   ` Greg KH
2019-05-02 11:05     ` Greg KH
2019-05-02 11:05     ` Greg KH
2019-05-02 11:05     ` gregkh
2019-05-02 11:05     ` Greg KH
2019-05-03  0:41     ` Brendan Higgins
2019-05-03  0:41       ` Brendan Higgins
2019-05-03  0:41       ` Brendan Higgins
2019-05-03  0:41       ` brendanhiggins
2019-05-03  0:41       ` Brendan Higgins
2019-05-02 14:04   ` shuah
2019-05-02 14:04     ` shuah
2019-05-02 14:04     ` shuah
2019-05-02 14:04     ` shuah
2019-05-02 14:04     ` shuah
2019-05-02 14:04     ` shuah
2019-05-03  0:44     ` Brendan Higgins
2019-05-03  0:44       ` Brendan Higgins
2019-05-03  0:44       ` Brendan Higgins
2019-05-03  0:44       ` brendanhiggins
2019-05-03  0:44       ` Brendan Higgins
2019-05-03  3:18 ` Logan Gunthorpe
2019-05-03  3:18   ` Logan Gunthorpe
2019-05-03  3:18   ` Logan Gunthorpe
2019-05-03  3:18   ` logang
2019-05-03  3:18   ` Logan Gunthorpe
2019-05-07  3:14 ` Frank Rowand
2019-05-07  3:14   ` Frank Rowand
2019-05-07  3:14   ` Frank Rowand
2019-05-07  3:14   ` frowand.list
     [not found]   ` <54940124-50df-16ec-1a32-ad794ee05da7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-05-07  8:01     ` Greg KH
2019-05-07  8:01       ` Greg KH
2019-05-07  8:01       ` gregkh
2019-05-07  8:01       ` Greg KH
2019-05-07 15:23       ` shuah
2019-05-07 15:23         ` shuah
2019-05-07 15:23         ` shuah
2019-05-07 15:23         ` shuah
2019-05-07 15:23         ` shuah
2019-05-07 15:23         ` shuah
2019-05-09  1:01         ` Frank Rowand
2019-05-09  1:01           ` Frank Rowand
2019-05-09  1:01           ` Frank Rowand
2019-05-09  1:01           ` frowand.list
2019-05-09  1:01           ` Frank Rowand
2019-05-09  1:01           ` Frank Rowand
2019-05-07 17:22       ` Theodore Ts'o
2019-05-07 17:22         ` Theodore Ts'o
2019-05-07 17:22         ` Theodore Ts'o
2019-05-07 17:22         ` tytso
2019-05-07 17:22         ` Theodore Ts'o
2019-05-07 17:22         ` Theodore Ts'o
2019-05-08 19:17         ` Brendan Higgins
2019-05-08 19:17           ` Brendan Higgins
2019-05-08 19:17           ` Brendan Higgins
2019-05-08 19:17           ` Brendan Higgins
2019-05-08 19:17           ` brendanhiggins
2019-05-08 19:17           ` Brendan Higgins
2019-05-09  0:58         ` Frank Rowand
2019-05-09  0:58           ` Frank Rowand
2019-05-09  0:58           ` Frank Rowand
2019-05-09  0:58           ` frowand.list
2019-05-09  0:58           ` Frank Rowand
2019-05-09  0:58           ` Frank Rowand
2019-05-09  1:44           ` Theodore Ts'o
2019-05-09  1:44             ` Theodore Ts'o
2019-05-09  1:44             ` Theodore Ts'o
2019-05-09  1:44             ` tytso
2019-05-09  1:44             ` Theodore Ts'o
2019-05-09  1:44             ` Theodore Ts'o
2019-05-09  2:18             ` Frank Rowand
2019-05-09  2:18               ` Frank Rowand
2019-05-09  2:18               ` Frank Rowand
2019-05-09  2:18               ` frowand.list
2019-05-09  2:18               ` Frank Rowand
2019-05-09  2:18               ` Frank Rowand
2019-05-14  8:22           ` Brendan Higgins
2019-05-14  8:22             ` Brendan Higgins
2019-05-14  8:22             ` brendanhiggins
2019-05-14  8:22             ` Brendan Higgins
2019-05-09  0:43       ` Frank Rowand
2019-05-09  0:43         ` Frank Rowand
2019-05-09  0:43         ` Frank Rowand
2019-05-09  0:43         ` frowand.list
2019-05-09  0:43         ` Frank Rowand
2019-05-09  0:43         ` Frank Rowand
2019-05-09  1:58         ` Theodore Ts'o
2019-05-09  1:58           ` Theodore Ts'o
2019-05-09  1:58           ` Theodore Ts'o
2019-05-09  1:58           ` tytso
2019-05-09  1:58           ` Theodore Ts'o
2019-05-09  1:58           ` Theodore Ts'o
2019-05-09  2:13           ` Frank Rowand
2019-05-09  2:13             ` Frank Rowand
2019-05-09  2:13             ` Frank Rowand
2019-05-09  2:13             ` frowand.list
2019-05-09  2:13             ` Frank Rowand
2019-05-09  2:13             ` Frank Rowand
2019-05-09  3:20             ` Theodore Ts'o
2019-05-09  3:20               ` Theodore Ts'o
2019-05-09  3:20               ` Theodore Ts'o
2019-05-09  3:20               ` tytso
2019-05-09  3:20               ` Theodore Ts'o
2019-05-09  3:20               ` Theodore Ts'o
     [not found]               ` <20190509032017.GA29703-3s7WtUTddSA@public.gmane.org>
2019-05-09 11:52                 ` Knut Omang
2019-05-09 11:52                   ` Knut Omang
2019-05-09 11:52                   ` Knut Omang
2019-05-09 11:52                   ` knut.omang
2019-05-09 11:52                   ` Knut Omang
2019-05-09 13:35                   ` Theodore Ts'o
2019-05-09 13:35                     ` Theodore Ts'o
2019-05-09 13:35                     ` Theodore Ts'o
2019-05-09 13:35                     ` tytso
2019-05-09 13:35                     ` Theodore Ts'o
2019-05-09 13:35                     ` Theodore Ts'o
     [not found]                     ` <20190509133551.GD29703-3s7WtUTddSA@public.gmane.org>
2019-05-09 14:48                       ` Knut Omang
2019-05-09 14:48                         ` Knut Omang
2019-05-09 14:48                         ` Knut Omang
2019-05-09 14:48                         ` knut.omang
2019-05-09 14:48                         ` Knut Omang
2019-05-09 17:00                       ` Tim.Bird-7U/KSKJipcs
2019-05-09 17:00                         ` Tim.Bird
2019-05-09 17:00                         ` Tim.Bird
2019-05-09 17:00                         ` Tim.Bird
2019-05-09 17:00                         ` Tim.Bird
2019-05-09 17:00                         ` Tim.Bird
2019-05-09 17:42                         ` Daniel Vetter
2019-05-09 17:42                           ` Daniel Vetter
2019-05-09 17:42                           ` Daniel Vetter
2019-05-09 17:42                           ` Daniel Vetter
2019-05-09 17:42                           ` daniel
2019-05-09 17:42                           ` Daniel Vetter
2019-05-09 18:12                         ` Frank Rowand
2019-05-09 18:12                           ` Frank Rowand
2019-05-09 18:12                           ` Frank Rowand
2019-05-09 18:12                           ` frowand.list
2019-05-09 18:12                           ` Frank Rowand
2019-05-09 18:12                           ` Frank Rowand
2019-05-09 21:42                           ` Theodore Ts'o
2019-05-09 21:42                             ` Theodore Ts'o
2019-05-09 21:42                             ` Theodore Ts'o
2019-05-09 21:42                             ` tytso
2019-05-09 21:42                             ` Theodore Ts'o
2019-05-09 21:42                             ` Theodore Ts'o
2019-05-09 22:20                             ` Logan Gunthorpe
2019-05-09 22:20                               ` Logan Gunthorpe
2019-05-09 22:20                               ` Logan Gunthorpe
2019-05-09 22:20                               ` logang
2019-05-09 22:20                               ` Logan Gunthorpe
2019-05-09 22:20                               ` Logan Gunthorpe
2019-05-09 23:30                               ` Theodore Ts'o
2019-05-09 23:30                                 ` Theodore Ts'o
2019-05-09 23:30                                 ` Theodore Ts'o
2019-05-09 23:30                                 ` tytso
2019-05-09 23:30                                 ` Theodore Ts'o
2019-05-09 23:30                                 ` Theodore Ts'o
2019-05-09 23:40                                 ` Logan Gunthorpe
2019-05-09 23:40                                   ` Logan Gunthorpe
2019-05-09 23:40                                   ` Logan Gunthorpe
2019-05-09 23:40                                   ` logang
2019-05-09 23:40                                   ` Logan Gunthorpe
2019-05-09 23:40                                   ` Logan Gunthorpe
2019-05-10  4:47                                   ` Theodore Ts'o
2019-05-10  4:47                                     ` Theodore Ts'o
2019-05-10  4:47                                     ` Theodore Ts'o
2019-05-10  4:47                                     ` tytso
2019-05-10  4:47                                     ` Theodore Ts'o
2019-05-10  4:47                                     ` Theodore Ts'o
2019-05-10  5:18                                   ` Frank Rowand
2019-05-10  5:18                                     ` Frank Rowand
2019-05-10  5:18                                     ` Frank Rowand
2019-05-10  5:18                                     ` frowand.list
2019-05-10  5:18                                     ` Frank Rowand
2019-05-10  5:18                                     ` Frank Rowand
     [not found]                                     ` <6d6e91ec-33d3-830b-4895-4d7a20ba7d45-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-05-10  5:48                                       ` Knut Omang
2019-05-10  5:48                                         ` Knut Omang
2019-05-10  5:48                                         ` Knut Omang
2019-05-10  5:48                                         ` knut.omang
2019-05-10  5:48                                         ` Knut Omang
2019-05-10  8:12                                         ` Daniel Vetter
2019-05-10  8:12                                           ` Daniel Vetter
2019-05-10  8:12                                           ` Daniel Vetter
2019-05-10  8:12                                           ` Daniel Vetter
2019-05-10  8:12                                           ` daniel
2019-05-10  8:12                                           ` Daniel Vetter
2019-05-10 10:23                                           ` Brendan Higgins
2019-05-10 10:23                                             ` Brendan Higgins
2019-05-10 10:23                                             ` Brendan Higgins
2019-05-10 10:23                                             ` brendanhiggins
2019-05-10 10:23                                             ` Brendan Higgins
     [not found]                                             ` <CAFd5g47Fvafwgh15JNfxSBRf5qqG2z+V+XGAB2cJtNnHFTiFfQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-05-10 12:12                                               ` Knut Omang
2019-05-10 12:12                                                 ` Knut Omang
2019-05-10 12:12                                                 ` Knut Omang
2019-05-10 12:12                                                 ` Knut Omang
2019-05-10 12:12                                                 ` knut.omang
2019-05-10 12:12                                                 ` Knut Omang
2019-05-10 20:54                                                 ` Brendan Higgins
2019-05-10 20:54                                                   ` Brendan Higgins
2019-05-10 20:54                                                   ` Brendan Higgins
2019-05-10 20:54                                                   ` Brendan Higgins
2019-05-10 20:54                                                   ` brendanhiggins
2019-05-10 20:54                                                   ` Brendan Higgins
2019-05-10 22:18                                                   ` Frank Rowand
2019-05-10 22:18                                                     ` Frank Rowand
2019-05-10 22:18                                                     ` Frank Rowand
2019-05-10 22:18                                                     ` Frank Rowand
2019-05-10 22:18                                                     ` frowand.list
2019-05-10 22:18                                                     ` Frank Rowand
     [not found]                                                     ` <ccec4818-1b9d-2554-e0e4-433eba659c8e-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-05-11  6:17                                                       ` Knut Omang
2019-05-11  6:17                                                         ` Knut Omang
2019-05-11  6:17                                                         ` Knut Omang
2019-05-11  6:17                                                         ` Knut Omang
2019-05-11  6:17                                                         ` knut.omang
2019-05-11  6:17                                                         ` Knut Omang
2019-05-14  6:39                                                         ` Brendan Higgins
2019-05-14  6:39                                                           ` Brendan Higgins
2019-05-14  6:39                                                           ` Brendan Higgins
2019-05-14  6:39                                                           ` Brendan Higgins
2019-05-14  6:39                                                           ` brendanhiggins
2019-05-14  6:39                                                           ` Brendan Higgins
2019-05-10 21:59                                             ` Frank Rowand
2019-05-10 21:59                                               ` Frank Rowand
2019-05-10 21:59                                               ` Frank Rowand
2019-05-10 21:59                                               ` Frank Rowand
2019-05-10 21:59                                               ` frowand.list
2019-05-10 21:59                                               ` Frank Rowand
     [not found]                                               ` <8abaf5f2-dd33-98d0-7b34-b57de7fe7c8b-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-05-11  6:43                                                 ` Knut Omang
2019-05-11  6:43                                                   ` Knut Omang
2019-05-11  6:43                                                   ` Knut Omang
2019-05-11  6:43                                                   ` Knut Omang
2019-05-11  6:43                                                   ` knut.omang
2019-05-11  6:43                                                   ` Knut Omang
     [not found]                                                   ` <a3362d96a6d95d852753739384ded814f5269aac.camel-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2019-05-14  8:00                                                     ` Brendan Higgins
2019-05-14  8:00                                                       ` Brendan Higgins
2019-05-14  8:00                                                       ` Brendan Higgins
2019-05-14  8:00                                                       ` Brendan Higgins
2019-05-14  8:00                                                       ` brendanhiggins
2019-05-14  8:00                                                       ` Brendan Higgins
     [not found]                                           ` <CAKMK7uFd1xUx8u3xWLwifVSq4OEnMO4S-m0hESe68UzONXnMFg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-05-10 11:36                                             ` Knut Omang
2019-05-10 11:36                                               ` Knut Omang
2019-05-10 11:36                                               ` Knut Omang
2019-05-10 11:36                                               ` Knut Omang
2019-05-10 11:36                                               ` knut.omang
2019-05-10 11:36                                               ` Knut Omang
2019-05-10 16:17                                     ` Logan Gunthorpe
2019-05-10 16:17                                       ` Logan Gunthorpe
2019-05-10 16:17                                       ` Logan Gunthorpe
2019-05-10 16:17                                       ` logang
2019-05-10 16:17                                       ` Logan Gunthorpe
2019-05-10 22:13                                       ` Frank Rowand
2019-05-10 22:13                                         ` Frank Rowand
2019-05-10 22:13                                         ` Frank Rowand
2019-05-10 22:13                                         ` frowand.list
2019-05-10 22:13                                         ` Frank Rowand
2019-05-10 22:13                                         ` Frank Rowand
2019-05-14  8:38                                         ` Brendan Higgins
2019-05-14  8:38                                           ` Brendan Higgins
2019-05-14  8:38                                           ` Brendan Higgins
2019-05-14  8:38                                           ` brendanhiggins
2019-05-14  8:38                                           ` Brendan Higgins
2019-05-15  0:14                                           ` Frank Rowand
2019-05-15  0:14                                             ` Frank Rowand
2019-05-15  0:14                                             ` Frank Rowand
2019-05-15  0:14                                             ` frowand.list
2019-05-15  0:14                                             ` Frank Rowand
2019-05-15  0:26                                             ` Logan Gunthorpe
2019-05-15  0:26                                               ` Logan Gunthorpe
2019-05-15  0:26                                               ` Logan Gunthorpe
2019-05-15  0:26                                               ` logang
2019-05-15  0:26                                               ` Logan Gunthorpe
2019-05-15  0:26                                               ` Logan Gunthorpe
2019-05-10 21:52                               ` Frank Rowand
2019-05-10 21:52                                 ` Frank Rowand
2019-05-10 21:52                                 ` Frank Rowand
2019-05-10 21:52                                 ` frowand.list
2019-05-10 21:52                                 ` Frank Rowand
2019-05-10 21:52                                 ` Frank Rowand
2019-05-14 20:54                                 ` Brendan Higgins
2019-05-14 20:54                                   ` Brendan Higgins
2019-05-14 20:54                                   ` Brendan Higgins
2019-05-14 20:54                                   ` brendanhiggins
2019-05-14 20:54                                   ` Brendan Higgins
2019-05-10 21:12                             ` Frank Rowand
2019-05-10 21:12                               ` Frank Rowand
2019-05-10 21:12                               ` Frank Rowand
2019-05-10 21:12                               ` frowand.list
2019-05-10 21:12                               ` Frank Rowand
2019-05-10 21:12                               ` Frank Rowand
2019-05-11 17:33                               ` Theodore Ts'o
2019-05-11 17:33                                 ` Theodore Ts'o
2019-05-11 17:33                                 ` Theodore Ts'o
2019-05-11 17:33                                 ` tytso
2019-05-11 17:33                                 ` Theodore Ts'o
2019-05-11 17:33                                 ` Theodore Ts'o
2019-05-13 14:44                                 ` Daniel Vetter
2019-05-13 14:44                                   ` Daniel Vetter
2019-05-13 14:44                                   ` Daniel Vetter
2019-05-13 14:44                                   ` daniel
2019-05-13 14:44                                   ` Daniel Vetter
2019-05-14  6:04                                   ` Brendan Higgins
2019-05-14  6:04                                     ` Brendan Higgins
2019-05-14  6:04                                     ` Brendan Higgins
2019-05-14  6:04                                     ` brendanhiggins
2019-05-14  6:04                                     ` Brendan Higgins
     [not found]                                     ` <20190514060433.GA181462-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2019-05-14 12:05                                       ` Daniel Vetter
2019-05-14 12:05                                         ` Daniel Vetter
2019-05-14 12:05                                         ` Daniel Vetter
2019-05-14 12:05                                         ` Daniel Vetter
2019-05-14 12:05                                         ` daniel
2019-05-14 12:05                                         ` Daniel Vetter
2019-05-14 18:36                                         ` Brendan Higgins
2019-05-14 18:36                                           ` Brendan Higgins
2019-05-14 18:36                                           ` Brendan Higgins
2019-05-14 18:36                                           ` Brendan Higgins
2019-05-14 18:36                                           ` brendanhiggins
2019-05-14 18:36                                           ` Brendan Higgins
2019-05-15  7:41                                           ` Daniel Vetter
2019-05-15  7:41                                             ` Daniel Vetter
2019-05-15  7:41                                             ` Daniel Vetter
2019-05-15  7:41                                             ` Daniel Vetter
2019-05-15  7:41                                             ` daniel
2019-05-15  7:41                                             ` Daniel Vetter
2019-05-15  7:41                                             ` Daniel Vetter
2019-05-22 21:38                                             ` Brendan Higgins
2019-05-22 21:38                                               ` Brendan Higgins
2019-05-22 21:38                                               ` Brendan Higgins
2019-05-22 21:38                                               ` Brendan Higgins
2019-05-22 21:38                                               ` brendanhiggins
2019-05-22 21:38                                               ` Brendan Higgins
2019-05-23  8:40                                               ` Daniel Vetter
2019-05-23  8:40                                                 ` Daniel Vetter
2019-05-23  8:40                                                 ` Daniel Vetter
2019-05-23  8:40                                                 ` Daniel Vetter
2019-05-23  8:40                                                 ` daniel
2019-05-23  8:40                                                 ` Daniel Vetter
2019-05-23  8:40                                                 ` Daniel Vetter
     [not found]                                             ` <20190515074141.GY17751-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2019-05-22 21:38                                               ` Brendan Higgins
2019-05-15  0:26                                 ` Frank Rowand
2019-05-15  0:26                                   ` Frank Rowand
2019-05-15  0:26                                   ` Frank Rowand
2019-05-15  0:26                                   ` frowand.list
2019-05-15  0:26                                   ` Frank Rowand
2019-05-15  4:28                                   ` Theodore Ts'o
2019-05-15  4:28                                     ` Theodore Ts'o
2019-05-15  4:28                                     ` Theodore Ts'o
2019-05-15  4:28                                     ` tytso
2019-05-15  4:28                                     ` Theodore Ts'o
2019-05-15  4:28                                     ` Theodore Ts'o
2019-05-10  5:11             ` Frank Rowand
2019-05-10  5:11               ` Frank Rowand
2019-05-10  5:11               ` Frank Rowand
2019-05-10  5:11               ` frowand.list
2019-05-10  5:11               ` Frank Rowand
2019-05-10  5:11               ` Frank Rowand
2019-05-10 10:43               ` Theodore Ts'o
2019-05-10 10:43                 ` Theodore Ts'o
2019-05-10 10:43                 ` Theodore Ts'o
2019-05-10 10:43                 ` tytso
2019-05-10 10:43                 ` Theodore Ts'o
2019-05-10 10:43                 ` Theodore Ts'o
2019-05-10 21:05                 ` Frank Rowand
2019-05-10 21:05                   ` Frank Rowand
2019-05-10 21:05                   ` Frank Rowand
2019-05-10 21:05                   ` frowand.list
2019-05-10 21:05                   ` Frank Rowand
2019-05-10 21:05                   ` Frank Rowand
2019-05-09 15:19 ` Masahiro Yamada
2019-05-09 15:19   ` Masahiro Yamada
2019-05-09 15:19   ` Masahiro Yamada
2019-05-09 15:19   ` Masahiro Yamada
2019-05-09 15:19   ` yamada.masahiro
2019-05-09 15:19   ` Masahiro Yamada
2019-05-10 10:25   ` Brendan Higgins
2019-05-10 10:25     ` Brendan Higgins
2019-05-10 10:25     ` Brendan Higgins
2019-05-10 10:25     ` Brendan Higgins
2019-05-10 10:25     ` brendanhiggins
2019-05-10 10:25     ` Brendan Higgins

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=20190501230126.229218-8-brendanhiggins@google.com \
    --to=brendanhiggins@google.com \
    --cc=Alexander.Levin@microsoft.com \
    --cc=Tim.Bird@sony.com \
    --cc=amir73il@gmail.com \
    --cc=dan.carpenter@oracle.com \
    --cc=dan.j.williams@intel.com \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=frowand.list@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jdike@addtoit.com \
    --cc=joel@jms.id.au \
    --cc=julia.lawall@lip6.fr \
    --cc=keescook@google.com \
    --cc=khilman@baylibre.com \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=knut.omang@oracle.com \
    --cc=kunit-dev@googlegroups.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-nvdimm@lists.01.org \
    --cc=linux-um@lists.infradead.org \
    --cc=logang@deltatee.com \
    --cc=mcgrof@kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=pmladek@suse.com \
    --cc=richard@nod.at \
    --cc=rientjes@google.com \
    --cc=robh@kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=sboyd@kernel.org \
    --cc=shuah@kernel.org \
    --cc=wfg@linux.intel.com \
    /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.