• 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

Revisão47e5226e156991e537ada1c5af654f35beb516f8 (tree)
Hora2023-01-29 07:14:41
AutorAlbert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Mensagem de Log

asis

Mudança Sumário

Diff

diff -r 765edc51804e -r 47e5226e1569 Makefile
--- a/Makefile Sat Jan 28 21:52:37 2023 +0100
+++ b/Makefile Sat Jan 28 23:14:41 2023 +0100
@@ -29,7 +29,7 @@
2929
3030 mutmut: mutmut-3.11 # Mutation testing (takes a long run) https://en.wikipedia.org/wiki/Mutation_testing
3131 -mutmut run --tests-dir pytst --paths-to-mutate castle
32- mutmut html && rm ${MUTMUT_dir} ; mv html ${MUTMUT_dir}
32+ mutmut html && rm -rf ${MUTMUT_dir} && mv html ${MUTMUT_dir}
3333 mutmut results
3434 mutmut-open: mutmut
3535 open ${MUTMUT_dir}index.html
diff -r 765edc51804e -r 47e5226e1569 castle/writers/CC2Cpy/Protocol.py
--- a/castle/writers/CC2Cpy/Protocol.py Sat Jan 28 21:52:37 2023 +0100
+++ b/castle/writers/CC2Cpy/Protocol.py Sat Jan 28 23:14:41 2023 +0100
@@ -99,6 +99,7 @@
9999 retval.append(f'{prepend}}};\n') #end of struct
100100 return '\n'.join(retval) +"\n"
101101
102+
102103 # XXX Mutant 2* : default values prepend/indent
103104 def render_indexes(self, prepend:str="", indent=" ") ->str: ## #define CC_P_<proto>_<event> index
104105 ## For now, loop over the events here ...
@@ -107,6 +108,7 @@
107108 retval.append(f'#define CC_P_{self.name}_{e.name}\t{n}\n')
108109 return '\n'.join(retval)+"\n"
109110
111+
110112 # XXX Mutant 2*: default values prepend/indent
111113 def render_FTs(self, prepend:str="", indent=" ") ->str: ##typedef void (*CC_E_{...}_FT)(CC_selfType, CC_ComponentType, {...});
112114 type_name = lambda ptype : ptype if isinstance(ptype, str) else ptype.__name__ # XXX Mutant
diff -r 765edc51804e -r 47e5226e1569 pytst/writers/CC2Cpy/test_2b_EventProtocol.py
--- a/pytst/writers/CC2Cpy/test_2b_EventProtocol.py Sat Jan 28 21:52:37 2023 +0100
+++ b/pytst/writers/CC2Cpy/test_2b_EventProtocol.py Sat Jan 28 23:14:41 2023 +0100
@@ -6,18 +6,23 @@
66
77 from . import * # CCompare
88
9-
109 from castle.writers.CC2Cpy.Protocol import * #CC_EventProtocol
1110 from castle.writers.CC2Cpy.Event import CC_Event
1211 from castle.writers.CC2Cpy.CCbase import CC_TypedParameter
1312
13+###
14+### NOTE
15+###
16+### The leading whitespace in the `ref_...` strings are relevant.
17+### Each space is an 'indent'; the renderXXX() formating uses this
18+### It does change the prepend/indent and counts the have "the same" number
1419
1520 @pytest.fixture
1621 def emptyProtocol():
1722 return CC_EventProtocol("EMPTY", events=[], based_on=None)
1823
1924 ##Note: whitespace in this ref is relevant!!
20-refws_emptyProtocol_struct="""\
25+ref_emptyProtocol_struct="""\
2126 struct CC_B_Protocol cc_P_EMPTY = {
2227 .name = "EMPTY",
2328 .kind = CC_B_ProtocolKindIs_Event,
@@ -33,7 +38,7 @@
3338 return CC_EventProtocol("SimpleSieve", events=[CC_Event("input", typedParameters=[CC_TypedParameter(name='event', type=int)])])
3439
3540 ##Note: whitespace in this ref is relevant!!
36-refws_simpleSieve="""\
41+ref_simpleSieve="""\
3742 struct CC_B_Protocol cc_P_SimpleSieve = {
3843 .name = "SimpleSieve",
3944 .kind = CC_B_ProtocolKindIs_Event,
@@ -58,35 +63,35 @@
5863 CC_Event("demoEventF")])
5964
6065
61-ref_DemoProtocol="""
62- struct CC_B_Protocol cc_P_DEMO = {
63- .name = "DEMO",
64- .kind = CC_B_ProtocolKindIs_Event,
65- .inherit_from = &cc_P_Protocol,
66- .length = 6,
67- .events = {
68- { .seqNo = 0, .name = "demoEventA", .part_of = &cc_P_DEMO },
69- { .seqNo = 1, .name = "demoEventB", .part_of = &cc_P_DEMO },
70- { .seqNo = 2, .name = "demoEventC", .part_of = &cc_P_DEMO },
71- { .seqNo = 3, .name = "demoEventD", .part_of = &cc_P_DEMO },
72- { .seqNo = 4, .name = "demoEventE", .part_of = &cc_P_DEMO },
73- { .seqNo = 5, .name = "demoEventF", .part_of = &cc_P_DEMO },
74- }
75- };
66+ref_DemoProtocol="""\
67+struct CC_B_Protocol cc_P_DEMO = {
68+ .name = "DEMO",
69+ .kind = CC_B_ProtocolKindIs_Event,
70+ .inherit_from = &cc_P_Protocol,
71+ .length = 6,
72+ .events = {
73+ { .seqNo = 0, .name = "demoEventA", .part_of = &cc_P_DEMO },
74+ { .seqNo = 1, .name = "demoEventB", .part_of = &cc_P_DEMO },
75+ { .seqNo = 2, .name = "demoEventC", .part_of = &cc_P_DEMO },
76+ { .seqNo = 3, .name = "demoEventD", .part_of = &cc_P_DEMO },
77+ { .seqNo = 4, .name = "demoEventE", .part_of = &cc_P_DEMO },
78+ { .seqNo = 5, .name = "demoEventF", .part_of = &cc_P_DEMO },
79+ }
80+};
7681
77- #define CC_P_DEMO_demoEventA 0
78- #define CC_P_DEMO_demoEventB 1
79- #define CC_P_DEMO_demoEventC 2
80- #define CC_P_DEMO_demoEventD 3
81- #define CC_P_DEMO_demoEventE 4
82- #define CC_P_DEMO_demoEventF 5
82+#define CC_P_DEMO_demoEventA 0
83+#define CC_P_DEMO_demoEventB 1
84+#define CC_P_DEMO_demoEventC 2
85+#define CC_P_DEMO_demoEventD 3
86+#define CC_P_DEMO_demoEventE 4
87+#define CC_P_DEMO_demoEventF 5
8388
84- typedef void (*CC_E_DEMO_demoEventA_FT)(CC_selfType, CC_ComponentType, );
85- typedef void (*CC_E_DEMO_demoEventB_FT)(CC_selfType, CC_ComponentType, );
86- typedef void (*CC_E_DEMO_demoEventC_FT)(CC_selfType, CC_ComponentType, );
87- typedef void (*CC_E_DEMO_demoEventD_FT)(CC_selfType, CC_ComponentType, );
88- typedef void (*CC_E_DEMO_demoEventE_FT)(CC_selfType, CC_ComponentType, );
89- typedef void (*CC_E_DEMO_demoEventF_FT)(CC_selfType, CC_ComponentType, );
89+typedef void (*CC_E_DEMO_demoEventA_FT)(CC_selfType, CC_ComponentType, );
90+typedef void (*CC_E_DEMO_demoEventB_FT)(CC_selfType, CC_ComponentType, );
91+typedef void (*CC_E_DEMO_demoEventC_FT)(CC_selfType, CC_ComponentType, );
92+typedef void (*CC_E_DEMO_demoEventD_FT)(CC_selfType, CC_ComponentType, );
93+typedef void (*CC_E_DEMO_demoEventE_FT)(CC_selfType, CC_ComponentType, );
94+typedef void (*CC_E_DEMO_demoEventF_FT)(CC_selfType, CC_ComponentType, );
9095 """
9196
9297
@@ -118,22 +123,20 @@
118123 assert CCompare(ref_DemoProtocol, demoProtocol.render())
119124
120125 def test_render_struct_sieve(simpleSieve):
121- assert CCompare(refws_simpleSieve, simpleSieve.render_struct())
122-
123-
126+ assert CCompare(ref_simpleSieve, simpleSieve.render_struct())
124127
125128
126129
127130 def test_emptyProtocol(emptyProtocol):
128131 # the "struct" is minimal"
129- assert CCompare(refws_emptyProtocol_struct, emptyProtocol.render_struct())
132+ assert CCompare(ref_emptyProtocol_struct, emptyProtocol.render_struct())
130133 # and the other parts are absent
131- assert CCompare(refws_emptyProtocol_struct, emptyProtocol.render())
134+ assert CCompare(ref_emptyProtocol_struct, emptyProtocol.render())
132135
133136
134137 def test_whitespace(emptyProtocol):
135138 # More or less leading whitespace should not have effect
136- assert CCompare(refws_emptyProtocol_struct, emptyProtocol.render(prepend="\t\t", indent=""))
139+ assert CCompare(ref_emptyProtocol_struct, emptyProtocol.render(prepend="\t\t", indent=""))
137140
138141 def test_prepend(emptyProtocol): # prepend shoud be on any (not empty) line
139142 prepend="PREPEND_"
@@ -161,12 +164,14 @@
161164
162165
163166 def test_indent_empty(emptyProtocol):
164- verify_indent(refws_emptyProtocol_struct, emptyProtocol)
167+ verify_indent(ref_emptyProtocol_struct, emptyProtocol)
165168
166169
167170 def test_indent_simpleSieve(simpleSieve):
168- verify_indent(refws_simpleSieve, simpleSieve)
171+ verify_indent(ref_simpleSieve, simpleSieve)
169172
173+def test_indent_demo(demoProtocol):
174+ verify_indent(ref_DemoProtocol, demoProtocol)
170175
171176
172177 @pytest.mark.skip(reason="CURRENT: busy with testing all part of *C&P CC_EventProtocol")