All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 1/6] lib/list_kunit: Follow new file name convention for KUnit tests
@ 2020-11-12 18:07 Andy Shevchenko
  2020-11-12 18:07 ` [PATCH v4 2/6] lib/linear_ranges_kunit: " Andy Shevchenko
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Andy Shevchenko @ 2020-11-12 18:07 UTC (permalink / raw)
  To: linux-kselftest, Andrew Morton, kunit-dev, Shuah Khan, Vitor Massaru Iha
  Cc: Mark Brown, Brendan Higgins, David Gow, Andy Shevchenko

Follow new file name convention for the KUnit tests.
Since we have lib/*test*.c in a few variations,
use 'kunit' suffix to distinguish usual test cases
with KUnit-based ones.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: David Gow <davidgow@google.com>
Acked-by: Brendan Higgins <brendanhiggins@google.com>
---
v4: added tag (Brendan)
 MAINTAINERS                       | 2 +-
 lib/Makefile                      | 2 +-
 lib/{list-test.c => list_kunit.c} | 0
 3 files changed, 2 insertions(+), 2 deletions(-)
 rename lib/{list-test.c => list_kunit.c} (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index f1f088a29bc2..5901b817d0bc 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -10222,7 +10222,7 @@ M:	David Gow <davidgow@google.com>
 L:	linux-kselftest@vger.kernel.org
 L:	kunit-dev@googlegroups.com
 S:	Maintained
-F:	lib/list-test.c
+F:	lib/list_kunit.c
 
 LITEX PLATFORM
 M:	Karol Gugala <kgugala@antmicro.com>
diff --git a/lib/Makefile b/lib/Makefile
index ce45af50983a..9d78ef73d6ed 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -349,6 +349,6 @@ obj-$(CONFIG_PLDMFW) += pldmfw/
 
 # KUnit tests
 obj-$(CONFIG_BITFIELD_KUNIT) += bitfield_kunit.o
-obj-$(CONFIG_LIST_KUNIT_TEST) += list-test.o
+obj-$(CONFIG_LIST_KUNIT_TEST) += list_kunit.o
 obj-$(CONFIG_LINEAR_RANGES_TEST) += test_linear_ranges.o
 obj-$(CONFIG_BITS_TEST) += test_bits.o
diff --git a/lib/list-test.c b/lib/list_kunit.c
similarity index 100%
rename from lib/list-test.c
rename to lib/list_kunit.c
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v4 2/6] lib/linear_ranges_kunit: Follow new file name convention for KUnit tests
  2020-11-12 18:07 [PATCH v4 1/6] lib/list_kunit: Follow new file name convention for KUnit tests Andy Shevchenko
@ 2020-11-12 18:07 ` Andy Shevchenko
  2020-11-13  6:22   ` Vaittinen, Matti
  2020-11-12 18:07 ` [PATCH v4 3/6] lib/bits_kunit: " Andy Shevchenko
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Andy Shevchenko @ 2020-11-12 18:07 UTC (permalink / raw)
  To: linux-kselftest, Andrew Morton, kunit-dev, Shuah Khan, Vitor Massaru Iha
  Cc: Mark Brown, Brendan Higgins, David Gow, Andy Shevchenko, Matti Vaittinen

Follow new file name convention for the KUnit tests.
Since we have lib/*test*.c in a few variations,
use 'kunit' suffix to distinguish usual test cases
with KUnit-based ones.

Cc: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: David Gow <davidgow@google.com>
Acked-by: Mark Brown <broonie@kernel.org>
---
v4: added tag (Mark)

 MAINTAINERS                                         | 3 +--
 lib/Makefile                                        | 2 +-
 lib/{test_linear_ranges.c => linear_ranges_kunit.c} | 0
 3 files changed, 2 insertions(+), 3 deletions(-)
 rename lib/{test_linear_ranges.c => linear_ranges_kunit.c} (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index 5901b817d0bc..9a314e618705 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -10103,8 +10103,7 @@ F:	include/uapi/linux/lightnvm.h
 LINEAR RANGES HELPERS
 M:	Mark Brown <broonie@kernel.org>
 R:	Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
-F:	lib/linear_ranges.c
-F:	lib/test_linear_ranges.c
+F:	lib/linear_ranges*.c
 F:	include/linux/linear_range.h
 
 LINUX FOR POWER MACINTOSH
diff --git a/lib/Makefile b/lib/Makefile
index 9d78ef73d6ed..ef25cd94f34d 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -349,6 +349,6 @@ obj-$(CONFIG_PLDMFW) += pldmfw/
 
 # KUnit tests
 obj-$(CONFIG_BITFIELD_KUNIT) += bitfield_kunit.o
+obj-$(CONFIG_LINEAR_RANGES_TEST) += linear_ranges_kunit.o
 obj-$(CONFIG_LIST_KUNIT_TEST) += list_kunit.o
-obj-$(CONFIG_LINEAR_RANGES_TEST) += test_linear_ranges.o
 obj-$(CONFIG_BITS_TEST) += test_bits.o
diff --git a/lib/test_linear_ranges.c b/lib/linear_ranges_kunit.c
similarity index 100%
rename from lib/test_linear_ranges.c
rename to lib/linear_ranges_kunit.c
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v4 3/6] lib/bits_kunit: Follow new file name convention for KUnit tests
  2020-11-12 18:07 [PATCH v4 1/6] lib/list_kunit: Follow new file name convention for KUnit tests Andy Shevchenko
  2020-11-12 18:07 ` [PATCH v4 2/6] lib/linear_ranges_kunit: " Andy Shevchenko
@ 2020-11-12 18:07 ` Andy Shevchenko
  2020-11-12 18:07 ` [PATCH v4 4/6] lib/cmdline: Fix get_option() for strings starting with hyphen Andy Shevchenko
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 13+ messages in thread
From: Andy Shevchenko @ 2020-11-12 18:07 UTC (permalink / raw)
  To: linux-kselftest, Andrew Morton, kunit-dev, Shuah Khan, Vitor Massaru Iha
  Cc: Mark Brown, Brendan Higgins, David Gow, Andy Shevchenko

Follow new file name convention for the KUnit tests.
Since we have lib/*test*.c in a few variations,
use 'kunit' suffix to distinguish usual test cases
with KUnit-based ones.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: David Gow <davidgow@google.com>
Acked-by: Brendan Higgins <brendanhiggins@google.com>
---
v4: added tag (Brendan)

 lib/Makefile                      | 2 +-
 lib/{test_bits.c => bits_kunit.c} | 0
 2 files changed, 1 insertion(+), 1 deletion(-)
 rename lib/{test_bits.c => bits_kunit.c} (100%)

diff --git a/lib/Makefile b/lib/Makefile
index ef25cd94f34d..dc76e7d8a453 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -349,6 +349,6 @@ obj-$(CONFIG_PLDMFW) += pldmfw/
 
 # KUnit tests
 obj-$(CONFIG_BITFIELD_KUNIT) += bitfield_kunit.o
+obj-$(CONFIG_BITS_TEST) += bits_kunit.o
 obj-$(CONFIG_LINEAR_RANGES_TEST) += linear_ranges_kunit.o
 obj-$(CONFIG_LIST_KUNIT_TEST) += list_kunit.o
-obj-$(CONFIG_BITS_TEST) += test_bits.o
diff --git a/lib/test_bits.c b/lib/bits_kunit.c
similarity index 100%
rename from lib/test_bits.c
rename to lib/bits_kunit.c
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v4 4/6] lib/cmdline: Fix get_option() for strings starting with hyphen
  2020-11-12 18:07 [PATCH v4 1/6] lib/list_kunit: Follow new file name convention for KUnit tests Andy Shevchenko
  2020-11-12 18:07 ` [PATCH v4 2/6] lib/linear_ranges_kunit: " Andy Shevchenko
  2020-11-12 18:07 ` [PATCH v4 3/6] lib/bits_kunit: " Andy Shevchenko
@ 2020-11-12 18:07 ` Andy Shevchenko
  2020-11-12 18:07 ` [PATCH v4 5/6] lib/cmdline: Allow NULL to be an output for get_option() Andy Shevchenko
  2020-11-12 18:07 ` [PATCH v4 6/6] lib/cmdline_kunit: Add a new test suite for cmdline API Andy Shevchenko
  4 siblings, 0 replies; 13+ messages in thread
From: Andy Shevchenko @ 2020-11-12 18:07 UTC (permalink / raw)
  To: linux-kselftest, Andrew Morton, kunit-dev, Shuah Khan, Vitor Massaru Iha
  Cc: Mark Brown, Brendan Higgins, David Gow, Andy Shevchenko

When string doesn't have an integer and starts from hyphen get_option()
may return interesting results. Fix it to return 0.

The simple_strtoull() is used due to absence of simple_strtoul()
in a boot code on some architectures.

Note, the Fixes tag below is rather for anthropological curiosity.

Fixes: f68565831e72 ("Import 2.4.0-test2pre3")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
v4: new patch
 lib/cmdline.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/lib/cmdline.c b/lib/cmdline.c
index fbb9981a04a4..ca89846ee0bb 100644
--- a/lib/cmdline.c
+++ b/lib/cmdline.c
@@ -45,6 +45,9 @@ static int get_range(char **str, int *pint, int n)
  *	1 - int found, no subsequent comma
  *	2 - int found including a subsequent comma
  *	3 - hyphen found to denote a range
+ *
+ *	Leading hyphen without integer is no integer case, but we consume it
+ *	for the sake of simplification.
  */
 
 int get_option(char **str, int *pint)
@@ -53,7 +56,10 @@ int get_option(char **str, int *pint)
 
 	if (!cur || !(*cur))
 		return 0;
-	*pint = simple_strtol(cur, str, 0);
+	if (*cur == '-')
+		*pint = -simple_strtoull(++cur, str, 0);
+	else
+		*pint = simple_strtoull(cur, str, 0);
 	if (cur == *str)
 		return 0;
 	if (**str == ',') {
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v4 5/6] lib/cmdline: Allow NULL to be an output for get_option()
  2020-11-12 18:07 [PATCH v4 1/6] lib/list_kunit: Follow new file name convention for KUnit tests Andy Shevchenko
                   ` (2 preceding siblings ...)
  2020-11-12 18:07 ` [PATCH v4 4/6] lib/cmdline: Fix get_option() for strings starting with hyphen Andy Shevchenko
@ 2020-11-12 18:07 ` Andy Shevchenko
  2020-11-12 18:07 ` [PATCH v4 6/6] lib/cmdline_kunit: Add a new test suite for cmdline API Andy Shevchenko
  4 siblings, 0 replies; 13+ messages in thread
From: Andy Shevchenko @ 2020-11-12 18:07 UTC (permalink / raw)
  To: linux-kselftest, Andrew Morton, kunit-dev, Shuah Khan, Vitor Massaru Iha
  Cc: Mark Brown, Brendan Higgins, David Gow, Andy Shevchenko

In the future we would like to use get_option() to only validate
the string and parse it separately. To achieve this, allow
NULL to be an output for get_option().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
v4: new patch
 lib/cmdline.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/lib/cmdline.c b/lib/cmdline.c
index ca89846ee0bb..9e186234edc0 100644
--- a/lib/cmdline.c
+++ b/lib/cmdline.c
@@ -35,11 +35,14 @@ static int get_range(char **str, int *pint, int n)
 /**
  *	get_option - Parse integer from an option string
  *	@str: option string
- *	@pint: (output) integer value parsed from @str
+ *	@pint: (optional output) integer value parsed from @str
  *
  *	Read an int from an option string; if available accept a subsequent
  *	comma as well.
  *
+ *	When @pint is NULL the function can be used as a validator of
+ *	the current option in the string.
+ *
  *	Return values:
  *	0 - no int in string
  *	1 - int found, no subsequent comma
@@ -53,13 +56,16 @@ static int get_range(char **str, int *pint, int n)
 int get_option(char **str, int *pint)
 {
 	char *cur = *str;
+	int value;
 
 	if (!cur || !(*cur))
 		return 0;
 	if (*cur == '-')
-		*pint = -simple_strtoull(++cur, str, 0);
+		value = -simple_strtoull(++cur, str, 0);
 	else
-		*pint = simple_strtoull(cur, str, 0);
+		value = simple_strtoull(cur, str, 0);
+	if (pint)
+		*pint = value;
 	if (cur == *str)
 		return 0;
 	if (**str == ',') {
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH v4 6/6] lib/cmdline_kunit: Add a new test suite for cmdline API
  2020-11-12 18:07 [PATCH v4 1/6] lib/list_kunit: Follow new file name convention for KUnit tests Andy Shevchenko
                   ` (3 preceding siblings ...)
  2020-11-12 18:07 ` [PATCH v4 5/6] lib/cmdline: Allow NULL to be an output for get_option() Andy Shevchenko
@ 2020-11-12 18:07 ` Andy Shevchenko
  2020-11-13  3:10   ` Andrew Morton
  4 siblings, 1 reply; 13+ messages in thread
From: Andy Shevchenko @ 2020-11-12 18:07 UTC (permalink / raw)
  To: linux-kselftest, Andrew Morton, kunit-dev, Shuah Khan, Vitor Massaru Iha
  Cc: Mark Brown, Brendan Higgins, David Gow, Andy Shevchenko

Test get_option() for a starter which is provided by cmdline.c.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
v4: new patch
 lib/Kconfig.debug   | 11 +++++
 lib/Makefile        |  1 +
 lib/cmdline_kunit.c | 98 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 110 insertions(+)
 create mode 100644 lib/cmdline_kunit.c

diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 6140413174be..b939740f93b7 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -2283,6 +2283,17 @@ config LINEAR_RANGES_TEST
 
 	  If unsure, say N.
 
+config CMDLINE_KUNIT_TEST
+	tristate "KUnit test for cmdline API"
+	depends on KUNIT
+	help
+	  This builds the cmdline API unit test.
+	  Tests the logic of API provided by cmdline.c.
+	  For more information on KUnit and unit tests in general please refer
+	  to the KUnit documentation in Documentation/dev-tools/kunit/.
+
+	  If unsure, say N.
+
 config BITS_TEST
 	tristate "KUnit test for bits.h"
 	depends on KUNIT
diff --git a/lib/Makefile b/lib/Makefile
index dc76e7d8a453..985c6a8909e0 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -350,5 +350,6 @@ obj-$(CONFIG_PLDMFW) += pldmfw/
 # KUnit tests
 obj-$(CONFIG_BITFIELD_KUNIT) += bitfield_kunit.o
 obj-$(CONFIG_BITS_TEST) += bits_kunit.o
+obj-$(CONFIG_CMDLINE_KUNIT_TEST) += cmdline_kunit.o
 obj-$(CONFIG_LINEAR_RANGES_TEST) += linear_ranges_kunit.o
 obj-$(CONFIG_LIST_KUNIT_TEST) += list_kunit.o
diff --git a/lib/cmdline_kunit.c b/lib/cmdline_kunit.c
new file mode 100644
index 000000000000..acad1386d54c
--- /dev/null
+++ b/lib/cmdline_kunit.c
@@ -0,0 +1,98 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Test cases for API provided by cmdline.c
+ */
+
+#include <kunit/test.h>
+#include <linux/kernel.h>
+#include <linux/random.h>
+#include <linux/string.h>
+
+static const char *cmdline_test_strings[] = {
+	"\"\"", ""  , "=" , "\"-", ","    , "-,"   , ",-"   , "-" ,
+	"+,"  , "--", ",,", "''" , "\"\",", "\",\"", "-\"\"", "\"",
+};
+
+static const char *cmdline_test_values[] = {
+	1, 1, 1, 1, 2, 3, 2, 3,
+	1, 3, 2, 1, 1, 1, 3, 1,
+};
+
+static void cmdline_do_one_test(struct kunit *test, char *in, int rc, int offset)
+{
+	const char *fmt = "Pattern: %s";
+	char *out = in;
+	int dummy;
+	int ret;
+
+	ret = get_option(&out, &dummy);
+
+	KUNIT_EXPECT_EQ_MSG(test, ret, rc, fmt, in);
+	KUNIT_EXPECT_PTR_EQ_MSG(test, out, in + offset, fmt, in);
+}
+
+static void cmdline_test_noint(struct kunit *test)
+{
+	unsigned int i = 0;
+
+	do {
+		const char *str = cmdline_test_strings[i];
+		int rc = 0;
+		int offset;
+
+		/* Only first and leading '-' will advance the pointer */
+		offset = !!(*str == '-');
+		cmdline_do_one_test(test, str, rc, offset);
+	} while (++i < ARRAY_SIZE(cmdline_test_strings));
+}
+
+static void cmdline_test_lead_int(struct kunit *test)
+{
+	unsigned int i = 0;
+	char in[32];
+
+	do {
+		const char *str = cmdline_test_strings[i];
+		int rc = cmdline_test_values[i];
+		int offset;
+
+		sprintf(in, "%u%s", get_random_int() % 256, str);
+		/* Only first '-' after the number will advance the pointer */
+		offset = strlen(in) - strlen(str) + !!(rc == 2);
+		cmdline_do_one_test(test, in, rc, offset);
+	} while (++i < ARRAY_SIZE(cmdline_test_strings));
+}
+
+static void cmdline_test_tail_int(struct kunit *test)
+{
+	unsigned int i = 0;
+	char in[32];
+
+	do {
+		const char *str = cmdline_test_strings[i];
+		/* When "" or "-" the result will be valid integer */
+		int rc = strcmp(str, "") ? (strcmp(str, "-") ? 0 : 1) : 1;
+		int offset;
+
+		sprintf(in, "%s%u", str, get_random_int() % 256);
+		/*
+		 * Only first and leading '-' not followed by integer
+		 * will advance the pointer.
+		 */
+		offset = rc ? strlen(in) : !!(*str == '-');
+		cmdline_do_one_test(test, in, rc, offset);
+	} while (++i < ARRAY_SIZE(cmdline_test_strings));
+}
+
+static struct kunit_case cmdline_test_cases[] = {
+	KUNIT_CASE(cmdline_test_noint),
+	KUNIT_CASE(cmdline_test_lead_int),
+	KUNIT_CASE(cmdline_test_tail_int),
+	{}
+};
+
+static struct kunit_suite cmdline_test_suite = {
+	.name = "cmdline",
+	.test_cases = cmdline_test_cases,
+};
+kunit_test_suite(cmdline_test_suite);
-- 
2.28.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 6/6] lib/cmdline_kunit: Add a new test suite for cmdline API
  2020-11-12 18:07 ` [PATCH v4 6/6] lib/cmdline_kunit: Add a new test suite for cmdline API Andy Shevchenko
@ 2020-11-13  3:10   ` Andrew Morton
  2020-11-16  9:53     ` Andy Shevchenko
  0 siblings, 1 reply; 13+ messages in thread
From: Andrew Morton @ 2020-11-13  3:10 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: linux-kselftest, kunit-dev, Shuah Khan, Vitor Massaru Iha,
	Mark Brown, Brendan Higgins, David Gow

On Thu, 12 Nov 2020 20:07:32 +0200 Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:

> Test get_option() for a starter which is provided by cmdline.c.
> 
> ...
>
>  lib/cmdline_kunit.c | 98 +++++++++++++++++++++++++++++++++++++++++++++

The spectacular warning storm which this produces makes me wonder if
you sent the correct version?  I mean, the cmdline_test_values[]
definition wasn't even close.

This fixes it all for me:


--- a/lib/cmdline_kunit.c~lib-cmdline_kunit-add-a-new-test-suite-for-cmdline-api-fix
+++ a/lib/cmdline_kunit.c
@@ -13,19 +13,19 @@ static const char *cmdline_test_strings[
 	"+,"  , "--", ",,", "''" , "\"\",", "\",\"", "-\"\"", "\"",
 };
 
-static const char *cmdline_test_values[] = {
+static const char cmdline_test_values[] = {
 	1, 1, 1, 1, 2, 3, 2, 3,
 	1, 3, 2, 1, 1, 1, 3, 1,
 };
 
-static void cmdline_do_one_test(struct kunit *test, char *in, int rc, int offset)
+static void cmdline_do_one_test(struct kunit *test, const char *in, int rc, int offset)
 {
 	const char *fmt = "Pattern: %s";
-	char *out = in;
+	const char *out = in;
 	int dummy;
 	int ret;
 
-	ret = get_option(&out, &dummy);
+	ret = get_option((char **)&out, &dummy);
 
 	KUNIT_EXPECT_EQ_MSG(test, ret, rc, fmt, in);
 	KUNIT_EXPECT_PTR_EQ_MSG(test, out, in + offset, fmt, in);
_

but it sucks that get_option()'s first arg isn't `const char **str'.  I
was too lazy to look at addressing that.



lib/cmdline_kunit.c:17:2: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 1, 1, 1, 2, 3, 2, 3,
  ^
lib/cmdline_kunit.c:17:2: note: (near initialization for ‘cmdline_test_values[0]’)
lib/cmdline_kunit.c:17:5: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 1, 1, 1, 2, 3, 2, 3,
     ^
lib/cmdline_kunit.c:17:5: note: (near initialization for ‘cmdline_test_values[1]’)
lib/cmdline_kunit.c:17:8: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 1, 1, 1, 2, 3, 2, 3,
        ^
lib/cmdline_kunit.c:17:8: note: (near initialization for ‘cmdline_test_values[2]’)
lib/cmdline_kunit.c:17:11: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 1, 1, 1, 2, 3, 2, 3,
           ^
lib/cmdline_kunit.c:17:11: note: (near initialization for ‘cmdline_test_values[3]’)
lib/cmdline_kunit.c:17:14: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 1, 1, 1, 2, 3, 2, 3,
              ^
lib/cmdline_kunit.c:17:14: note: (near initialization for ‘cmdline_test_values[4]’)
lib/cmdline_kunit.c:17:17: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 1, 1, 1, 2, 3, 2, 3,
                 ^
lib/cmdline_kunit.c:17:17: note: (near initialization for ‘cmdline_test_values[5]’)
lib/cmdline_kunit.c:17:20: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 1, 1, 1, 2, 3, 2, 3,
                    ^
lib/cmdline_kunit.c:17:20: note: (near initialization for ‘cmdline_test_values[6]’)
lib/cmdline_kunit.c:17:23: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 1, 1, 1, 2, 3, 2, 3,
                       ^
lib/cmdline_kunit.c:17:23: note: (near initialization for ‘cmdline_test_values[7]’)
lib/cmdline_kunit.c:18:2: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 3, 2, 1, 1, 1, 3, 1,
  ^
lib/cmdline_kunit.c:18:2: note: (near initialization for ‘cmdline_test_values[8]’)
lib/cmdline_kunit.c:18:5: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 3, 2, 1, 1, 1, 3, 1,
     ^
lib/cmdline_kunit.c:18:5: note: (near initialization for ‘cmdline_test_values[9]’)
lib/cmdline_kunit.c:18:8: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 3, 2, 1, 1, 1, 3, 1,
        ^
lib/cmdline_kunit.c:18:8: note: (near initialization for ‘cmdline_test_values[10]’)
lib/cmdline_kunit.c:18:11: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 3, 2, 1, 1, 1, 3, 1,
           ^
lib/cmdline_kunit.c:18:11: note: (near initialization for ‘cmdline_test_values[11]’)
lib/cmdline_kunit.c:18:14: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 3, 2, 1, 1, 1, 3, 1,
              ^
lib/cmdline_kunit.c:18:14: note: (near initialization for ‘cmdline_test_values[12]’)
lib/cmdline_kunit.c:18:17: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 3, 2, 1, 1, 1, 3, 1,
                 ^
lib/cmdline_kunit.c:18:17: note: (near initialization for ‘cmdline_test_values[13]’)
lib/cmdline_kunit.c:18:20: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 3, 2, 1, 1, 1, 3, 1,
                    ^
lib/cmdline_kunit.c:18:20: note: (near initialization for ‘cmdline_test_values[14]’)
lib/cmdline_kunit.c:18:23: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
  1, 3, 2, 1, 1, 1, 3, 1,
                       ^
lib/cmdline_kunit.c:18:23: note: (near initialization for ‘cmdline_test_values[15]’)
lib/cmdline_kunit.c: In function ‘cmdline_test_noint’:
lib/cmdline_kunit.c:45:29: warning: passing argument 2 of ‘cmdline_do_one_test’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
   cmdline_do_one_test(test, str, rc, offset);
                             ^~~
lib/cmdline_kunit.c:21:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void cmdline_do_one_test(struct kunit *test, char *in, int rc, int offset)
             ^~~~~~~~~~~~~~~~~~~
lib/cmdline_kunit.c: In function ‘cmdline_test_lead_int’:
lib/cmdline_kunit.c:56:12: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
   int rc = cmdline_test_values[i];
            ^~~~~~~~~~~~~~~~~~~


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 2/6] lib/linear_ranges_kunit: Follow new file name convention for KUnit tests
  2020-11-12 18:07 ` [PATCH v4 2/6] lib/linear_ranges_kunit: " Andy Shevchenko
@ 2020-11-13  6:22   ` Vaittinen, Matti
  2020-11-16 10:42     ` andriy.shevchenko
  0 siblings, 1 reply; 13+ messages in thread
From: Vaittinen, Matti @ 2020-11-13  6:22 UTC (permalink / raw)
  To: vitor, andriy.shevchenko, linux-kselftest, kunit-dev, akpm, skhan
  Cc: brendanhiggins, broonie, davidgow

Hello,

On Thu, 2020-11-12 at 20:07 +0200, Andy Shevchenko wrote:
> Follow new file name convention for the KUnit tests.
> Since we have lib/*test*.c in a few variations,
> use 'kunit' suffix to distinguish usual test cases
> with KUnit-based ones.
> 
> Cc: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Reviewed-by: David Gow <davidgow@google.com>
> Acked-by: Mark Brown <broonie@kernel.org>
> ---
> v4: added tag (Mark)
> 
>  MAINTAINERS                                         | 3 +--
>  lib/Makefile                                        | 2 +-
>  lib/{test_linear_ranges.c => linear_ranges_kunit.c} | 0
>  3 files changed, 2 insertions(+), 3 deletions(-)
>  rename lib/{test_linear_ranges.c => linear_ranges_kunit.c} (100%)

Sorry for late reaction. I need to adjust my mail filters. The KUnit
mails evaded my inbox even when I was in CC. I have own folder for
KUnit - which I do not look daily. (And no Brendan, the folder is not
called "trash", its's "kunit" and I do occasionally skim through the
mails there).

I see this was already applied so it is late - but I wanted to say
thank you for taking care of this Andy. It looks good to me.

--Matti

--
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland
SWDC
Kiviharjunlenkki 1E
90220 OULU
FINLAND

~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~

Simon says - in Latin please.
"non cogito me" dixit Rene Descarte, deinde evanescavit

(Thanks for the translation Simon)

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 6/6] lib/cmdline_kunit: Add a new test suite for cmdline API
  2020-11-13  3:10   ` Andrew Morton
@ 2020-11-16  9:53     ` Andy Shevchenko
  2020-11-16 10:41       ` Andy Shevchenko
  0 siblings, 1 reply; 13+ messages in thread
From: Andy Shevchenko @ 2020-11-16  9:53 UTC (permalink / raw)
  To: Andrew Morton
  Cc: linux-kselftest, kunit-dev, Shuah Khan, Vitor Massaru Iha,
	Mark Brown, Brendan Higgins, David Gow

On Thu, Nov 12, 2020 at 07:10:25PM -0800, Andrew Morton wrote:
> On Thu, 12 Nov 2020 20:07:32 +0200 Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> 
> > Test get_option() for a starter which is provided by cmdline.c.
> > 
> > ...
> >
> >  lib/cmdline_kunit.c | 98 +++++++++++++++++++++++++++++++++++++++++++++

First of all, thanks for taking care of this!

> The spectacular warning storm which this produces makes me wonder if
> you sent the correct version?  I mean, the cmdline_test_values[]
> definition wasn't even close.

This now puzzles me, what happened. I will check my branches, because certainly
I was not only compiled that, but actually run those test cases.

There is warning about license, I'm going to address right now.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 6/6] lib/cmdline_kunit: Add a new test suite for cmdline API
  2020-11-16  9:53     ` Andy Shevchenko
@ 2020-11-16 10:41       ` Andy Shevchenko
  2020-11-16 23:43         ` David Gow
  0 siblings, 1 reply; 13+ messages in thread
From: Andy Shevchenko @ 2020-11-16 10:41 UTC (permalink / raw)
  To: Andrew Morton
  Cc: linux-kselftest, kunit-dev, Shuah Khan, Vitor Massaru Iha,
	Mark Brown, Brendan Higgins, David Gow

On Mon, Nov 16, 2020 at 11:53:09AM +0200, Andy Shevchenko wrote:
> On Thu, Nov 12, 2020 at 07:10:25PM -0800, Andrew Morton wrote:
> > On Thu, 12 Nov 2020 20:07:32 +0200 Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> > 
> > > Test get_option() for a starter which is provided by cmdline.c.
> > > 
> > > ...
> > >
> > >  lib/cmdline_kunit.c | 98 +++++++++++++++++++++++++++++++++++++++++++++
> 
> First of all, thanks for taking care of this!
> 
> > The spectacular warning storm which this produces makes me wonder if
> > you sent the correct version?  I mean, the cmdline_test_values[]
> > definition wasn't even close.
> 
> This now puzzles me, what happened. I will check my branches, because certainly
> I was not only compiled that, but actually run those test cases.

David, Brendan, can we somehow make those warnings visible when run test suite
via kunit Python wrapper?

It seems to me that I run test cases only via wrapper and I have got no
warnings which are ones that must be fixed before submission. It's actual
disadvantage of the framework (use of it via wrapper) that makes me feel
like I would rather not hurry up with KUnit.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 2/6] lib/linear_ranges_kunit: Follow new file name convention for KUnit tests
  2020-11-13  6:22   ` Vaittinen, Matti
@ 2020-11-16 10:42     ` andriy.shevchenko
  0 siblings, 0 replies; 13+ messages in thread
From: andriy.shevchenko @ 2020-11-16 10:42 UTC (permalink / raw)
  To: Vaittinen, Matti
  Cc: vitor, linux-kselftest, kunit-dev, akpm, skhan, brendanhiggins,
	broonie, davidgow

On Fri, Nov 13, 2020 at 06:22:08AM +0000, Vaittinen, Matti wrote:
> On Thu, 2020-11-12 at 20:07 +0200, Andy Shevchenko wrote:
> > Follow new file name convention for the KUnit tests.
> > Since we have lib/*test*.c in a few variations,
> > use 'kunit' suffix to distinguish usual test cases
> > with KUnit-based ones.

> Sorry for late reaction. I need to adjust my mail filters. The KUnit
> mails evaded my inbox even when I was in CC. I have own folder for
> KUnit - which I do not look daily. (And no Brendan, the folder is not
> called "trash", its's "kunit" and I do occasionally skim through the
> mails there).
> 
> I see this was already applied so it is late - but I wanted to say
> thank you for taking care of this Andy. It looks good to me.

You are welcome!  And thanks for review.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 6/6] lib/cmdline_kunit: Add a new test suite for cmdline API
  2020-11-16 10:41       ` Andy Shevchenko
@ 2020-11-16 23:43         ` David Gow
  2020-11-17 15:52           ` Andy Shevchenko
  0 siblings, 1 reply; 13+ messages in thread
From: David Gow @ 2020-11-16 23:43 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Andrew Morton, open list:KERNEL SELFTEST FRAMEWORK,
	KUnit Development, Shuah Khan, Vitor Massaru Iha, Mark Brown,
	Brendan Higgins

On Mon, Nov 16, 2020 at 6:40 PM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> On Mon, Nov 16, 2020 at 11:53:09AM +0200, Andy Shevchenko wrote:
> > On Thu, Nov 12, 2020 at 07:10:25PM -0800, Andrew Morton wrote:
> > > On Thu, 12 Nov 2020 20:07:32 +0200 Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> > >
> > > > Test get_option() for a starter which is provided by cmdline.c.
> > > >
> > > > ...
> > > >
> > > >  lib/cmdline_kunit.c | 98 +++++++++++++++++++++++++++++++++++++++++++++
> >
> > First of all, thanks for taking care of this!
> >
> > > The spectacular warning storm which this produces makes me wonder if
> > > you sent the correct version?  I mean, the cmdline_test_values[]
> > > definition wasn't even close.
> >
> > This now puzzles me, what happened. I will check my branches, because certainly
> > I was not only compiled that, but actually run those test cases.
>
> David, Brendan, can we somehow make those warnings visible when run test suite
> via kunit Python wrapper?

There's a patch in the kunit-fixes branch which should fix this this:
https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git/commit/?h=kunit-fixes&id=390881448b1ff1e9d82896abbbda7cdb8e0be27c

>
> It seems to me that I run test cases only via wrapper and I have got no
> warnings which are ones that must be fixed before submission. It's actual
> disadvantage of the framework (use of it via wrapper) that makes me feel
> like I would rather not hurry up with KUnit.

Yeah: it's a pain, and I've been hit by it a couple of times recently,
too. If you're not able to pick up the changes in the kunit-fixes
branch above, then it's definitely best to also manually build a
kernel to get the build logs.

In any case, that fix should be merged for 5.10.

Sorry for the inconvenience!
-- David

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH v4 6/6] lib/cmdline_kunit: Add a new test suite for cmdline API
  2020-11-16 23:43         ` David Gow
@ 2020-11-17 15:52           ` Andy Shevchenko
  0 siblings, 0 replies; 13+ messages in thread
From: Andy Shevchenko @ 2020-11-17 15:52 UTC (permalink / raw)
  To: David Gow
  Cc: Andrew Morton, open list:KERNEL SELFTEST FRAMEWORK,
	KUnit Development, Shuah Khan, Vitor Massaru Iha, Mark Brown,
	Brendan Higgins

On Tue, Nov 17, 2020 at 07:43:28AM +0800, David Gow wrote:
> On Mon, Nov 16, 2020 at 6:40 PM Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> wrote:
> >
> > On Mon, Nov 16, 2020 at 11:53:09AM +0200, Andy Shevchenko wrote:
> > > On Thu, Nov 12, 2020 at 07:10:25PM -0800, Andrew Morton wrote:
> > > > On Thu, 12 Nov 2020 20:07:32 +0200 Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> > > >
> > > > > Test get_option() for a starter which is provided by cmdline.c.
> > > > >
> > > > > ...
> > > > >
> > > > >  lib/cmdline_kunit.c | 98 +++++++++++++++++++++++++++++++++++++++++++++
> > >
> > > First of all, thanks for taking care of this!
> > >
> > > > The spectacular warning storm which this produces makes me wonder if
> > > > you sent the correct version?  I mean, the cmdline_test_values[]
> > > > definition wasn't even close.
> > >
> > > This now puzzles me, what happened. I will check my branches, because certainly
> > > I was not only compiled that, but actually run those test cases.
> >
> > David, Brendan, can we somehow make those warnings visible when run test suite
> > via kunit Python wrapper?
> 
> There's a patch in the kunit-fixes branch which should fix this this:
> https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git/commit/?h=kunit-fixes&id=390881448b1ff1e9d82896abbbda7cdb8e0be27c

Good we have a fix!

> > It seems to me that I run test cases only via wrapper and I have got no
> > warnings which are ones that must be fixed before submission. It's actual
> > disadvantage of the framework (use of it via wrapper) that makes me feel
> > like I would rather not hurry up with KUnit.
> 
> Yeah: it's a pain, and I've been hit by it a couple of times recently,
> too. If you're not able to pick up the changes in the kunit-fixes
> branch above, then it's definitely best to also manually build a
> kernel to get the build logs.
> 
> In any case, that fix should be merged for 5.10.
> 
> Sorry for the inconvenience!

No problem, I will keep above in mind, thanks.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2020-11-17 15:52 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-12 18:07 [PATCH v4 1/6] lib/list_kunit: Follow new file name convention for KUnit tests Andy Shevchenko
2020-11-12 18:07 ` [PATCH v4 2/6] lib/linear_ranges_kunit: " Andy Shevchenko
2020-11-13  6:22   ` Vaittinen, Matti
2020-11-16 10:42     ` andriy.shevchenko
2020-11-12 18:07 ` [PATCH v4 3/6] lib/bits_kunit: " Andy Shevchenko
2020-11-12 18:07 ` [PATCH v4 4/6] lib/cmdline: Fix get_option() for strings starting with hyphen Andy Shevchenko
2020-11-12 18:07 ` [PATCH v4 5/6] lib/cmdline: Allow NULL to be an output for get_option() Andy Shevchenko
2020-11-12 18:07 ` [PATCH v4 6/6] lib/cmdline_kunit: Add a new test suite for cmdline API Andy Shevchenko
2020-11-13  3:10   ` Andrew Morton
2020-11-16  9:53     ` Andy Shevchenko
2020-11-16 10:41       ` Andy Shevchenko
2020-11-16 23:43         ` David Gow
2020-11-17 15:52           ` Andy Shevchenko

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.