• R/O
  • SSH

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Castle: The best Real-Time/Embedded/HighTech language EVER. Attempt 2


Commit MetaInfo

Revisión04e9ef19c23133bd4b0cf109ce2f3c25db126aa8 (tree)
Tiempo2023-01-29 07:41:04
AutorAlbert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Log Message

(asis) corrected prepend= with more tests

Cambiar Resumen

Diferencia incremental

diff -r 47e5226e1569 -r 04e9ef19c231 castle/writers/CC2Cpy/Protocol.py
--- a/castle/writers/CC2Cpy/Protocol.py Sat Jan 28 23:14:41 2023 +0100
+++ b/castle/writers/CC2Cpy/Protocol.py Sat Jan 28 23:41:04 2023 +0100
@@ -105,7 +105,7 @@
105105 ## For now, loop over the events here ...
106106 retval = []
107107 for n, e in enumerate(self.events, len(self.event_dict(inherired=True,mine=False))): # pragma: no mutate on event_dict parms
108- retval.append(f'#define CC_P_{self.name}_{e.name}\t{n}\n')
108+ retval.append(f'{prepend}#define CC_P_{self.name}_{e.name}\t{n}')
109109 return '\n'.join(retval)+"\n"
110110
111111
@@ -116,6 +116,6 @@
116116 retval = []
117117 for e in self.events:
118118 types =" , ".join(f'{type_name(parm.type)}' for parm in e.typedParameters) # pragma: no mutate on " , " befor join()
119- retval.append( f'typedef void (*CC_E_{self.name}_{e.name}_FT)(CC_selfType, CC_ComponentType, {types});')
119+ retval.append( f'{prepend}typedef void (*CC_E_{self.name}_{e.name}_FT)(CC_selfType, CC_ComponentType, {types});')
120120 return '\n'.join(retval)+"\n"
121121
diff -r 47e5226e1569 -r 04e9ef19c231 pytst/writers/CC2Cpy/test_2b_EventProtocol.py
--- a/pytst/writers/CC2Cpy/test_2b_EventProtocol.py Sat Jan 28 23:14:41 2023 +0100
+++ b/pytst/writers/CC2Cpy/test_2b_EventProtocol.py Sat Jan 28 23:41:04 2023 +0100
@@ -63,7 +63,7 @@
6363 CC_Event("demoEventF")])
6464
6565
66-ref_DemoProtocol="""\
66+ref_demo_struct="""\
6767 struct CC_B_Protocol cc_P_DEMO = {
6868 .name = "DEMO",
6969 .kind = CC_B_ProtocolKindIs_Event,
@@ -78,14 +78,16 @@
7878 { .seqNo = 5, .name = "demoEventF", .part_of = &cc_P_DEMO },
7979 }
8080 };
81-
81+"""
82+ref_demo_index="""\
8283 #define CC_P_DEMO_demoEventA 0
8384 #define CC_P_DEMO_demoEventB 1
8485 #define CC_P_DEMO_demoEventC 2
8586 #define CC_P_DEMO_demoEventD 3
8687 #define CC_P_DEMO_demoEventE 4
8788 #define CC_P_DEMO_demoEventF 5
88-
89+"""
90+ref_demo_FTs="""\
8991 typedef void (*CC_E_DEMO_demoEventA_FT)(CC_selfType, CC_ComponentType, );
9092 typedef void (*CC_E_DEMO_demoEventB_FT)(CC_selfType, CC_ComponentType, );
9193 typedef void (*CC_E_DEMO_demoEventC_FT)(CC_selfType, CC_ComponentType, );
@@ -94,6 +96,8 @@
9496 typedef void (*CC_E_DEMO_demoEventF_FT)(CC_selfType, CC_ComponentType, );
9597 """
9698
99+ref_demo="\n".join([ref_demo_struct, ref_demo_index, ref_demo_FTs])
100+
97101
98102
99103 def test_0_isEvent(demoProtocol):
@@ -120,7 +124,7 @@
120124
121125
122126 def test_render(demoProtocol):
123- assert CCompare(ref_DemoProtocol, demoProtocol.render())
127+ assert CCompare(ref_demo, demoProtocol.render())
124128
125129 def test_render_struct_sieve(simpleSieve):
126130 assert CCompare(ref_simpleSieve, simpleSieve.render_struct())
@@ -138,25 +142,34 @@
138142 # More or less leading whitespace should not have effect
139143 assert CCompare(ref_emptyProtocol_struct, emptyProtocol.render(prepend="\t\t", indent=""))
140144
141-def test_prepend(emptyProtocol): # prepend shoud be on any (not empty) line
145+def verify_prepend(protocol): # prepend shoud be on any (not empty) line
142146 prepend="PREPEND_"
143- out = emptyProtocol.render(prepend=prepend)
147+ out = protocol.render(prepend=prepend)
148+ logger.info("Protocol %s results in::\n%s", protocol.name, out)
144149 for l in out.splitlines():
145150 if len(l)>0:
146151 assert l.startswith(prepend)
147152 assert not l[len(prepend):].startswith(prepend) # No more prepend's
148153
154+def test_prepend_empty(emptyProtocol):
155+ verify_prepend(emptyProtocol)
156+
157+def test_prepend_simpleSieve(simpleSieve):
158+ verify_prepend(simpleSieve)
159+
160+def test_prepend_demo(demoProtocol):
161+ verify_prepend(demoProtocol)
162+
149163
150164 def verify_indent(ref, protocol): # indent can be used several time ...
151- #try_indent="_-|"
152- try_indent="_"
165+ try_indent="_-|"
153166 out = protocol.render_struct(indent=try_indent, prepend="")
154167 logger.info("Protocol %s results in::\n%s", protocol.name, out)
155168
156169 for ref_line,out_line in zip(ref.splitlines(), out.splitlines()):
157170 ref_indents = len(ref_line)-len(ref_line.lstrip(' '))
158- logger.debug("ref_line: %s", ref_line)
159- logger.debug("out_line: %s", out_line)
171+ logger.debug("ref_line: %s", ref_line); logger.debug("out_line: %s", out_line)
172+
160173 assert out_line[:len(try_indent)*ref_indents] == try_indent*ref_indents
161174 if ref_indents >0:
162175 without_pref = out_line[len(try_indent*ref_indents):]
@@ -171,7 +184,7 @@
171184 verify_indent(ref_simpleSieve, simpleSieve)
172185
173186 def test_indent_demo(demoProtocol):
174- verify_indent(ref_DemoProtocol, demoProtocol)
187+ verify_indent(ref_demo, demoProtocol)
175188
176189
177190 @pytest.mark.skip(reason="CURRENT: busy with testing all part of *C&P CC_EventProtocol")