Skip to content

Commit 947276d

Browse files
committed
closes #231
Fixes a bug with single quote characters in the name or desc field of a field encoding definition
1 parent 4250ac8 commit 947276d

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

src/peakrdl_python/templates/addrmap_tb.py.jinja

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,12 @@ class {{fq_block_name}}_single_access({{top_node.inst_name}}_TestCase): # type:
227227
{% if encoding_entry.rdl_name is none %}
228228
self.assertIsNone(self.dut.{{'.'.join(get_python_path_segments(node))}}.enum_cls.{{encoding_entry.name | upper}}.rdl_name)
229229
{% else %}
230-
self.assertEqual(self.dut.{{'.'.join(get_python_path_segments(node))}}.enum_cls.{{encoding_entry.name | upper}}.rdl_name, "{{encoding_entry.rdl_name}}")
230+
self.assertEqual(self.dut.{{'.'.join(get_python_path_segments(node))}}.enum_cls.{{encoding_entry.name | upper}}.rdl_name, {{encoding_entry.rdl_name | tojson}})
231231
{% endif %}
232232
{% if encoding_entry.rdl_desc is none %}
233233
self.assertIsNone(self.dut.{{'.'.join(get_python_path_segments(node))}}.enum_cls.{{encoding_entry.name | upper}}.rdl_desc)
234234
{% else %}
235-
self.assertEqual(self.dut.{{'.'.join(get_python_path_segments(node))}}.enum_cls.{{encoding_entry.name | upper}}.rdl_desc, "{{encoding_entry.rdl_desc}}")
235+
self.assertEqual(self.dut.{{'.'.join(get_python_path_segments(node))}}.enum_cls.{{encoding_entry.name | upper}}.rdl_desc, {{encoding_entry.rdl_desc | tojson}})
236236
{% endif %}
237237
{% endif %}
238238
{% endfor %}

src/peakrdl_python/templates/field_enums.py.jinja

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ from {{ peakrdl_python_lib(depth=lib_depth) }} import SystemRDLEnum, SystemRDLEn
3737
class {{get_fully_qualified_enum_type(enum_needed)}}_enumcls({% if legacy_enum_type %}IntEnum{% else %}SystemRDLEnum{% endif %}):
3838

3939
{% for value_of_enum_needed in enum_needed -%}
40-
{{ value_of_enum_needed.name.upper() }} = {% if legacy_enum_type %}{{ value_of_enum_needed.value }}{% else %}SystemRDLEnumEntry(int_value={{value_of_enum_needed.value}}, name={%- if value_of_enum_needed.rdl_name is not none and not skip_systemrdl_name_and_desc_properties -%}'{{value_of_enum_needed.rdl_name}}'{% else %}None{% endif %}, desc={%- if value_of_enum_needed.rdl_desc is not none and not skip_systemrdl_name_and_desc_properties -%}'{{value_of_enum_needed.rdl_desc}}'{% else %}None{% endif %}){% endif %} {%- if value_of_enum_needed.rdl_desc is not none %} # {{ value_of_enum_needed.rdl_desc }} {%- endif %}
40+
{{ value_of_enum_needed.name.upper() }} = {% if legacy_enum_type %}{{ value_of_enum_needed.value }}{% else %}SystemRDLEnumEntry(int_value={{value_of_enum_needed.value}}, name={%- if value_of_enum_needed.rdl_name is not none and not skip_systemrdl_name_and_desc_properties -%}{{value_of_enum_needed.rdl_name | tojson}}{% else %}None{% endif %}, desc={%- if value_of_enum_needed.rdl_desc is not none and not skip_systemrdl_name_and_desc_properties -%}{{value_of_enum_needed.rdl_desc | tojson}}{% else %}None{% endif %}){% endif %} {%- if value_of_enum_needed.rdl_desc is not none %} # {{ value_of_enum_needed.rdl_desc }} {%- endif %}
4141
{% endfor %}
4242
{% endfor -%}
4343

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*
2+
This test was introduced as part of #231 to check stressful cases for the system rdl name and
3+
description
4+
*/
5+
addrmap name_desc_stress_test {
6+
name = "This addrmap name has a single quote in it ' ";
7+
reg {
8+
name = "This reg name has a single quote in it ' ";
9+
enum my_enum {
10+
ZERO = 1'b0 {
11+
name = "This enum name has a single quote in it ' ";
12+
desc = "This enum desc has a single quote in it ' ";
13+
};
14+
ONE = 1'b1 {
15+
name = "This enum name has a double quote in it \" ";
16+
};
17+
};
18+
field {
19+
name = "This field name has a single quote in it ' ";
20+
encode = my_enum;
21+
} field_a;
22+
} reg_a;
23+
};

0 commit comments

Comments
 (0)