dtoc: Ignore unwanted files when scanning for drivers

We should ignore anything in the .git directory or any of the
build-sandbox, etc. directories created by 'make check'. These can confuse
dtoc. Update the code to ignore these.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2021-02-03 06:00:52 -07:00
parent a32eb7dca7
commit 36b2220cbd
2 changed files with 9 additions and 1 deletions

View File

@ -345,6 +345,11 @@ class Scanner:
This procedure will populate self._drivers and self._driver_aliases
"""
for (dirpath, _, filenames) in os.walk(self._basedir):
rel_path = dirpath[len(self._basedir):]
if rel_path.startswith('/'):
rel_path = rel_path[1:]
if rel_path.startswith('build') or rel_path.startswith('.git'):
continue
for fname in filenames:
if not fname.endswith('.c'):
continue

View File

@ -117,7 +117,9 @@ class TestSrcScan(unittest.TestCase):
fname_list = []
add_file('fname.c')
add_file('.git/ignoreme.c')
add_file('dir/fname2.c')
add_file('build-sandbox/ignoreme2.c')
# Mock out scan_driver and check that it is called with the
# expected files
@ -127,7 +129,8 @@ class TestSrcScan(unittest.TestCase):
self.assertEqual(2, len(mocked.mock_calls))
self.assertEqual(mock.call(fname_list[0]),
mocked.mock_calls[0])
self.assertEqual(mock.call(fname_list[1]),
# .git file should be ignored
self.assertEqual(mock.call(fname_list[2]),
mocked.mock_calls[1])
finally:
shutil.rmtree(indir)