From 58354269eb9ab3b1963b2d56294393a3d02db712 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 24 Apr 2019 18:02:39 +0200 Subject: build-sys: add 'make checklibdoc' Let's to be sure that all libs API symbols are documented. Signed-off-by: Karel Zak --- Makefile.am | 13 +++++++++++++ tools/checklibdocs.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100755 tools/checklibdocs.sh diff --git a/Makefile.am b/Makefile.am index 0ae085d9a..adf87804b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -187,6 +187,19 @@ checkusage: @ $(top_srcdir)/tools/checkusage.sh \ $(bin_PROGRAMS) $(sbin_PROGRAMS) \ $(usrbin_exec_PROGRAMS) $(usrsbin_exec_PROGRAMS) +checklibdoc: + @ $(top_srcdir)/tools/checklibdocs.sh \ + $(top_srcdir)/libmount/src/libmount.sym \ + $(top_srcdir)/libmount/docs/libmount-sections.txt + @ $(top_srcdir)/tools/checklibdocs.sh \ + $(top_srcdir)/libfdisk/src/libfdisk.sym \ + $(top_srcdir)/libfdisk/docs/libfdisk-sections.txt + @ $(top_srcdir)/tools/checklibdocs.sh \ + $(top_srcdir)/libsmartcols/src/libsmartcols.sym \ + $(top_srcdir)/libsmartcols/docs/libsmartcols-sections.txt + @ $(top_srcdir)/tools/checklibdocs.sh \ + $(top_srcdir)/libblkid/src/libblkid.sym \ + $(top_srcdir)/libblkid/docs/libblkid-sections.txt DISTCHECK_CONFIGURE_FLAGS = \ --disable-use-tty-group \ diff --git a/tools/checklibdocs.sh b/tools/checklibdocs.sh new file mode 100755 index 000000000..094d2cbd5 --- /dev/null +++ b/tools/checklibdocs.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +FILE_API_SYMBOLS="$1" +FILE_API_DOCS="$2" + +if [ ! -f "$FILE_API_SYMBOLS" ]; then + echo "File $FILE_API_SYMBOLS is missing." + exit 1 +fi + +if [ ! -f "$FILE_API_DOCS" ]; then + echo "File $FILE_API_DOCS is missing." + exit 1 +fi + +fail_ct=0 +api_symbols=$(awk '/^([[:space:]]+)([[:alnum:]_]+);/ { gsub(";",""); print $1; }' "$FILE_API_SYMBOLS" | sort) +doc_symbols=$(awk '/^([[:space:]])*$/ {next}; !/<.*>/ { print $1 }' "$FILE_API_DOCS" | sort) + +echo -n "Checking $FILE_API_SYMBOLS documentation ... " + +for sym in $api_symbols; do + case "$doc_symbols" in + *"$sym"*) + #echo -ne "\n '$sym'" + ;; + *) + echo -ne "\n '$sym' undocumented" + fail_ct=$(($fail_ct + 1)) + ;; + esac +done + +if [ $fail_ct -ne 0 ]; then + echo + echo "$fail_ct symbols is missing in ${FILE_API_DOCS}." + echo + exit 1 +else + echo "OK" +fi + +exit 0 -- cgit v1.2.3-55-g7522