Skip to content

Commit e4f58ee

Browse files
committed
test: debug
1 parent dcb0730 commit e4f58ee

File tree

3 files changed

+152
-144
lines changed

3 files changed

+152
-144
lines changed

pyproject.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,7 @@ docs = [
6666
examples = [
6767
"notebook",
6868
]
69+
[tool.pytest.ini_options]
70+
pythonpath = [
71+
"src"
72+
]

src/pygccxml/declarations/container_traits.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ def normalize(self, type_str):
3939
return type_str.replace(' ', '')
4040

4141
def replace_basic_string(self, cls_name):
42+
print("replace_basic_string 1", cls_name)
4243
strings = {
4344
"std::string": string_equivalences,
4445
"std::wstring": wstring_equivalences
@@ -48,7 +49,7 @@ def replace_basic_string(self, cls_name):
4849
for short_name, long_names in strings.items():
4950
for lname in long_names:
5051
new_name = new_name.replace(lname, short_name)
51-
52+
print("replace_basic_string 2", new_name)
5253
return new_name
5354

5455
def decorated_call_prefix(self, cls_name, text, doit):
@@ -101,6 +102,7 @@ def erase_recursive(self, cls_name):
101102
def erase_allocator(self, cls_name, default_allocator='std::allocator'):
102103
cls_name = self.replace_basic_string(cls_name)
103104
c_name, c_args = templates.split(cls_name)
105+
print("erase_allocator", cls_name, c_name, c_args)
104106
if len(c_args) != 2:
105107
return
106108
value_type = c_args[0]
@@ -118,6 +120,7 @@ def erase_allocator(self, cls_name, default_allocator='std::allocator'):
118120
def erase_container(self, cls_name, default_container_name='std::deque'):
119121
cls_name = self.replace_basic_string(cls_name)
120122
c_name, c_args = templates.split(cls_name)
123+
print("erase_container", cls_name, c_name)
121124
if len(c_args) != 2:
122125
return
123126
value_type = c_args[0]
@@ -521,12 +524,16 @@ def remove_defaults(self, type_or_string):
521524
"""
522525

523526
name = type_or_string
527+
print("remove_defaults 1", name)
524528
if not isinstance(type_or_string, str):
525529
name = self.class_declaration(type_or_string).name
530+
print("remove_defaults 2", name)
526531
if not self.remove_defaults_impl:
527532
return name
528533
no_defaults = self.remove_defaults_impl(name)
534+
print("remove_defaults no_defaults 3", no_defaults)
529535
if not no_defaults:
536+
print("remove_defaults RETURN", name)
530537
return name
531538
return no_defaults
532539

tests/test_remove_template_defaults.py

Lines changed: 140 additions & 143 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,17 @@
44
# See http://www.boost.org/LICENSE_1_0.txt
55

66
import platform
7-
import logging
87
import pytest
98

109
from . import autoconfig
1110

1211
from pygccxml import parser
1312
from pygccxml import declarations
14-
from pygccxml import utils
1513

1614
TEST_FILES = [
1715
'remove_template_defaults.hpp'
1816
]
1917

20-
utils.loggers.set_level(logging.DEBUG)
21-
2218

2319
@pytest.fixture
2420
def global_ns():
@@ -46,142 +42,143 @@ def test_vector(global_ns):
4642
v_v_int = global_ns.typedef('v_v_int')
4743
assert 'vector<std::vector<int>>' == \
4844
v_traits.remove_defaults(v_v_int)
49-
50-
51-
def test_list(global_ns):
52-
l_int = global_ns.typedef('l_int')
53-
l_traits = declarations.list_traits
54-
assert 'list<int>' == l_traits.remove_defaults(l_int)
55-
l_wstring = global_ns.typedef('l_wstring')
56-
assert 'list<std::wstring>' == l_traits.remove_defaults(l_wstring)
57-
58-
59-
def test_deque(global_ns):
60-
d_v_int = global_ns.typedef('d_v_int')
61-
d_v_traits = declarations.deque_traits
62-
assert 'deque<std::vector<int>>' == \
63-
d_v_traits.remove_defaults(d_v_int)
64-
d_l_string = global_ns.typedef('d_l_string')
65-
assert 'deque<std::list<std::string>>' == \
66-
d_v_traits.remove_defaults(d_l_string)
67-
68-
69-
def test_queue(global_ns):
70-
q_int = global_ns.typedef('q_int')
71-
q_traits = declarations.queue_traits
72-
assert 'queue<int>' == q_traits.remove_defaults(q_int)
73-
q_string = global_ns.typedef('q_string')
74-
assert 'queue<std::string>' == q_traits.remove_defaults(q_string)
75-
76-
77-
def test_priority_queue(global_ns):
78-
pq_int = global_ns.typedef('pq_int')
79-
pq_traits = declarations.priority_queue_traits
80-
assert 'priority_queue<int>' == pq_traits.remove_defaults(pq_int)
81-
pq_string = global_ns.typedef('pq_string')
82-
assert 'priority_queue<std::string>' == \
83-
pq_traits.remove_defaults(pq_string)
84-
85-
86-
def test_set(global_ns):
87-
s_v_int = global_ns.typedef('s_v_int')
88-
assert 'set<std::vector<int>>' == \
89-
declarations.set_traits.remove_defaults(s_v_int)
90-
s_string = global_ns.typedef('s_string')
91-
assert 'set<std::string>' == \
92-
declarations.set_traits.remove_defaults(s_string)
93-
94-
95-
def test_multiset(global_ns):
96-
ms_v_int = global_ns.typedef('ms_v_int')
97-
ms_v_traits = declarations.multiset_traits
98-
assert 'multiset<std::vector<int>>' == \
99-
ms_v_traits.remove_defaults(ms_v_int)
100-
ms_string = global_ns.typedef('ms_string')
101-
assert 'multiset<std::string>' == \
102-
ms_v_traits.remove_defaults(ms_string)
103-
104-
105-
def test_map(global_ns):
106-
m_i2d = global_ns.typedef('m_i2d')
107-
assert 'map<int, double>' == \
108-
declarations.map_traits.remove_defaults(m_i2d)
109-
m_wstr2d = global_ns.typedef('m_wstr2d')
110-
assert 'map<std::wstring, double>' == \
111-
declarations.map_traits.remove_defaults(m_wstr2d)
112-
m_v_i2m_wstr2d = global_ns.typedef('m_v_i2m_wstr2d')
113-
m = 'map<const std::vector<int>, std::map<std::wstring, double>>'
114-
assert m == declarations.map_traits.remove_defaults(m_v_i2m_wstr2d)
115-
116-
117-
def test_multimap(global_ns):
118-
mm_i2d = global_ns.typedef('mm_i2d')
119-
mm_traits = declarations.multimap_traits
120-
assert 'multimap<int, double>' == mm_traits.remove_defaults(mm_i2d)
121-
mm_wstr2d = global_ns.typedef('mm_wstr2d')
122-
assert 'multimap<const std::wstring, double>' == \
123-
mm_traits.remove_defaults(mm_wstr2d)
124-
mm_v_i2mm_wstr2d = global_ns.typedef('mm_v_i2mm_wstr2d')
125-
assert ('multimap<const std::vector<int>, ' +
126-
'const std::multimap<const std::wstring, double>>') == \
127-
mm_traits.remove_defaults(mm_v_i2mm_wstr2d)
128-
129-
130-
def test_hash_set(global_ns):
131-
hs_v_int = global_ns.typedef('hs_v_int')
132-
hs_traits = declarations.unordered_set_traits
133-
name = 'unordered_set'
134-
assert (name + '<std::vector<int>>') == \
135-
hs_traits.remove_defaults(hs_v_int), \
136-
hs_traits.remove_defaults(hs_v_int)
137-
hs_string = global_ns.typedef('hs_string')
138-
assert (name + '<std::string>') == \
139-
hs_traits.remove_defaults(hs_string)
140-
141-
142-
def test_hash_multiset(global_ns):
143-
mhs_v_int = global_ns.typedef('mhs_v_int')
144-
mhs_traits = declarations.unordered_multiset_traits
145-
name = 'unordered_multiset'
146-
assert (name + '<std::vector<int>>') == \
147-
mhs_traits.remove_defaults(mhs_v_int)
148-
mhs_string = global_ns.typedef('mhs_string')
149-
assert (name + '<std::string>') == \
150-
mhs_traits.remove_defaults(mhs_string)
151-
152-
153-
def test_hash_map(global_ns):
154-
hm_i2d = global_ns.typedef('hm_i2d')
155-
hm_traits = declarations.unordered_map_traits
156-
name = 'unordered_map'
157-
assert (name + '<int, double>') == \
158-
hm_traits.remove_defaults(hm_i2d)
159-
hm_wstr2d = global_ns.typedef('hm_wstr2d')
160-
assert (name + '<std::wstring, double>') == \
161-
hm_traits.remove_defaults(hm_wstr2d)
162-
163-
164-
def test_hash_multimap(global_ns):
165-
hmm_i2d = global_ns.typedef('hmm_i2d')
166-
hmm_traits = declarations.unordered_multimap_traits
167-
name = 'unordered_multimap'
168-
assert (name + '<int, double>') == \
169-
hmm_traits.remove_defaults(hmm_i2d)
170-
hmm_wstr2d = global_ns.typedef('hmm_wstr2d')
171-
assert (name + '<const std::wstring, double>') == \
172-
hmm_traits.remove_defaults(hmm_wstr2d)
173-
174-
hmm_v_i2mm_wstr2d = global_ns.typedef('hmm_v_i2mm_wstr2d')
175-
176-
hmm_traits_value = hmm_traits.remove_defaults(hmm_v_i2mm_wstr2d)
177-
178-
possible_values = (
179-
name + '<const std::vector<int>, ' +
180-
'const __gnu_cxx::' + name + '<const std::wstring, double>>',
181-
name + '<const std::vector<int>, ' +
182-
'const std::' + utils.get_tr1(hmm_traits_value) + name +
183-
'<const std::wstring, double>>',
184-
name + '<const std::vector<int>, ' +
185-
'const stdext::' + name + '<const std::wstring, double>>')
186-
187-
assert hmm_traits_value in possible_values, hmm_traits_value
45+
raise
46+
47+
48+
# def test_list(global_ns):
49+
# l_int = global_ns.typedef('l_int')
50+
# l_traits = declarations.list_traits
51+
# assert 'list<int>' == l_traits.remove_defaults(l_int)
52+
# l_wstring = global_ns.typedef('l_wstring')
53+
# assert 'list<std::wstring>' == l_traits.remove_defaults(l_wstring)
54+
55+
56+
# def test_deque(global_ns):
57+
# d_v_int = global_ns.typedef('d_v_int')
58+
# d_v_traits = declarations.deque_traits
59+
# assert 'deque<std::vector<int>>' == \
60+
# d_v_traits.remove_defaults(d_v_int)
61+
# d_l_string = global_ns.typedef('d_l_string')
62+
# assert 'deque<std::list<std::string>>' == \
63+
# d_v_traits.remove_defaults(d_l_string)
64+
65+
66+
# def test_queue(global_ns):
67+
# q_int = global_ns.typedef('q_int')
68+
# q_traits = declarations.queue_traits
69+
# assert 'queue<int>' == q_traits.remove_defaults(q_int)
70+
# q_string = global_ns.typedef('q_string')
71+
# assert 'queue<std::string>' == q_traits.remove_defaults(q_string)
72+
73+
74+
# def test_priority_queue(global_ns):
75+
# pq_int = global_ns.typedef('pq_int')
76+
# pq_traits = declarations.priority_queue_traits
77+
# assert 'priority_queue<int>' == pq_traits.remove_defaults(pq_int)
78+
# pq_string = global_ns.typedef('pq_string')
79+
# assert 'priority_queue<std::string>' == \
80+
# pq_traits.remove_defaults(pq_string)
81+
82+
83+
# def test_set(global_ns):
84+
# s_v_int = global_ns.typedef('s_v_int')
85+
# assert 'set<std::vector<int>>' == \
86+
# declarations.set_traits.remove_defaults(s_v_int)
87+
# s_string = global_ns.typedef('s_string')
88+
# assert 'set<std::string>' == \
89+
# declarations.set_traits.remove_defaults(s_string)
90+
91+
92+
# def test_multiset(global_ns):
93+
# ms_v_int = global_ns.typedef('ms_v_int')
94+
# ms_v_traits = declarations.multiset_traits
95+
# assert 'multiset<std::vector<int>>' == \
96+
# ms_v_traits.remove_defaults(ms_v_int)
97+
# ms_string = global_ns.typedef('ms_string')
98+
# assert 'multiset<std::string>' == \
99+
# ms_v_traits.remove_defaults(ms_string)
100+
101+
102+
# def test_map(global_ns):
103+
# m_i2d = global_ns.typedef('m_i2d')
104+
# assert 'map<int, double>' == \
105+
# declarations.map_traits.remove_defaults(m_i2d)
106+
# m_wstr2d = global_ns.typedef('m_wstr2d')
107+
# assert 'map<std::wstring, double>' == \
108+
# declarations.map_traits.remove_defaults(m_wstr2d)
109+
# m_v_i2m_wstr2d = global_ns.typedef('m_v_i2m_wstr2d')
110+
# m = 'map<const std::vector<int>, std::map<std::wstring, double>>'
111+
# assert m == declarations.map_traits.remove_defaults(m_v_i2m_wstr2d)
112+
113+
114+
# def test_multimap(global_ns):
115+
# mm_i2d = global_ns.typedef('mm_i2d')
116+
# mm_traits = declarations.multimap_traits
117+
# assert 'multimap<int, double>' == mm_traits.remove_defaults(mm_i2d)
118+
# mm_wstr2d = global_ns.typedef('mm_wstr2d')
119+
# assert 'multimap<const std::wstring, double>' == \
120+
# mm_traits.remove_defaults(mm_wstr2d)
121+
# mm_v_i2mm_wstr2d = global_ns.typedef('mm_v_i2mm_wstr2d')
122+
# assert ('multimap<const std::vector<int>, ' +
123+
# 'const std::multimap<const std::wstring, double>>') == \
124+
# mm_traits.remove_defaults(mm_v_i2mm_wstr2d)
125+
126+
127+
# def test_hash_set(global_ns):
128+
# hs_v_int = global_ns.typedef('hs_v_int')
129+
# hs_traits = declarations.unordered_set_traits
130+
# name = 'unordered_set'
131+
# assert (name + '<std::vector<int>>') == \
132+
# hs_traits.remove_defaults(hs_v_int), \
133+
# hs_traits.remove_defaults(hs_v_int)
134+
# hs_string = global_ns.typedef('hs_string')
135+
# assert (name + '<std::string>') == \
136+
# hs_traits.remove_defaults(hs_string)
137+
138+
139+
# def test_hash_multiset(global_ns):
140+
# mhs_v_int = global_ns.typedef('mhs_v_int')
141+
# mhs_traits = declarations.unordered_multiset_traits
142+
# name = 'unordered_multiset'
143+
# assert (name + '<std::vector<int>>') == \
144+
# mhs_traits.remove_defaults(mhs_v_int)
145+
# mhs_string = global_ns.typedef('mhs_string')
146+
# assert (name + '<std::string>') == \
147+
# mhs_traits.remove_defaults(mhs_string)
148+
149+
150+
# def test_hash_map(global_ns):
151+
# hm_i2d = global_ns.typedef('hm_i2d')
152+
# hm_traits = declarations.unordered_map_traits
153+
# name = 'unordered_map'
154+
# assert (name + '<int, double>') == \
155+
# hm_traits.remove_defaults(hm_i2d)
156+
# hm_wstr2d = global_ns.typedef('hm_wstr2d')
157+
# assert (name + '<std::wstring, double>') == \
158+
# hm_traits.remove_defaults(hm_wstr2d)
159+
160+
161+
# def test_hash_multimap(global_ns):
162+
# hmm_i2d = global_ns.typedef('hmm_i2d')
163+
# hmm_traits = declarations.unordered_multimap_traits
164+
# name = 'unordered_multimap'
165+
# assert (name + '<int, double>') == \
166+
# hmm_traits.remove_defaults(hmm_i2d)
167+
# hmm_wstr2d = global_ns.typedef('hmm_wstr2d')
168+
# assert (name + '<const std::wstring, double>') == \
169+
# hmm_traits.remove_defaults(hmm_wstr2d)
170+
171+
# hmm_v_i2mm_wstr2d = global_ns.typedef('hmm_v_i2mm_wstr2d')
172+
173+
# hmm_traits_value = hmm_traits.remove_defaults(hmm_v_i2mm_wstr2d)
174+
175+
# possible_values = (
176+
# name + '<const std::vector<int>, ' +
177+
# 'const __gnu_cxx::' + name + '<const std::wstring, double>>',
178+
# name + '<const std::vector<int>, ' +
179+
# 'const std::' + utils.get_tr1(hmm_traits_value) + name +
180+
# '<const std::wstring, double>>',
181+
# name + '<const std::vector<int>, ' +
182+
# 'const stdext::' + name + '<const std::wstring, double>>')
183+
184+
# assert hmm_traits_value in possible_values, hmm_traits_value

0 commit comments

Comments
 (0)