| # SPDX-License-Identifier: GPL-2.0 |
| # Copyright(c) 2026: Mauro Carvalho Chehab <mchehab@kernel.org>. |
| |
| # 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 |