Skip to content

Commit 9f4efce

Browse files
committed
Fix macOS tests
Attempt to fix tests on macOS
1 parent 3a5534b commit 9f4efce

File tree

7 files changed

+104
-88
lines changed

7 files changed

+104
-88
lines changed

pygccxml/declarations/pattern_parser.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,11 +192,11 @@ def join(self, name, args, arg_separator=None):
192192
args = [_f for _f in args if _f]
193193

194194
if not args:
195-
args_str = ' '
195+
args_str = ''
196196
elif len(args) == 1:
197-
args_str = ' ' + args[0] + ' '
197+
args_str = args[0]
198198
else:
199-
args_str = ' ' + arg_separator.join(args) + ' '
199+
args_str = arg_separator.join(args)
200200

201201
return ''.join([name, self.__begin, args_str, self.__end])
202202

pygccxml/parser/patcher.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,3 +303,18 @@ def update_unnamed_class(decls):
303303
if referent.name or not isinstance(referent, declarations.class_t):
304304
continue
305305
referent.name = decl.name
306+
307+
308+
def remove_spaces_from_template_names(decls):
309+
"""
310+
Cleanup names that can have different spaces at different places.
311+
This depends on the compiler / platform, so just remove spaces.
312+
313+
Examples:
314+
before hash<std::vector<int> >
315+
after hash<std::vector<int>>
316+
317+
"""
318+
for decl in decls:
319+
if isinstance(decl, declarations.declaration_t):
320+
decl.name = decl.name.replace(" >", ">").replace("< ", "<")

pygccxml/parser/source_reader.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,7 @@ def __parse_xml_file(self, xml_file):
420420
patcher.update_unnamed_class(decls.values())
421421
patcher.fix_calldef_decls(
422422
scanner_.calldefs(), scanner_.enums(), self.__cxx_std)
423+
patcher.remove_spaces_from_template_names(decls.values())
423424

424425
decls = [inst for inst in iter(decls.values()) if self.__check(inst)]
425426
return decls, list(files.values())

unittests/call_invocation_tester.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def test_split_on_map(self):
6565

6666
def test_join_on_vector(self):
6767
self.assertTrue(
68-
"vector( int, std::allocator(int) )" ==
68+
"vector(int, std::allocator(int))" ==
6969
declarations.call_invocation.join(
7070
"vector", ("int", "std::allocator(int)")))
7171

unittests/find_container_traits_tester.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -68,96 +68,96 @@ def __cmp_traits(self, typedef, expected, partial_name, key_type=None):
6868
self.assertTrue(traits.is_sequence(typedef))
6969

7070
def test_find_traits(self):
71-
self.__cmp_traits('v_int', declarations.vector_traits, "vector< int >")
72-
self.__cmp_traits('l_int', declarations.list_traits, "list< int >")
71+
self.__cmp_traits('v_int', declarations.vector_traits, "vector<int>")
72+
self.__cmp_traits('l_int', declarations.list_traits, "list<int>")
7373
self.__cmp_traits(
7474
'd_v_int',
7575
declarations.deque_traits,
76-
"deque< std::vector< int > >")
77-
self.__cmp_traits('q_int', declarations.queue_traits, "queue< int >")
76+
"deque<std::vector<int>>")
77+
self.__cmp_traits('q_int', declarations.queue_traits, "queue<int>")
7878
self.__cmp_traits(
7979
'pq_int',
8080
declarations.priority_queue_traits,
81-
"priority_queue< int >")
81+
"priority_queue<int>")
8282
self.__cmp_traits(
8383
's_v_int',
8484
declarations.set_traits,
85-
"set< std::vector< int > >")
85+
"set<std::vector<int>>")
8686
self.__cmp_traits(
8787
'ms_v_int',
8888
declarations.multiset_traits,
89-
"multiset< std::vector< int > >")
89+
"multiset<std::vector<int>>")
9090
self.__cmp_traits(
9191
'm_i2d',
9292
declarations.map_traits,
93-
"map< int, double >",
93+
"map<int, double>",
9494
'int')
9595
self.__cmp_traits(
9696
'mm_i2d',
9797
declarations.multimap_traits,
98-
"multimap< int, double >",
98+
"multimap<int, double>",
9999
'int')
100100

101101
if self.xml_generator_from_xml_file.is_castxml:
102102
self.__cmp_traits(
103103
'hs_v_int',
104104
declarations.unordered_set_traits,
105-
"unordered_set< std::vector< int > >")
105+
"unordered_set<std::vector<int>>")
106106
else:
107107
self.__cmp_traits(
108108
'hs_v_int',
109109
declarations.hash_set_traits,
110-
"hash_set< std::vector< int > >")
110+
"hash_set<std::vector<int>>")
111111

112112
if self.xml_generator_from_xml_file.is_castxml:
113113
self.__cmp_traits(
114114
'mhs_v_int',
115115
declarations.unordered_multiset_traits,
116-
"unordered_multiset< std::vector< int > >")
116+
"unordered_multiset<std::vector<int>>")
117117
else:
118118
self.__cmp_traits(
119119
'mhs_v_int',
120120
declarations.hash_multiset_traits,
121-
"hash_multiset< std::vector< int > >")
121+
"hash_multiset<std::vector<int>>")
122122

123123
if self.xml_generator_from_xml_file.is_castxml:
124124
self.__cmp_traits(
125125
'hm_i2d',
126126
declarations.unordered_map_traits,
127-
"unordered_map< int, double >",
127+
"unordered_map<int, double>",
128128
'int')
129129
else:
130130
self.__cmp_traits(
131131
'hm_i2d',
132132
declarations.hash_map_traits,
133-
"hash_map< int, double >",
133+
"hash_map<int, double>",
134134
'int')
135135

136136
if self.xml_generator_from_xml_file.is_castxml:
137137
self.__cmp_traits(
138138
'hmm_i2d',
139139
declarations.unordered_multimap_traits,
140-
"unordered_multimap< int, double >",
140+
"unordered_multimap<int, double>",
141141
'int')
142142
else:
143143
self.__cmp_traits(
144144
'hmm_i2d',
145145
declarations.hash_multimap_traits,
146-
"hash_multimap< int, double >",
146+
"hash_multimap<int, double>",
147147
'int')
148148

149149
def test_multimap(self):
150150
m = self.global_ns.class_(
151151
lambda decl: decl.name.startswith('multimap'))
152152
declarations.find_container_traits(m)
153-
self.assertTrue(m.partial_name == 'multimap< int, int >')
153+
self.assertTrue(m.partial_name == 'multimap<int, int>')
154154

155155
def test_recursive_partial_name(self):
156156
f1 = self.global_ns.free_function('f1')
157157
t1 = declarations.class_traits.get_declaration(
158158
f1.arguments[0].decl_type)
159159
self.assertTrue(
160-
'type< std::set< std::vector< int > > >' == t1.partial_name)
160+
'type<std::set<std::vector<int>>>' == t1.partial_name)
161161

162162
def test_remove_defaults_partial_name_namespace(self):
163163
f2 = self.global_ns.free_function('f2')
@@ -182,7 +182,7 @@ def test_from_ogre():
182182
'map<std::string, bool (*)(std::string&, ' +
183183
'Ogre::MaterialScriptContext&), std::less<std::string>, ' +
184184
'std::allocator<std::pair<std::string const, bool (*)' +
185-
'(std::string&, Ogre::MaterialScriptContext&)> > >')
185+
'(std::string&, Ogre::MaterialScriptContext&)>>>')
186186
ct = declarations.find_container_traits(x)
187187
ct.remove_defaults(x)
188188

0 commit comments

Comments
 (0)