]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/bpf: Fix parsing of prog types in UAPI hdr for bpftool sync
authorQuentin Monnet <quentin@isovalent.com>
Mon, 4 Apr 2022 14:09:44 +0000 (15:09 +0100)
committerAndrii Nakryiko <andrii@kernel.org>
Mon, 4 Apr 2022 21:46:15 +0000 (14:46 -0700)
The script for checking that various lists of types in bpftool remain in
sync with the UAPI BPF header uses a regex to parse enum bpf_prog_type.
If this enum contains a set of values different from the list of program
types in bpftool, it complains.

This script should have reported the addition, some time ago, of the new
BPF_PROG_TYPE_SYSCALL, which was not reported to bpftool's program types
list. It failed to do so, because it failed to parse that new type from
the enum. This is because the new value, in the BPF header, has an
explicative comment on the same line, and the regex does not support
that.

Let's update the script to support parsing enum values when they have
comments on the same line.

Signed-off-by: Quentin Monnet <quentin@isovalent.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20220404140944.64744-1-quentin@isovalent.com
tools/testing/selftests/bpf/test_bpftool_synctypes.py

index 6bf21e47882af6ffa3fb59b5c64a0b531ef7b2b3..c0e7acd698edf9fb6865d102cf3e909cff538bf0 100755 (executable)
@@ -180,7 +180,7 @@ class FileExtractor(object):
         @enum_name: name of the enum to parse
         """
         start_marker = re.compile(f'enum {enum_name} {{\n')
-        pattern = re.compile('^\s*(BPF_\w+),?$')
+        pattern = re.compile('^\s*(BPF_\w+),?(\s+/\*.*\*/)?$')
         end_marker = re.compile('^};')
         parser = BlockParser(self.reader)
         parser.search_block(start_marker)