Skip to content

Commit 2192a87

Browse files
author
Cruz Monrreal
authored
Merge pull request #10173 from theotherjimmy/exclude-requires
Collect excluded libraries into ignored_dirs
2 parents 0d86248 + 41c1553 commit 2192a87

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

tools/resources/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,10 @@ def filter_by_libraries(self, libraries_included):
312312
if ref.name.endswith(MBED_LIB_FILENAME)
313313
)
314314
self._excluded_libs = all_library_refs - self._libs_filtered
315+
if self._collect_ignores:
316+
self.ignored_dirs += [
317+
dirname(n) or "." for n, _ in self._excluded_libs
318+
]
315319

316320
def _get_from_refs(self, file_type, key):
317321
return sorted([key(f) for f in self.get_file_refs(file_type)])

tools/test/resources/resource_test.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
# limitations under the License.
1616

1717
import unittest
18-
from os.path import dirname, join
19-
from tools.resources import Resources, FileType
18+
from os.path import dirname, join, basename
19+
from tools.resources import Resources, FileType, MBED_LIB_FILENAME
2020
from tools.notifier.mock import MockNotifier
2121

2222
SRC_PATHS = {
@@ -105,20 +105,29 @@ def test_filter_by_all_libraries(self):
105105
"""
106106
Assert something
107107
"""
108-
res = Resources(MockNotifier())
108+
res = Resources(MockNotifier(), collect_ignores=True)
109109
res._add_labels('TARGET', ['K64F', 'FRDM'])
110110
for name, loc in SRC_PATHS.items():
111111
res.add_directory(loc, into_path=name)
112112
res.filter_by_libraries(res.get_file_refs(FileType.JSON))
113113
assert("main.cpp" in res.get_file_names(FileType.CPP_SRC))
114+
lib_dirs = (
115+
dirname(name) or "." for name in
116+
res.get_file_names(FileType.JSON)
117+
)
118+
assert(not any(dir in res.ignored_dirs for dir in lib_dirs))
114119

115120
def test_filter_by_bm_lib(self):
116-
res = Resources(MockNotifier())
121+
res = Resources(MockNotifier(), collect_ignores=True)
117122
res._add_labels('TARGET', ['K64F', 'FRDM'])
118123
for name, loc in SRC_PATHS.items():
119124
res.add_directory(loc, into_path=name)
120-
filter_by = [
125+
libs = [
121126
ref for ref in res.get_file_refs(FileType.JSON)
127+
if basename(ref.name) == MBED_LIB_FILENAME
128+
]
129+
filter_by = [
130+
ref for ref in libs
122131
if join("platform", "bm", "mbed_lib.json") in ref.name
123132
]
124133
res.filter_by_libraries(filter_by)
@@ -131,6 +140,11 @@ def test_filter_by_bm_lib(self):
131140
join("mbed-os", "TARGET_FRDM", "not-main.cpp")
132141
in res.get_file_names(FileType.CPP_SRC)
133142
)
143+
inc_names = [dirname(name) or "." for name, _ in filter_by]
144+
assert(not any(d in res.ignored_dirs for d in inc_names))
145+
excluded_libs = set(libs) - set(filter_by)
146+
exc_names = [dirname(name) or "." for name, _ in excluded_libs]
147+
assert(all(e in res.ignored_dirs for e in exc_names))
134148

135149

136150
if __name__ == '__main__':

0 commit comments

Comments
 (0)