[PATCH v2 0/2] of: unittest: add overlay gpio test to catch gpio hog problem

From: frowand . list
Date: Thu Feb 20 2020 - 13:41:49 EST

From: Frank Rowand <frank.rowand@xxxxxxxx>

Geert reports that gpio hog nodes are not properly processed when
the gpio hog node is added via an overlay reply and provides an
patch to fix the problem [1].

Add a unittest that shows the problem. Unittest will report "1 failed"
test before applying Geert's patch and "0 failed" after applying
Geert's patch.

I did not have a development system for which it would be easy to
experiment with applying an overlay containing a gpio hog, so I
instead created this unittest that uses a fake gpio node.

Some tests in the devicetree unittests result in printk messages
from the code being tested. It can be difficult to determine
whether the messages are the result of unittest or are potentially
reporting bugs that should be fixed. The most recent example of
a person asking whether to be concerned about these messages is [2].

Patch 2 adds annotations for all messages triggered by unittests,
except KERN_DEBUG messages. (KERN_DEBUG is a special case due to the
possible interaction of CONFIG_DYNAMIC_DEBUG.)

The annotations added in patch 2/2 add a small amount of verbosity
to the console output. I have created a proof of concept tool to
explore (1) how test harnesses could use the annotations and
(2) how to make the resulting console output easier to read and
understand as a human being. The tool 'of_unittest_expect' is
available at https://github.com/frowand/dt_tools

The format of the annotations is expected to change when unittests
are converted to use the kunit infrastructure when the broader
testing community has an opportunity to discuss the implementation
of annotations of test triggered messages.

[1] https://lore.kernel.org/r/20200220130149.26283-1-geert+renesas@xxxxxxxxx
[2] https://lore.kernel.org/r/6021ac63-b5e0-ed3d-f964-7c6ef579cd68@xxxxxxxxxx

Frank Rowand (2):
of: unittest: add overlay gpio test to catch gpio hog problem
of: unittest: annotate warnings triggered by unittest

drivers/of/unittest-data/Makefile | 8 +-
drivers/of/unittest-data/overlay_gpio_01.dts | 23 +
drivers/of/unittest-data/overlay_gpio_02a.dts | 16 +
drivers/of/unittest-data/overlay_gpio_02b.dts | 16 +
drivers/of/unittest-data/overlay_gpio_03.dts | 23 +
drivers/of/unittest-data/overlay_gpio_04a.dts | 16 +
drivers/of/unittest-data/overlay_gpio_04b.dts | 16 +
drivers/of/unittest.c | 628 ++++++++++++++++++++++++--
8 files changed, 715 insertions(+), 31 deletions(-)
create mode 100644 drivers/of/unittest-data/overlay_gpio_01.dts
create mode 100644 drivers/of/unittest-data/overlay_gpio_02a.dts
create mode 100644 drivers/of/unittest-data/overlay_gpio_02b.dts
create mode 100644 drivers/of/unittest-data/overlay_gpio_03.dts
create mode 100644 drivers/of/unittest-data/overlay_gpio_04a.dts
create mode 100644 drivers/of/unittest-data/overlay_gpio_04b.dts

Frank Rowand <frank.rowand@xxxxxxxx>