[RFC PATCH v2 0/3] Add testable code specifications

Gabriele Paoloni
2025-09-10T17:00:23Z

[1] was an initial proposal defining testable code specifications for
some functions in /drivers/char/mem.c.
However a Guideline to write such specifications was missing and test
cases tracing to such specifications were missing.
This patchset represents a next step and is organised as follows:
- patch 1/3 contains the Guideline for writing code specifications
- patch 2/3 contains examples of code specfications defined for some
functions of drivers/char/mem.c
- patch 3/3 contains examples of selftests that map to some code
specifications of patch 2/3

[1] https://lore.kernel.org/all/20250821170419.70668-1-gpaoloni@redhat.com/
---
Changes from v1:
1) Added a Guideline to write code specifications in the Linux Kernel
Documentation
2) Addressed Greg KH comments in /drivers/char/mem.c
3) Added example of test cases mapping to the code specifications in
/drivers/char/mem.c
---
Alessandro Carminati (1):
selftests/devmem: initial testset

Gabriele Paoloni (2):
Documentation: add guidelines for writing testable code specifications
/dev/mem: Add initial documentation of memory_open() and mem_fops

.../doc-guide/code-specifications.rst | 208 +++++++
Documentation/doc-guide/index.rst | 1 +
drivers/char/mem.c | 231 ++++++-
tools/testing/selftests/Makefile | 1 +
tools/testing/selftests/devmem/Makefile | 13 +
tools/testing/selftests/devmem/debug.c | 25 +
tools/testing/selftests/devmem/debug.h | 14 +
tools/testing/selftests/devmem/devmem.c | 200 ++++++
tools/testing/selftests/devmem/ram_map.c | 250 ++++++++
tools/testing/selftests/devmem/ram_map.h | 38 ++
tools/testing/selftests/devmem/secret.c | 46 ++
tools/testing/selftests/devmem/secret.h | 13 +
tools/testing/selftests/devmem/tests.c | 569 ++++++++++++++++++
tools/testing/selftests/devmem/tests.h | 45 ++
tools/testing/selftests/devmem/utils.c | 379 ++++++++++++
tools/testing/selftests/devmem/utils.h | 119 ++++
16 files changed, 2146 insertions(+), 6 deletions(-)
create mode 100644 Documentation/doc-guide/code-specifications.rst
create mode 100644 tools/testing/selftests/devmem/Makefile
create mode 100644 tools/testing/selftests/devmem/debug.c
create mode 100644 tools/testing/selftests/devmem/debug.h
create mode 100644 tools/testing/selftests/devmem/devmem.c
create mode 100644 tools/testing/selftests/devmem/ram_map.c
create mode 100644 tools/testing/selftests/devmem/ram_map.h
create mode 100644 tools/testing/selftests/devmem/secret.c
create mode 100644 tools/testing/selftests/devmem/secret.h
create mode 100644 tools/testing/selftests/devmem/tests.c
create mode 100644 tools/testing/selftests/devmem/tests.h
create mode 100644 tools/testing/selftests/devmem/utils.c
create mode 100644 tools/testing/selftests/devmem/utils.h

--
2.48.1