• R/O
  • SSH

Commit

Tags
Aucun tag

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

Révision104f58785bc607207c60a69e8bd7ff6f9a991627 (tree)
l'heure2023-02-04 08:02:24
AuteurAlbert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Message de Log

asis

Change Summary

Modification

diff -r dbe3865aa2cc -r 104f58785bc6 castle/writers/CC2Cpy/Component.py
--- a/castle/writers/CC2Cpy/Component.py Fri Feb 03 23:04:13 2023 +0100
+++ b/castle/writers/CC2Cpy/Component.py Sat Feb 04 00:02:24 2023 +0100
@@ -52,19 +52,18 @@
5252 return count
5353
5454 def render(self, prepend:str="", indent=" ") ->str:
55- self.render_struct(prepend=prepend, indent=indent)
55+ return self.render_struct(prepend=prepend, indent=indent)
5656
5757 def render_struct(self, prepend:str="", indent=" ") ->str: ## struct CC_B_ComponentInterface cc_CI_${name} ...
5858 """
5959 .. todo::
6060
61- - Move `CC_B_ComponentInterface.render()` into a Rendering subclass-delegate
6261 - refactor & test: spilt into parts
6362 - optional: Use Jinja ipv f-strings
6463 - make name/prefix (``f'cc_CI_{self.name}``) in a getter oid
6564 """
6665 name = f'cc_CI_{self.name}'
67- based_on_link = f'&cc_CI_{self.based_on[0].name}' if self.based_on[0] else "NULL"
66+ based_on_link = f'&cc_CI_{self.based_on[0].name}' if self.based_on else "NULL"
6867
6968 retval = []
7069 retval.append(f'{prepend}struct CC_B_ComponentInterface {name} = {{')
diff -r dbe3865aa2cc -r 104f58785bc6 pytst/writers/CC2Cpy/test_3b_CompInterface.py
--- a/pytst/writers/CC2Cpy/test_3b_CompInterface.py Fri Feb 03 23:04:13 2023 +0100
+++ b/pytst/writers/CC2Cpy/test_3b_CompInterface.py Sat Feb 04 00:02:24 2023 +0100
@@ -21,26 +21,68 @@
2121 def subComp(demo2Comp):
2222 return CC_B_ComponentInterface('sub', based_on=demo2Comp)
2323
24-def test_0_name(emptyComp, demo2Comp):
24+def test_0a_name(emptyComp, demo2Comp):
2525 assert emptyComp.name == 'empty'
2626 assert demo2Comp.name == 'demo2'
2727
28-def test_0_based_on(subComp, demo2Comp):
28+def test_0b_based_on(subComp, demo2Comp):
2929 assert demo2Comp.based_on == ()
3030 assert subComp.based_on[0] is demo2Comp
3131
32-def test_1_NoOfPorts(emptyComp, demo2Comp):
32+def test_1a_NoOfPorts(emptyComp, demo2Comp):
3333 assert emptyComp.no_of_ports() == 0
3434 assert demo2Comp.no_of_ports() == 2
3535
36-def test_1_NoOfPorts_variants(subComp):
36+def test_1b_NoOfPorts_variants(subComp):
3737 assert subComp.no_of_ports() == 0 # inherited=False, mine=True
38-
3938 assert subComp.no_of_ports(inherited=False, mine=False) == 0
4039 assert subComp.no_of_ports(inherited=False, mine=True) == 0
4140 assert subComp.no_of_ports(inherited=True, mine=False) == 2
4241 assert subComp.no_of_ports(inherited=True, mine=True) == 2
4342
43+def test_1c_MorePorts():
44+ p1 = CC_B_ComponentInterface('p1', ports = CC_Port(name='no_1', type=None))
45+ p2 = CC_B_ComponentInterface('p2', ports = [CC_Port(name='no_2', type=None), CC_Port(name='no_3', type=None)])
46+ pa = CC_B_ComponentInterface('pa', ports = CC_Port(name='no_4', type=None))
47+ pb = CC_B_ComponentInterface('pb', based_on = pa)
48+ p = CC_B_ComponentInterface('p', based_on = (p1,p2,pb))
49+
50+ assert p.no_of_ports(inherited=True, mine=True) == 4
51+
52+
53+ref_emptyComp="""\
54+struct CC_B_ComponentInterface cc_CI_Empty = {
55+ .name = "empty",
56+ .inherit_from = &cc_CI_Component,
57+ .length = 0,
58+ .ports = {
59+ }
60+} ;
61+"""
62+
63+ref_subComp="""\
64+struct CC_B_ComponentInterface cc_CI_sub = {
65+ .name = "sub",
66+ .inherit_from = &cc_CI_demo2,
67+ .length = 0,
68+ .ports = {
69+ }
70+} ;
71+"""
72+
73+def test_render(emptyComp):
74+ CCompare(ref_emptyComp, emptyComp.render())
75+ CCompare(ref_emptyComp, emptyComp.render_struct())
76+
77+def test_render_whitespace(emptyComp):
78+ # prepending a/o indenting with whitespace has no effect
79+ CCompare(ref_emptyComp, emptyComp.render(prepend="\t\t", indent=""))
80+ CCompare(ref_emptyComp, emptyComp.render_struct(prepend=" ", indent="\t\t\t"))
81+
82+
83+def test_render_sub(subComp):
84+ CCompare(ref_subComp, subComp.render())
85+
4486 @pytest.mark.skip(reason="More CompInterface-tests are needed")
4587 def test_more(): pass
4688