selftests/bpf: Clear out Python syntax warnings
Invalid escape sequences are used, and produced syntax warnings:
$ test_bpftool_synctypes.py
test_bpftool_synctypes.py:69: SyntaxWarning: invalid escape sequence '\['
self.start_marker = re.compile(f'(static )?const bool {self.array_name}\[.*\] = {{\n')
test_bpftool_synctypes.py:83: SyntaxWarning: invalid escape sequence '\['
pattern = re.compile('\[(BPF_\w*)\]\s*= (true|false),?$')
test_bpftool_synctypes.py:181: SyntaxWarning: invalid escape sequence '\s'
pattern = re.compile('^\s*(BPF_\w+),?(\s+/\*.*\*/)?$')
test_bpftool_synctypes.py:229: SyntaxWarning: invalid escape sequence '\*'
start_marker = re.compile(f'\*{block_name}\* := {{')
test_bpftool_synctypes.py:229: SyntaxWarning: invalid escape sequence '\*'
start_marker = re.compile(f'\*{block_name}\* := {{')
test_bpftool_synctypes.py:230: SyntaxWarning: invalid escape sequence '\*'
pattern = re.compile('\*\*([\w/-]+)\*\*')
test_bpftool_synctypes.py:248: SyntaxWarning: invalid escape sequence '\s'
start_marker = re.compile(f'"\s*{block_name} := {{')
test_bpftool_synctypes.py:249: SyntaxWarning: invalid escape sequence '\w'
pattern = re.compile('([\w/]+) [|}]')
test_bpftool_synctypes.py:267: SyntaxWarning: invalid escape sequence '\s'
start_marker = re.compile(f'"\s*{macro}\s*" [|}}]')
test_bpftool_synctypes.py:267: SyntaxWarning: invalid escape sequence '\s'
start_marker = re.compile(f'"\s*{macro}\s*" [|}}]')
test_bpftool_synctypes.py:268: SyntaxWarning: invalid escape sequence '\w'
pattern = re.compile('([\w-]+) ?(?:\||}[ }\]])')
test_bpftool_synctypes.py:287: SyntaxWarning: invalid escape sequence '\w'
pattern = re.compile('(?:.*=\')?([\w/]+)')
test_bpftool_synctypes.py:319: SyntaxWarning: invalid escape sequence '\w'
pattern = re.compile('([\w-]+) ?(?:\||}[ }\]"])')
test_bpftool_synctypes.py:341: SyntaxWarning: invalid escape sequence '\|'
start_marker = re.compile('\|COMMON_OPTIONS\| replace:: {')
test_bpftool_synctypes.py:342: SyntaxWarning: invalid escape sequence '\*'
pattern = re.compile('\*\*([\w/-]+)\*\*')
Escaping them clears out the warnings.
$ tools/testing/selftests/bpf/test_bpftool_synctypes.py; echo $?
0
Signed-off-by: Ariel Otilibili <ariel.otilibili-anieli@eurecom.fr>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Tested-by: Quentin Monnet <qmo@kernel.org>
Reviewed-by: Quentin Monnet <qmo@kernel.org>
Link: https://docs.python.org/3/library/re.html
Link: https://lore.kernel.org/bpf/20241211220012.714055-2-ariel.otilibili-anieli@eurecom.fr
pull/1133/head
parent
8eef6ac4d7
commit
c5d2bac978
|
|
@ -66,7 +66,7 @@ class ArrayParser(BlockParser):
|
||||||
|
|
||||||
def __init__(self, reader, array_name):
|
def __init__(self, reader, array_name):
|
||||||
self.array_name = array_name
|
self.array_name = array_name
|
||||||
self.start_marker = re.compile(f'(static )?const bool {self.array_name}\[.*\] = {{\n')
|
self.start_marker = re.compile(fr'(static )?const bool {self.array_name}\[.*\] = {{\n')
|
||||||
super().__init__(reader)
|
super().__init__(reader)
|
||||||
|
|
||||||
def search_block(self):
|
def search_block(self):
|
||||||
|
|
@ -80,7 +80,7 @@ class ArrayParser(BlockParser):
|
||||||
Parse a block and return data as a dictionary. Items to extract must be
|
Parse a block and return data as a dictionary. Items to extract must be
|
||||||
on separate lines in the file.
|
on separate lines in the file.
|
||||||
"""
|
"""
|
||||||
pattern = re.compile('\[(BPF_\w*)\]\s*= (true|false),?$')
|
pattern = re.compile(r'\[(BPF_\w*)\]\s*= (true|false),?$')
|
||||||
entries = set()
|
entries = set()
|
||||||
while True:
|
while True:
|
||||||
line = self.reader.readline()
|
line = self.reader.readline()
|
||||||
|
|
@ -178,7 +178,7 @@ class FileExtractor(object):
|
||||||
@enum_name: name of the enum to parse
|
@enum_name: name of the enum to parse
|
||||||
"""
|
"""
|
||||||
start_marker = re.compile(f'enum {enum_name} {{\n')
|
start_marker = re.compile(f'enum {enum_name} {{\n')
|
||||||
pattern = re.compile('^\s*(BPF_\w+),?(\s+/\*.*\*/)?$')
|
pattern = re.compile(r'^\s*(BPF_\w+),?(\s+/\*.*\*/)?$')
|
||||||
end_marker = re.compile('^};')
|
end_marker = re.compile('^};')
|
||||||
parser = BlockParser(self.reader)
|
parser = BlockParser(self.reader)
|
||||||
parser.search_block(start_marker)
|
parser.search_block(start_marker)
|
||||||
|
|
@ -226,8 +226,8 @@ class FileExtractor(object):
|
||||||
|
|
||||||
@block_name: name of the blog to parse, 'TYPE' in the example
|
@block_name: name of the blog to parse, 'TYPE' in the example
|
||||||
"""
|
"""
|
||||||
start_marker = re.compile(f'\*{block_name}\* := {{')
|
start_marker = re.compile(fr'\*{block_name}\* := {{')
|
||||||
pattern = re.compile('\*\*([\w/-]+)\*\*')
|
pattern = re.compile(r'\*\*([\w/-]+)\*\*')
|
||||||
end_marker = re.compile('}\n')
|
end_marker = re.compile('}\n')
|
||||||
return self.__get_description_list(start_marker, pattern, end_marker)
|
return self.__get_description_list(start_marker, pattern, end_marker)
|
||||||
|
|
||||||
|
|
@ -245,8 +245,8 @@ class FileExtractor(object):
|
||||||
|
|
||||||
@block_name: name of the blog to parse, 'TYPE' in the example
|
@block_name: name of the blog to parse, 'TYPE' in the example
|
||||||
"""
|
"""
|
||||||
start_marker = re.compile(f'"\s*{block_name} := {{')
|
start_marker = re.compile(fr'"\s*{block_name} := {{')
|
||||||
pattern = re.compile('([\w/]+) [|}]')
|
pattern = re.compile(r'([\w/]+) [|}]')
|
||||||
end_marker = re.compile('}')
|
end_marker = re.compile('}')
|
||||||
return self.__get_description_list(start_marker, pattern, end_marker)
|
return self.__get_description_list(start_marker, pattern, end_marker)
|
||||||
|
|
||||||
|
|
@ -264,8 +264,8 @@ class FileExtractor(object):
|
||||||
|
|
||||||
@macro: macro starting the block, 'HELP_SPEC_OPTIONS' in the example
|
@macro: macro starting the block, 'HELP_SPEC_OPTIONS' in the example
|
||||||
"""
|
"""
|
||||||
start_marker = re.compile(f'"\s*{macro}\s*" [|}}]')
|
start_marker = re.compile(fr'"\s*{macro}\s*" [|}}]')
|
||||||
pattern = re.compile('([\w-]+) ?(?:\||}[ }\]])')
|
pattern = re.compile(r'([\w-]+) ?(?:\||}[ }\]])')
|
||||||
end_marker = re.compile('}\\\\n')
|
end_marker = re.compile('}\\\\n')
|
||||||
return self.__get_description_list(start_marker, pattern, end_marker)
|
return self.__get_description_list(start_marker, pattern, end_marker)
|
||||||
|
|
||||||
|
|
@ -283,8 +283,8 @@ class FileExtractor(object):
|
||||||
|
|
||||||
@block_name: name of the blog to parse, 'TYPE' in the example
|
@block_name: name of the blog to parse, 'TYPE' in the example
|
||||||
"""
|
"""
|
||||||
start_marker = re.compile(f'local {block_name}=\'')
|
start_marker = re.compile(fr'local {block_name}=\'')
|
||||||
pattern = re.compile('(?:.*=\')?([\w/]+)')
|
pattern = re.compile(r'(?:.*=\')?([\w/]+)')
|
||||||
end_marker = re.compile('\'$')
|
end_marker = re.compile('\'$')
|
||||||
return self.__get_description_list(start_marker, pattern, end_marker)
|
return self.__get_description_list(start_marker, pattern, end_marker)
|
||||||
|
|
||||||
|
|
@ -316,7 +316,7 @@ class MainHeaderFileExtractor(SourceFileExtractor):
|
||||||
{'-p', '-d', '--pretty', '--debug', '--json', '-j'}
|
{'-p', '-d', '--pretty', '--debug', '--json', '-j'}
|
||||||
"""
|
"""
|
||||||
start_marker = re.compile(f'"OPTIONS :=')
|
start_marker = re.compile(f'"OPTIONS :=')
|
||||||
pattern = re.compile('([\w-]+) ?(?:\||}[ }\]"])')
|
pattern = re.compile(r'([\w-]+) ?(?:\||}[ }\]"])')
|
||||||
end_marker = re.compile('#define')
|
end_marker = re.compile('#define')
|
||||||
|
|
||||||
parser = InlineListParser(self.reader)
|
parser = InlineListParser(self.reader)
|
||||||
|
|
@ -338,8 +338,8 @@ class ManSubstitutionsExtractor(SourceFileExtractor):
|
||||||
|
|
||||||
{'-p', '-d', '--pretty', '--debug', '--json', '-j'}
|
{'-p', '-d', '--pretty', '--debug', '--json', '-j'}
|
||||||
"""
|
"""
|
||||||
start_marker = re.compile('\|COMMON_OPTIONS\| replace:: {')
|
start_marker = re.compile(r'\|COMMON_OPTIONS\| replace:: {')
|
||||||
pattern = re.compile('\*\*([\w/-]+)\*\*')
|
pattern = re.compile(r'\*\*([\w/-]+)\*\*')
|
||||||
end_marker = re.compile('}$')
|
end_marker = re.compile('}$')
|
||||||
|
|
||||||
parser = InlineListParser(self.reader)
|
parser = InlineListParser(self.reader)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue