Merge pull request #10173 from theotherjimmy/exclude-requires

Collect excluded libraries into ignored_dirs
pull/10178/head
Cruz Monrreal 2019-03-20 16:37:50 -05:00 committed by GitHub
commit 2192a8796e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 5 deletions

View File

@ -312,6 +312,10 @@ class Resources(object):
if ref.name.endswith(MBED_LIB_FILENAME)
)
self._excluded_libs = all_library_refs - self._libs_filtered
if self._collect_ignores:
self.ignored_dirs += [
dirname(n) or "." for n, _ in self._excluded_libs
]
def _get_from_refs(self, file_type, key):
return sorted([key(f) for f in self.get_file_refs(file_type)])

View File

@ -15,8 +15,8 @@
# limitations under the License.
import unittest
from os.path import dirname, join
from tools.resources import Resources, FileType
from os.path import dirname, join, basename
from tools.resources import Resources, FileType, MBED_LIB_FILENAME
from tools.notifier.mock import MockNotifier
SRC_PATHS = {
@ -105,20 +105,29 @@ class ResourcesTest(unittest.TestCase):
"""
Assert something
"""
res = Resources(MockNotifier())
res = Resources(MockNotifier(), collect_ignores=True)
res._add_labels('TARGET', ['K64F', 'FRDM'])
for name, loc in SRC_PATHS.items():
res.add_directory(loc, into_path=name)
res.filter_by_libraries(res.get_file_refs(FileType.JSON))
assert("main.cpp" in res.get_file_names(FileType.CPP_SRC))
lib_dirs = (
dirname(name) or "." for name in
res.get_file_names(FileType.JSON)
)
assert(not any(dir in res.ignored_dirs for dir in lib_dirs))
def test_filter_by_bm_lib(self):
res = Resources(MockNotifier())
res = Resources(MockNotifier(), collect_ignores=True)
res._add_labels('TARGET', ['K64F', 'FRDM'])
for name, loc in SRC_PATHS.items():
res.add_directory(loc, into_path=name)
filter_by = [
libs = [
ref for ref in res.get_file_refs(FileType.JSON)
if basename(ref.name) == MBED_LIB_FILENAME
]
filter_by = [
ref for ref in libs
if join("platform", "bm", "mbed_lib.json") in ref.name
]
res.filter_by_libraries(filter_by)
@ -131,6 +140,11 @@ class ResourcesTest(unittest.TestCase):
join("mbed-os", "TARGET_FRDM", "not-main.cpp")
in res.get_file_names(FileType.CPP_SRC)
)
inc_names = [dirname(name) or "." for name, _ in filter_by]
assert(not any(d in res.ignored_dirs for d in inc_names))
excluded_libs = set(libs) - set(filter_by)
exc_names = [dirname(name) or "." for name, _ in excluded_libs]
assert(all(e in res.ignored_dirs for e in exc_names))
if __name__ == '__main__':