Uh oh!
There was an error while loading. Please reload this page.
[CI] Restore the per-function Doxygen check - #688
Conversation
doxygen-tag.sh declared `local function_check_flag="f+p"` at script top level. Bash rejects `local` outside a function, the script has no `set -e`, so ctags ran with an empty kind list and the per-function @brief check never fired. The script is byte-identical to the copy in nnstreamer/nnstreamer, where the same defect was found and fixed in nnstreamer/nnstreamer#4914 (issue nnstreamer/nnstreamer#4908); this takes that checker and its self-test verbatim. - Drop the `local`, default report_path to /dev/null (it was unset and produced an "ambiguous redirect" per file), and reset the brief state per file. - Check function definitions everywhere but prototypes only in headers; a static forward declaration in a .c is documented at its definition. - Recognise the trailing `/**< ... */` form, and track block comments so a '*' at the start of a wrapped parameter line is not taken for a comment continuation. - Add test_doxygen_tag.sh (18 generated fixtures) and a workflow step for it with the same merge-ref guard the nnstreamer copy uses. The tree is already clean under the corrected scope: 48 C files, zero findings, so the check turns on with nothing to clear. Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
myungjoo
commented
Sep 3, 2026
[Automated review by a separate Claude agent, relayed to this PR] Scope: read nnstreamer/nnstreamer#4908 and the full review history of nnstreamer/nnstreamer#4914 ( Does it solve the stated problemYes. Backlog = 0 claim — verified independentlyI could not run
I did not find a counterexample. The claim holds as far as I can verify it. Self-test / CI wiring
Positive note on the port, not an issue: in nnstreamer's should-fix (not blocking this PR — outside its diff, but answers a question this review was asked to check)
Informational / no PR action needed
Size / scopeProportionate and minimal: 3 files, all under Architecture / API docsNone needed. CI-script-only change; this repo has no CI status at review time
VerdictMergeable on content. The restored checker and its self-test are a faithful, verified port of the version that survived 4 rounds of review upstream, the "zero backlog" claim checks out under independent verification (including the highest-volume risk category, the 438 GTest macros), and the PR is minimal and correctly scoped. The one should-fix (branch protection not actually requiring "Static checks") is real and worth a maintainer follow-up, but it's a repository setting outside this PR's diff, not a reason to hold this PR. |
"gievn" for "given" in the brief of the offloading URI helper. The typos job flags it on every PR that runs the spell check, including ones that do not touch this file (#688). Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Port of nnstreamer/nnstreamer#4914 (issue nnstreamer/nnstreamer#4908).
What was wrong
.github/workflows/static.check.scripts/doxygen-tag.shhere is byte-identical to the nnstreamer copy:local function_check_flag="f+p"at script top level, which bash rejects, and noset -e, soctags -x --c-kinds=ran with an empty kind list and the per-function@briefcheck has passed vacuously since the Actions import.$report_pathwas never set (an "ambiguous redirect" per file on stderr) and$briefwas not reset between files.What this PR does
Takes the corrected checker and its self-test from nnstreamer/nnstreamer#4914 verbatim, and adds the self-test step to
static.check.ymlwith the same merge-ref guard:/**< ... */form is recognised (declaration line, a line opening with/**<right after it, or after an inline body);*at the start of a wrapped parameter line is not taken for a comment continuation;report_pathdefaults to/dev/null,briefresets per file;test_doxygen_tag.shgenerates 18 fixtures into a temp dir; all 18 fail against the checker onmainand pass here.Backlog
None. Under the corrected scope the tree is already clean (48 C/C++ files, zero findings with Exuberant Ctags 5.9, the CI version), so the check turns on without touching any source file.
🤖 Generated with Claude Code