From 41c799c8444f6c671c77c65c41b9684aad6afdeb Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Wed, 4 Sep 2024 19:25:44 +0100 Subject: [PATCH] meson: add test for gtkdoc coverage Signed-off-by: Emil Velikov Link: https://github.com/kmod-project/kmod/pull/94 Signed-off-by: Lucas De Marchi --- Makefile.am | 1 + libkmod/docs/meson.build | 9 ++++++++- meson.build | 1 + scripts/check-gtkdoc.sh | 24 ++++++++++++++++++++++++ 4 files changed, 34 insertions(+), 1 deletion(-) create mode 100755 scripts/check-gtkdoc.sh diff --git a/Makefile.am b/Makefile.am index 16c5ae60..6c4b00eb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -23,6 +23,7 @@ EXTRA_DIST += \ meson_options.txt \ testsuite/meson.build \ scripts/build-scdoc.sh \ + scripts/check-gtkdoc.sh \ scripts/kmod-symlink.sh AM_CPPFLAGS = \ diff --git a/libkmod/docs/meson.build b/libkmod/docs/meson.build index ff0132c6..a6d64ebf 100644 --- a/libkmod/docs/meson.build +++ b/libkmod/docs/meson.build @@ -6,7 +6,7 @@ version_file = configure_file( configuration: cdata, ) -gnome.gtkdoc( +built_docs = gnome.gtkdoc( 'libkmod', content_files : version_file, ignore_headers : [ @@ -20,3 +20,10 @@ gnome.gtkdoc( module_version : '3', main_xml : 'libkmod-docs.xml', ) + +test( + 'test-gtkdoc', + check_gtkdoc, + args : meson.current_build_dir(), + depends : built_docs, +) diff --git a/meson.build b/meson.build index c41a2bbe..db07e9c5 100644 --- a/meson.build +++ b/meson.build @@ -423,6 +423,7 @@ if get_option('manpages') endif if get_option('docs') + check_gtkdoc = find_program('scripts/check-gtkdoc.sh') subdir('libkmod/docs') endif diff --git a/scripts/check-gtkdoc.sh b/scripts/check-gtkdoc.sh new file mode 100755 index 00000000..624837e1 --- /dev/null +++ b/scripts/check-gtkdoc.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -euo pipefail + +err=0 + +warn() { + (( ++err )) + echo + echo "WARNING: $1." + echo "See file below for more details." + echo + echo "$2:" + cat "$2" + echo +} + +cd "$1" + +grep -q '100%' 'libkmod-undocumented.txt' || warn 'Some APIs are missing documentation' 'libkmod-undocumented.txt' + +(( $(wc -l < 'libkmod-unused.txt') == 0)) || warn 'APIs are missing from the libkmod-section.txt index' 'libkmod-unused.txt' + +exit "$err" -- 2.47.3