15
15
# limitations under the License.
16
16
17
17
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
20
20
from tools .notifier .mock import MockNotifier
21
21
22
22
SRC_PATHS = {
@@ -105,20 +105,29 @@ def test_filter_by_all_libraries(self):
105
105
"""
106
106
Assert something
107
107
"""
108
- res = Resources (MockNotifier ())
108
+ res = Resources (MockNotifier (), collect_ignores = True )
109
109
res ._add_labels ('TARGET' , ['K64F' , 'FRDM' ])
110
110
for name , loc in SRC_PATHS .items ():
111
111
res .add_directory (loc , into_path = name )
112
112
res .filter_by_libraries (res .get_file_refs (FileType .JSON ))
113
113
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 ))
114
119
115
120
def test_filter_by_bm_lib (self ):
116
- res = Resources (MockNotifier ())
121
+ res = Resources (MockNotifier (), collect_ignores = True )
117
122
res ._add_labels ('TARGET' , ['K64F' , 'FRDM' ])
118
123
for name , loc in SRC_PATHS .items ():
119
124
res .add_directory (loc , into_path = name )
120
- filter_by = [
125
+ libs = [
121
126
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
122
131
if join ("platform" , "bm" , "mbed_lib.json" ) in ref .name
123
132
]
124
133
res .filter_by_libraries (filter_by )
@@ -131,6 +140,11 @@ def test_filter_by_bm_lib(self):
131
140
join ("mbed-os" , "TARGET_FRDM" , "not-main.cpp" )
132
141
in res .get_file_names (FileType .CPP_SRC )
133
142
)
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 ))
134
148
135
149
136
150
if __name__ == '__main__' :
0 commit comments