# SPDX-License-Identifier: GPL-2.0 # Copyright(c) 2026: Mauro Carvalho Chehab . # KDoc Test File Schema # This schema contains objects and properties needed to run kernel-doc # self-tests. $schema: "http://json-schema.org/draft-07/schema#" tests: type: array minItems: 1 description: | A list of kernel-doc tests. properties: type: object properties: name: type: string description: | Test name. Should be an unique identifier within the schema. Don't prepend it with "test", as the dynamic test creation will do it. description: type: string description: | Test description source: type: string description: | C source code that should be parsed by kernel-doc. fname: type: string description: | The filename that contains the element. When placing real testcases, please use here the name of the C file (or header) from where the source code was picked. exports: type: array items: { type: string } description: | A list of export identifiers that are expected when parsing source. expected: type: array minItems: 1 description: | A list of expected values. This list consists on objects to check both kdoc_parser and/or kdoc_output objects. items: type: object properties: # # kdoc_item # kdoc_item: type: object description: | Object expected to represent the C source code after parsed by tools/lib/python/kdoc/kdoc_parser.py KernelDoc class. See tools/lib/python/kdoc/kdoc_item.py for its contents. properties: name: type: string description: | The name of the identifier (function name, struct name, etc). type: type: string description: | Type of the object, as filled by kdoc_parser. can be: - enum - typedef - union - struct - var - function declaration_start_line: type: integer description: | The line number where the kernel-doc markup started. The first line of the code is line number 1. sections: type: object additionalProperties: { type: string } description: | Sections inside the kernel-doc markups: - "description" - "return" - any other part of the markup that starts with "something:" sections_start_lines: type: object additionalProperties: { type: integer } description: | a list of section names and the starting line of it. parameterlist: type: array items: { type: string } description: | Ordered list of parameter names. parameterdesc_start_lines: type: object additionalProperties: { type: integer } description: | Mapping from parameter name to the line where its description starts. parameterdescs: type: object additionalProperties: { type: string } description: | Mapping from parameter name to its description. parametertypes: type: object additionalProperties: { type: string } description: | Mapping from parameter name to its type. other_stuff: type: object additionalProperties: {} description: | Extra properties that will be stored at the item. Should match what kdoc_output expects. required: - name - type - declaration_start_line rst: type: string description: | The expected output for RestOutput class. man: type: string description: | The expected output for ManOutput class. anyOf: required: kdoc_item required: source required: - name - fname - expected