insane: unimplemented-ptest: ignore source file errors

In some cases, pathlib.Path.glob() might throw FileNotFoundError when
file/directory disappear while it is iterating over them.

This "warning" is not important enough to crash build in this case so
just take a bb.note of the problem and move on.

(From OE-Core rev: 85ddbb67f0f6f823cac0966db78e5b74c5a54c4c)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Reported-by: Mark Hatle <mark.hatle@amd.com>
Closes: https://lists.openembedded.org/g/openembedded-core/message/189254
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Yoann Congal
2023-10-16 17:51:13 +02:00
committed by Richard Purdie
parent 11bab63ca8
commit 07546cc63f

View File

@@ -1353,16 +1353,22 @@ python do_qa_patch() {
###########################################################################
def match_line_in_files(toplevel, filename_glob, line_regex):
import pathlib
toppath = pathlib.Path(toplevel)
for entry in toppath.glob(filename_glob):
try:
with open(entry, 'r', encoding='utf-8', errors='ignore') as f:
for line in f.readlines():
if re.match(line_regex, line):
return True
except FileNotFoundError:
# Broken symlink in source
pass
try:
toppath = pathlib.Path(toplevel)
for entry in toppath.glob(filename_glob):
try:
with open(entry, 'r', encoding='utf-8', errors='ignore') as f:
for line in f.readlines():
if re.match(line_regex, line):
return True
except FileNotFoundError:
# Broken symlink in source
pass
except FileNotFoundError:
# pathlib.Path.glob() might throw this when file/directory
# disappear while scanning.
bb.note("unimplemented-ptest: FileNotFoundError exception while scanning (disappearing file while scanning?). Check was ignored." % d.getVar('PN'))
pass
return False
srcdir = d.getVar('S')