]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
selftests, bpftool: Add bpftool (and eBPF helpers) documentation build
authorQuentin Monnet <quentin@isovalent.com>
Wed, 9 Sep 2020 16:22:51 +0000 (17:22 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 10 Sep 2020 18:02:45 +0000 (11:02 -0700)
eBPF selftests include a script to check that bpftool builds correctly
with different command lines. Let's add one build for bpftool's
documentation so as to detect errors or warning reported by rst2man when
compiling the man pages. Also add a build to the selftests Makefile to
make sure we build bpftool documentation along with bpftool when
building the selftests.

This also builds and checks warnings for the man page for eBPF helpers,
which is built along bpftool's documentation.

This change adds rst2man as a dependency for selftests (it comes with
Python's "docutils").

v2:
- Use "--exit-status=1" option for rst2man instead of counting lines
  from stderr.
- Also build bpftool as part as the selftests build (and not only when
  the tests are actually run).

Signed-off-by: Quentin Monnet <quentin@isovalent.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Link: https://lore.kernel.org/bpf/20200909162251.15498-3-quentin@isovalent.com
tools/testing/selftests/bpf/Makefile
tools/testing/selftests/bpf/test_bpftool_build.sh

index 65d3d9aaeb319f11f0fde9a2a838ec4db173758a..05798c2b5c6717e6aafadeb67d569ed5171e414d 100644 (file)
@@ -176,6 +176,11 @@ $(DEFAULT_BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile)    \
        $(Q)$(MAKE) $(submake_extras)  -C $(BPFTOOLDIR)                        \
                    OUTPUT=$(BUILD_DIR)/bpftool/                               \
                    prefix= DESTDIR=$(SCRATCH_DIR)/ install
+       $(Q)mkdir -p $(BUILD_DIR)/bpftool/Documentation
+       $(Q)RST2MAN_OPTS="--exit-status=1" $(MAKE) $(submake_extras)           \
+                   -C $(BPFTOOLDIR)/Documentation                             \
+                   OUTPUT=$(BUILD_DIR)/bpftool/Documentation/                 \
+                   prefix= DESTDIR=$(SCRATCH_DIR)/ install
 
 $(BPFOBJ): $(wildcard $(BPFDIR)/*.[ch] $(BPFDIR)/Makefile)                    \
           ../../../include/uapi/linux/bpf.h                                   \
index ac349a5cea7ee5eb4ce25625def69116e8056c77..2db3c60e1e61a3c9d6b52dc7256899868e996d98 100755 (executable)
@@ -85,6 +85,23 @@ make_with_tmpdir() {
        echo
 }
 
+make_doc_and_clean() {
+       echo -e "\$PWD:    $PWD"
+       echo -e "command: make -s $* doc >/dev/null"
+       RST2MAN_OPTS="--exit-status=1" make $J -s $* doc
+       if [ $? -ne 0 ] ; then
+               ERROR=1
+               printf "FAILURE: Errors or warnings when building documentation\n"
+       fi
+       (
+               if [ $# -ge 1 ] ; then
+                       cd ${@: -1}
+               fi
+               make -s doc-clean
+       )
+       echo
+}
+
 echo "Trying to build bpftool"
 echo -e "... through kbuild\n"
 
@@ -145,3 +162,7 @@ make_and_clean
 make_with_tmpdir OUTPUT
 
 make_with_tmpdir O
+
+echo -e "Checking documentation build\n"
+# From tools/bpf/bpftool
+make_doc_and_clean