[PATCH 0/7] of: unittest: new node lifecycle tests

From: Frank Rowand
Date: Mon Feb 13 2023 - 13:57:48 EST


Create new devicetree node lifecycle tests.

The tests introduce use of EXPECT_NOT messages, similar to EXPECT
messages. This requires updating scripts/dtc/of_unittest_expect
to process EXPECT_NOT messages.

The new tests revealed an issue in printk formatting when using
format "%pOF" on a node with a reference count of zero. A patch
is included to the fix the caller which revealed the issue.

Update kconfig unittest help to further explain that unittests
should only be enabled for developer kernels. Also add info
about using scripts/dtc/of_unittest_expect to process the output
of unittests.

Add an additional consistency check to of_node_release(), which
is the function that potentially frees node related memory when
the node's reference count is decremented to zero.

Add docbook documentation to the devicetree node creation functions
about caller responsibility to call of_node_put() and how the
memory free process works.

Frank Rowand (7):
of: prepare to add processing of EXPECT_NOT to of_unittest_expect
of: add processing of EXPECT_NOT to of_unittest_expect
of: update kconfig unittest help
of: unittest: add node lifecycle tests
of: do not use "%pOF" printk format on node with refcount of zero
of: add consistency check to of_node_release()
of: dynamic: add lifecycle docbook info to node creation functions

drivers/of/Kconfig | 14 +-
drivers/of/dynamic.c | 31 ++-
.../of/unittest-data/testcases_common.dtsi | 1 +
drivers/of/unittest-data/tests-lifecycle.dtsi | 8 +
drivers/of/unittest.c | 148 +++++++++++++-
include/linux/of.h | 11 ++
scripts/dtc/of_unittest_expect | 183 +++++++++++++++---
7 files changed, 365 insertions(+), 31 deletions(-)
create mode 100644 drivers/of/unittest-data/tests-lifecycle.dtsi

--
Frank Rowand <frowand.list@xxxxxxxxx>