1*f1cdbd82SMauro Carvalho Chehab# SPDX-License-Identifier: GPL-2.0 2*f1cdbd82SMauro Carvalho Chehab# Copyright(c) 2026: Mauro Carvalho Chehab <mchehab@kernel.org>. 3*f1cdbd82SMauro Carvalho Chehab 4*f1cdbd82SMauro Carvalho Chehab# KDoc Test File Schema 5*f1cdbd82SMauro Carvalho Chehab 6*f1cdbd82SMauro Carvalho Chehab# This schema contains objects and properties needed to run kernel-doc 7*f1cdbd82SMauro Carvalho Chehab# self-tests. 8*f1cdbd82SMauro Carvalho Chehab 9*f1cdbd82SMauro Carvalho Chehab$schema: "http://json-schema.org/draft-07/schema#" 10*f1cdbd82SMauro Carvalho Chehab 11*f1cdbd82SMauro Carvalho Chehabtests: 12*f1cdbd82SMauro Carvalho Chehab type: array 13*f1cdbd82SMauro Carvalho Chehab minItems: 1 14*f1cdbd82SMauro Carvalho Chehab description: | 15*f1cdbd82SMauro Carvalho Chehab A list of kernel-doc tests. 16*f1cdbd82SMauro Carvalho Chehab 17*f1cdbd82SMauro Carvalho Chehab properties: 18*f1cdbd82SMauro Carvalho Chehab type: object 19*f1cdbd82SMauro Carvalho Chehab properties: 20*f1cdbd82SMauro Carvalho Chehab name: 21*f1cdbd82SMauro Carvalho Chehab type: string 22*f1cdbd82SMauro Carvalho Chehab description: | 23*f1cdbd82SMauro Carvalho Chehab Test name. Should be an unique identifier within the schema. 24*f1cdbd82SMauro Carvalho Chehab Don't prepend it with "test", as the dynamic test creation will 25*f1cdbd82SMauro Carvalho Chehab do it. 26*f1cdbd82SMauro Carvalho Chehab 27*f1cdbd82SMauro Carvalho Chehab description: 28*f1cdbd82SMauro Carvalho Chehab type: string 29*f1cdbd82SMauro Carvalho Chehab description: | 30*f1cdbd82SMauro Carvalho Chehab Test description 31*f1cdbd82SMauro Carvalho Chehab 32*f1cdbd82SMauro Carvalho Chehab source: 33*f1cdbd82SMauro Carvalho Chehab type: string 34*f1cdbd82SMauro Carvalho Chehab description: | 35*f1cdbd82SMauro Carvalho Chehab C source code that should be parsed by kernel-doc. 36*f1cdbd82SMauro Carvalho Chehab 37*f1cdbd82SMauro Carvalho Chehab fname: 38*f1cdbd82SMauro Carvalho Chehab type: string 39*f1cdbd82SMauro Carvalho Chehab description: | 40*f1cdbd82SMauro Carvalho Chehab The filename that contains the element. 41*f1cdbd82SMauro Carvalho Chehab When placing real testcases, please use here the name of 42*f1cdbd82SMauro Carvalho Chehab the C file (or header) from where the source code was picked. 43*f1cdbd82SMauro Carvalho Chehab 44*f1cdbd82SMauro Carvalho Chehab exports: 45*f1cdbd82SMauro Carvalho Chehab type: array 46*f1cdbd82SMauro Carvalho Chehab items: { type: string } 47*f1cdbd82SMauro Carvalho Chehab description: | 48*f1cdbd82SMauro Carvalho Chehab A list of export identifiers that are expected when parsing source. 49*f1cdbd82SMauro Carvalho Chehab 50*f1cdbd82SMauro Carvalho Chehab expected: 51*f1cdbd82SMauro Carvalho Chehab type: array 52*f1cdbd82SMauro Carvalho Chehab minItems: 1 53*f1cdbd82SMauro Carvalho Chehab description: | 54*f1cdbd82SMauro Carvalho Chehab A list of expected values. This list consists on objects to check 55*f1cdbd82SMauro Carvalho Chehab both kdoc_parser and/or kdoc_output objects. 56*f1cdbd82SMauro Carvalho Chehab 57*f1cdbd82SMauro Carvalho Chehab items: 58*f1cdbd82SMauro Carvalho Chehab type: object 59*f1cdbd82SMauro Carvalho Chehab properties: 60*f1cdbd82SMauro Carvalho Chehab # 61*f1cdbd82SMauro Carvalho Chehab # kdoc_item 62*f1cdbd82SMauro Carvalho Chehab # 63*f1cdbd82SMauro Carvalho Chehab kdoc_item: 64*f1cdbd82SMauro Carvalho Chehab type: object 65*f1cdbd82SMauro Carvalho Chehab description: | 66*f1cdbd82SMauro Carvalho Chehab Object expected to represent the C source code after parsed 67*f1cdbd82SMauro Carvalho Chehab by tools/lib/python/kdoc/kdoc_parser.py KernelDoc class. 68*f1cdbd82SMauro Carvalho Chehab See tools/lib/python/kdoc/kdoc_item.py for its contents. 69*f1cdbd82SMauro Carvalho Chehab 70*f1cdbd82SMauro Carvalho Chehab properties: 71*f1cdbd82SMauro Carvalho Chehab name: 72*f1cdbd82SMauro Carvalho Chehab type: string 73*f1cdbd82SMauro Carvalho Chehab description: | 74*f1cdbd82SMauro Carvalho Chehab The name of the identifier (function name, struct name, etc). 75*f1cdbd82SMauro Carvalho Chehab type: 76*f1cdbd82SMauro Carvalho Chehab type: string 77*f1cdbd82SMauro Carvalho Chehab description: | 78*f1cdbd82SMauro Carvalho Chehab Type of the object, as filled by kdoc_parser. can be: 79*f1cdbd82SMauro Carvalho Chehab - enum 80*f1cdbd82SMauro Carvalho Chehab - typedef 81*f1cdbd82SMauro Carvalho Chehab - union 82*f1cdbd82SMauro Carvalho Chehab - struct 83*f1cdbd82SMauro Carvalho Chehab - var 84*f1cdbd82SMauro Carvalho Chehab - function 85*f1cdbd82SMauro Carvalho Chehab declaration_start_line: 86*f1cdbd82SMauro Carvalho Chehab type: integer 87*f1cdbd82SMauro Carvalho Chehab description: | 88*f1cdbd82SMauro Carvalho Chehab The line number where the kernel-doc markup started. 89*f1cdbd82SMauro Carvalho Chehab The first line of the code is line number 1. 90*f1cdbd82SMauro Carvalho Chehab sections: 91*f1cdbd82SMauro Carvalho Chehab type: object 92*f1cdbd82SMauro Carvalho Chehab additionalProperties: { type: string } 93*f1cdbd82SMauro Carvalho Chehab description: | 94*f1cdbd82SMauro Carvalho Chehab Sections inside the kernel-doc markups: 95*f1cdbd82SMauro Carvalho Chehab - "description" 96*f1cdbd82SMauro Carvalho Chehab - "return" 97*f1cdbd82SMauro Carvalho Chehab - any other part of the markup that starts with "something:" 98*f1cdbd82SMauro Carvalho Chehab sections_start_lines: 99*f1cdbd82SMauro Carvalho Chehab type: object 100*f1cdbd82SMauro Carvalho Chehab additionalProperties: { type: integer } 101*f1cdbd82SMauro Carvalho Chehab description: | 102*f1cdbd82SMauro Carvalho Chehab a list of section names and the starting line of it. 103*f1cdbd82SMauro Carvalho Chehab parameterlist: 104*f1cdbd82SMauro Carvalho Chehab type: array 105*f1cdbd82SMauro Carvalho Chehab items: { type: string } 106*f1cdbd82SMauro Carvalho Chehab description: | 107*f1cdbd82SMauro Carvalho Chehab Ordered list of parameter names. 108*f1cdbd82SMauro Carvalho Chehab 109*f1cdbd82SMauro Carvalho Chehab parameterdesc_start_lines: 110*f1cdbd82SMauro Carvalho Chehab type: object 111*f1cdbd82SMauro Carvalho Chehab additionalProperties: { type: integer } 112*f1cdbd82SMauro Carvalho Chehab description: | 113*f1cdbd82SMauro Carvalho Chehab Mapping from parameter name to the line where its 114*f1cdbd82SMauro Carvalho Chehab description starts. 115*f1cdbd82SMauro Carvalho Chehab parameterdescs: 116*f1cdbd82SMauro Carvalho Chehab type: object 117*f1cdbd82SMauro Carvalho Chehab additionalProperties: { type: string } 118*f1cdbd82SMauro Carvalho Chehab description: | 119*f1cdbd82SMauro Carvalho Chehab Mapping from parameter name to its description. 120*f1cdbd82SMauro Carvalho Chehab 121*f1cdbd82SMauro Carvalho Chehab parametertypes: 122*f1cdbd82SMauro Carvalho Chehab type: object 123*f1cdbd82SMauro Carvalho Chehab additionalProperties: { type: string } 124*f1cdbd82SMauro Carvalho Chehab description: | 125*f1cdbd82SMauro Carvalho Chehab Mapping from parameter name to its type. 126*f1cdbd82SMauro Carvalho Chehab 127*f1cdbd82SMauro Carvalho Chehab other_stuff: 128*f1cdbd82SMauro Carvalho Chehab type: object 129*f1cdbd82SMauro Carvalho Chehab additionalProperties: {} 130*f1cdbd82SMauro Carvalho Chehab description: | 131*f1cdbd82SMauro Carvalho Chehab Extra properties that will be stored at the item. 132*f1cdbd82SMauro Carvalho Chehab Should match what kdoc_output expects. 133*f1cdbd82SMauro Carvalho Chehab 134*f1cdbd82SMauro Carvalho Chehab required: 135*f1cdbd82SMauro Carvalho Chehab - name 136*f1cdbd82SMauro Carvalho Chehab - type 137*f1cdbd82SMauro Carvalho Chehab - declaration_start_line 138*f1cdbd82SMauro Carvalho Chehab 139*f1cdbd82SMauro Carvalho Chehab rst: 140*f1cdbd82SMauro Carvalho Chehab type: string 141*f1cdbd82SMauro Carvalho Chehab description: | 142*f1cdbd82SMauro Carvalho Chehab The expected output for RestOutput class. 143*f1cdbd82SMauro Carvalho Chehab 144*f1cdbd82SMauro Carvalho Chehab man: 145*f1cdbd82SMauro Carvalho Chehab type: string 146*f1cdbd82SMauro Carvalho Chehab description: | 147*f1cdbd82SMauro Carvalho Chehab The expected output for ManOutput class. 148*f1cdbd82SMauro Carvalho Chehab 149*f1cdbd82SMauro Carvalho Chehab anyOf: 150*f1cdbd82SMauro Carvalho Chehab required: kdoc_item 151*f1cdbd82SMauro Carvalho Chehab required: source 152*f1cdbd82SMauro Carvalho Chehab 153*f1cdbd82SMauro Carvalho Chehab required: 154*f1cdbd82SMauro Carvalho Chehab - name 155*f1cdbd82SMauro Carvalho Chehab - fname 156*f1cdbd82SMauro Carvalho Chehab - expected 157