示例#1
0
 def test_filter_by_all_libraries(self):
     """
     Assert something
     """
     res = Resources(MockNotifier())
     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))
示例#2
0
 def test_basic_scan(self):
     """
     Verify that the ordering of Target info addition and directory addition
     does not matter, so long as all the Target info and all directories are
     added.
     """
     first = Resources(MockNotifier())
     first._add_labels('TARGET', ['K64F'])
     first._add_labels('TARGET', ['FRDM'])
     for name, loc in SRC_PATHS.items():
         print(name, loc)
         first.add_directory(loc, into_path=name)
     assert ("main.cpp" in first.get_file_names(FileType.CPP_SRC))
示例#3
0
 def test_filter_by_all_libraries(self):
     """
     Assert something
     """
     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))
示例#4
0
 def test_filter_by_bm_lib(self):
     res = Resources(MockNotifier())
     res._add_labels('TARGET', ['K64F', 'FRDM'])
     for name, loc in SRC_PATHS.items():
         res.add_directory(loc, into_path=name)
     filter_by = [
         ref for ref in res.get_file_refs(FileType.JSON)
         if join("platform", "bm", "mbed_lib.json") in ref.name
     ]
     res.filter_by_libraries(filter_by)
     assert ("main.cpp" not in res.get_file_names(FileType.CPP_SRC))
     assert (join("mbed-os", "platform", "bm", "bm.cpp")
             in res.get_file_names(FileType.CPP_SRC))
     assert (join("mbed-os", "TARGET_FRDM", "not-main.cpp")
             in res.get_file_names(FileType.CPP_SRC))
示例#5
0
 def test_detect_duplicates(self):
     """
     Verify that detect_duplicates finds all of the duplicate object files
     in the scanned tree.
     """
     notifier = MockNotifier()
     first = Resources(notifier)
     first._add_labels('TARGET', ['K64F'])
     for name, loc in SRC_PATHS.items():
         first.add_directory(loc, into_path=name)
     notifier.messages = []
     first.detect_duplicates()
     error_messages = "\n".join(m['message'] for m in notifier.messages
                                if m['type'] == 'tool_error')
     assert (" eggs.o " in error_messages)
     first._add_labels('TARGET', ['FRDM'])
     first.detect_duplicates()
     error_messages = "\n".join(m['message'] for m in notifier.messages
                                if m['type'] == 'tool_error')
     assert (" eggs.o " in error_messages)
     assert (" not-main.o " in error_messages)
     assert (" main.o " in error_messages)
示例#6
0
 def test_filter_by_bm_lib(self):
     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)
     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)
     assert ("main.cpp" not in res.get_file_names(FileType.CPP_SRC))
     assert (join("mbed-os", "platform", "bm", "bm.cpp")
             in res.get_file_names(FileType.CPP_SRC))
     assert (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))
示例#7
0
 def test_add_target_info(self):
     """
     Verify that the ordering of Target info addition and directory addition
     does not matter, so long as all the Target info and all directories are
     added.
     """
     first = Resources(MockNotifier())
     middle = Resources(MockNotifier())
     last = Resources(MockNotifier())
     first._add_labels('TARGET', ['K64F'])
     first._add_labels('TARGET', ['FRDM'])
     middle._add_labels('TARGET', ['FRDM'])
     for name, loc in SRC_PATHS.items():
         first.add_directory(loc, into_path=name)
         middle.add_directory(loc, into_path=name)
         last.add_directory(loc, into_path=name)
     middle._add_labels('TARGET', ['K64F'])
     last._add_labels('TARGET', ['K64F'])
     last._add_labels('TARGET', ['FRDM'])
     for ftype in Resources.ALL_FILE_TYPES:
         assert (set(first.get_file_refs(ftype)) == set(
             middle.get_file_refs(ftype)))
         assert (set(last.get_file_refs(ftype)) == set(
             middle.get_file_refs(ftype)))