Castle: The best Real-Time/Embedded/HighTech language EVER. Attempt 2
Revision | 50dddbcab730ec090459ef50997dc719025b5534 (tree) |
---|---|
Time | 2023-01-29 05:50:21 |
Author | Albert Mietus < albert AT mietus DOT nl > |
Commiter | Albert Mietus < albert AT mietus DOT nl > |
asis
@@ -85,6 +85,7 @@ | ||
85 | 85 | retval.append(f'{prepend}{indent}.length = {len(self.events)},') |
86 | 86 | retval.append(f'{prepend}{indent}.events = {{') |
87 | 87 | |
88 | + #Loop over events | |
88 | 89 | for n, e in enumerate(self.events, len(self.event_dict(inherired=True, mine=False))): # pragma: no mutate on event_dict parms |
89 | 90 | lineval = [] |
90 | 91 | lineval.append(f'{prepend}{indent*2}{{') # XXXpragma: no mutate |
@@ -94,12 +95,11 @@ | ||
94 | 95 | lineval.append("},") |
95 | 96 | # add line to retval |
96 | 97 | retval.append("".join(lineval)) |
97 | - | |
98 | - retval.append(f'{prepend}{indent*2}}}') #end of events XXX Mutant 41 | |
98 | + retval.append(f'{prepend}{indent}}}') #end of events XXX Mutant: indent*3 | |
99 | 99 | retval.append(f'{prepend}}};\n') #end of struct |
100 | 100 | return '\n'.join(retval) +"\n" |
101 | 101 | |
102 | - # XXX Mutant 45,46: default values prepend/indent | |
102 | + # XXX Mutant 2* : default values prepend/indent | |
103 | 103 | def render_indexes(self, prepend:str="", indent=" ") ->str: ## #define CC_P_<proto>_<event> index |
104 | 104 | ## For now, loop over the events here ... |
105 | 105 | retval = [] |
@@ -107,9 +107,9 @@ | ||
107 | 107 | retval.append(f'#define CC_P_{self.name}_{e.name}\t{n}\n') |
108 | 108 | return '\n'.join(retval)+"\n" |
109 | 109 | |
110 | - # XXX Mutant 53/53: default values prepend/indent | |
110 | + # XXX Mutant 2*: default values prepend/indent | |
111 | 111 | def render_FTs(self, prepend:str="", indent=" ") ->str: ##typedef void (*CC_E_{...}_FT)(CC_selfType, CC_ComponentType, {...}); |
112 | - type_name = lambda ptype : ptype if isinstance(ptype, str) else ptype.__name__ | |
112 | + type_name = lambda ptype : ptype if isinstance(ptype, str) else ptype.__name__ # XXX Mutant | |
113 | 113 | |
114 | 114 | retval = [] |
115 | 115 | for e in self.events: |
@@ -23,7 +23,8 @@ | ||
23 | 23 | .kind = CC_B_ProtocolKindIs_Event, |
24 | 24 | .inherit_from = NULL, |
25 | 25 | .length = 0, |
26 | - .events = { } | |
26 | + .events = { | |
27 | + } | |
27 | 28 | }; |
28 | 29 | """ |
29 | 30 |
@@ -144,18 +145,17 @@ | ||
144 | 145 | |
145 | 146 | |
146 | 147 | def verify_indent(ref, protocol): # indent can be used several time ... |
147 | - try_indent="_-|" | |
148 | + #try_indent="_-|" | |
149 | + try_indent="_" | |
148 | 150 | out = protocol.render_struct(indent=try_indent, prepend="") |
149 | 151 | logger.info("Protocol %s results in::\n%s", protocol.name, out) |
150 | 152 | |
151 | 153 | for ref_line,out_line in zip(ref.splitlines(), out.splitlines()): |
152 | 154 | ref_indents = len(ref_line)-len(ref_line.lstrip(' ')) |
153 | - logger.debug("ref_line: %s", ref_line) | |
154 | - logger.debug("out_line:: %s", out_line) | |
155 | - #assert out_line.startswith(try_indent*ref_indents) # start with right number of indents | |
155 | + logger.debug("ref_line: %s", ref_line) | |
156 | + logger.debug("out_line: %s", out_line) | |
156 | 157 | assert out_line[:len(try_indent)*ref_indents] == try_indent*ref_indents |
157 | - if ref_indents >1: | |
158 | - #assert out_line[len(try_indent*ref_indents):].startswith(try_indent) # and not more | |
158 | + if ref_indents >0: | |
159 | 159 | without_pref = out_line[len(try_indent*ref_indents):] |
160 | 160 | assert without_pref[0:len(try_indent)] != try_indent |
161 | 161 |
@@ -164,7 +164,7 @@ | ||
164 | 164 | verify_indent(refws_emptyProtocol_struct, emptyProtocol) |
165 | 165 | |
166 | 166 | |
167 | -def test_indent_simple(simpleSieve): | |
167 | +def test_indent_simpleSieve(simpleSieve): | |
168 | 168 | verify_indent(refws_simpleSieve, simpleSieve) |
169 | 169 | |
170 | 170 |